Войти
ПрограммированиеФорумГрафика

Vulkan API (вышел!) (563 стр)

Страницы: 1558 559 560 561 562 563
#8430
22:02, 19 апр. 2021

MikeNew
> Пишет в верхнем левом углу:
Какой-нибудь оверлей подцепил.


#8431
3:55, 20 апр. 2021

На реддите и форуме nvidia всплывает такая же проблема. Кому-то помогает сброс настроек в nvidia control panel. Точную причину пока не нашли.

#8432
14:10, 20 апр. 2021

Dimich
> Кому-то помогает сброс настроек в nvidia control panel.
Мне помог сброс настроек. А проблема у меня скорее всего была из-за дров китайского графического планшета Gaomon.

#8433
15:42, 27 апр. 2021

Может быть полезно, теперь понятно зачем нужна эта фича в винде

Create only queues you need
• Each additional queue adds processing overhead
• Multiple asynchronous compute queues will not overlap, unless hardware scheduling is enabled
(see https://devblogs.microsoft.com/directx/hardware-accelerated-gpu-scheduling/)

Advanced Performance Recommendations

#8434
(Правка: 18:07) 18:04, 29 апр. 2021

Научите использовать persistent mapped memory. Создаю буфер VK_BUFFER_USAGE_TRANSFER_SRC_BIT как хост-видимый (HOST_VISIBLE_BIT | HOST_COHERENT_BIT), делаю vkMapMemory один раз и сохраняю указатель. Данные копирую vkCmdCopyBuffer-ом в буфер VK_BUFFER_USAGE_RAY_TRACING_BIT_NV | VK_BUFFER_USAGE_TRANSFER_DST_BIT. В итоге Device Lost после самбита в очередь. Если буферу делаю Map/Unmap перед копированием, тогда работает. Пробовал вставлять какие-то синхронизации - бесполезно. Device Lost говорит о том что ускоряющая структура невалидная.

#8435
18:12, 29 апр. 2021

v1c
а если другие данные так копировать, работает? например, типично текстуры так загружаются, для них работает?

может быть, src нужно тоже выставить VK_BUFFER_USAGE_RAY_TRACING_BIT_NV, а то он не знает, как одно в другое копироать?

#8436
18:18, 29 апр. 2021

v1c
> Пробовал вставлять какие-то синхронизации
Тебе еще рано трогать вулкан

#8437
18:28, 29 апр. 2021

Suslik
Он копирует, после Unmap, так что не в флагах дело. Не копирует из замапленного буфера.
/A\
Конструктивно, спс.

#8438
18:32, 29 апр. 2021

v1c
> Он копирует, после Unmap
Если у тебя HOST_COHERENT_BIT, то копируется сразу при записи в замапленную память, Unmap никак не влияет.

> Конструктивно, спс.
Обращайся) А если серьезно для вулкана все настолько подробно написано, что вопросы означают, что кто-то не хочет внимательно прочитать документацию.

#8439
(Правка: 22:54) 22:54, 29 апр. 2021

Я разобрался в проблеме, от моего внимания ускользнуло то, что не вызывается конструктор инстанса AS, поэтому копировался мусор, дописал placement и заработало:

AccelerationStructureInstance *instances = mapBuffer();
for (uint32_t instanceIndex = 0; instanceIndex < instanceCount; ++instanceIndex)
{   
    new(&instances[instanceIndex]) AccelerationStructureInstance();
}
Изначально данные были в std::vector() который вызывал конструкторы как положено.

#8440
10:02, 4 мая 2021

На всех нвидиа есть баг с очередями:
Бинарный семафор требует отправлять команды в правильном порядке, чтоб было signal semaphore -> wait semaphore.
Таймлайн семафор позволяет делать любой порядок, Signal (2), Wait(3) - тут гпу ждет следующий сигнал, Signal(3).
В одной очереди нельзя написать Wait(3), Signal(3), так как это дедлок, но в разных очередях это хорошо работает. Проблема начинается когда это 2 очереди с одинаковым queue family. По спекам они должны быть независимы, а в реальности работают как одна очередь и получается дедлок.

Страницы: 1558 559 560 561 562 563
ПрограммированиеФорумГрафика