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

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

Страницы: 1621 622 623 624635 Следующая »
#9315
11:45, 24 мая 2022

Andrey
> AMD наконец добавила VK_KHR_push_descriptor.
оу, у десктопной тройки появился пуш дескриптор. Можно дизайнить рендерилку с учетом этого, получается?

#9316
12:42, 24 мая 2022

/A\
> Мне пока ни разу не пригодился.
> Какой от него смысл?
Уйдет много левого кода. Драйвер выделяет память под дескрипиторы. Зачем? Direct3D12 отлично спроектирован без них. Жалкое наследие убогого АПИ пришло в Vulkan в виде лишних астракций.
Тем не менее нужно оценить профит.
HolyDel
> оу, у десктопной тройки появился пуш дескриптор. Можно дизайнить рендерилку с
> учетом этого, получается?
Мона и нуна, но нуна смотреть кто еще это не поддерживает, для Android Mali еще не поддерживает. Думаю для desktop мона смело выкидывать всю муть с vkCreateDescriptorSet,vkUpdateDescriptorSets,vkСmdBindDescriptorsets. Хотелось бы перфу оценить при замене.

#9317
13:39, 24 мая 2022

Andrey
> Зачем? Direct3D12 отлично

вот мона и нуна забить на пулкан

#9318
14:06, 24 мая 2022

Andrey
> Думаю для desktop мона смело выкидывать всю муть с
> vkCreateDescriptorSet,vkUpdateDescriptorSets,vkСmdBindDescriptorsets.
При vkUpdateDescriptorSets дескрипторы заливаются на ГПУ, если ты их выкинешь, то будешь заливать все дескрипторы каждый кадр, а это идет через PCI вместе с подгрузкой текстур и прочего.
Понятно что там не наберется и 1Мб, но он будет размазано по всему кадру и параллельно будет грузиться и другие вещи, что увеличит задержку при передаче данных.

Кстати, в вольфенштейн на все эти операции могло уходить до 1.2мс на кадр в сумме на все потоки.

#9319
14:43, 24 мая 2022

/A\
> При vkUpdateDescriptorSets дескрипторы заливаются на ГПУ
точнее VkDescriptorSet в драйвере храняется который их ассоциирует с GPU ресурсами.Или VkDescriptorSet это и есть реальный GPU ресурс? это зависит от реализации.
>то будешь заливать все дескрипторы каждый кадр
vkСmdBindDescriptorSets достает из драйвера VkDescriptorSet и говорит GPU что он текущие для DrawCall и снова это от реализации засисит.
в общем тут нужно смотреть что бывстрее ставить сразу набор готовых VkDescriptorImageInfo и VkDescriptorBufferInfo или VkDescriptorSet который завист от реализации, будет ли это готовый ресурс - неизвестно. Согласно докам это расширение может давать буст.

#9320
15:02, 24 мая 2022

Andrey
> Или VkDescriptorSet это и есть реальный GPU ресурс?
Дескриптор сет занимает место на GPU от 8 до 32 байт на один элемент.

#9321
(Правка: 16:50) 16:47, 24 мая 2022

Andrey
Способ привязки Vulkan не легаси и очень схож с DX12(Как же дескрипторные кучи?)
Представь себе регистровый файл скалярных регистров в Compute Unit-е,
Когда вызываешь vkCmdBindDescriptorSets или ID3D12GraphicsCommandList::SetGraphicsRootDescriptorTable ты сообщаешь драйверу,
что при исполнении в один из регистров(регистрового файла описного выше) записался виртуальный адрес дескрипторной таблицы(таблица дескрипторов аллоцирована в VRAM, где еще ей быть?).
Модель привязки в DX12 чуть расширена, тем что позволяет записывать в регистровый файл не только виртуальные адреса дескрипторных таблиц, но и адрес самого дескриптора что позволяет снизить уровень косвенного обращения.
Надо смотреть в RGP какой асм генерится при использовании VK_KHR_push_descriptor, в теории в самом шейдере мы будем получать виртуальные адреса дескрипторов ресурсов сразу через скалярные регистры(тогда драйвер должен выделить под дескрипторы память неявно),
либо сразу весь дескриптор пишется в регистры(дескриптор текстуры 32 байта, тогда нам на один дескриптор нужно аллоцировать 8 SGPR), но описанную тобой проблему это не решит,
из всего сказанного мной выше можно сделать вывод что число одновременно приближенных дескрипторов через vkCmdPushDescriptorSetKHR, будет ограничено

#9322
21:29, 24 мая 2022

IBets
> Способ привязки Vulkan не легаси и очень схож с DX12(
Не схожи, нету объекта VkDescriptorSet, под легаси я имел ввиду создание дополнительного объекта и наследие объекта VkFramebuffer.
а вот VK_KHR_push_descriptor схож, ставим без создания объектов
IBets
> Модель привязки в DX12 чуть расширена, тем что позволяет записывать в
> регистровый файл не только виртуальные адреса дескрипторных таблиц, но и адрес
> самого дескриптора что позволяет снизить уровень косвенного обращения.
Это откуда инфа? из RGP ?
>Надо смотреть в RGP какой асм генерится при использовании VK_KHR_push_descriptor
>из всего сказанного мной выше можно сделать вывод что число одновременно приближенных >дескрипторов через vkCmdPushDescriptorSetKHR, будет ограничено

Может на windows как раз установка регистров через VK_KHR_push_descriptor и ID3D12GraphicsCommandList::SetGraphicsRootDescriptorTable вообще одинакова? что мешает это реализовать? Единственное смушает в D3D12_GPU_DESCRIPTOR_HANDLE храниться массив дескрипторов, а для VkDescriptorImageInfo и VkDescriptorBufferInfo придеться их как-то создавать неявно.

#9323
6:54, 25 мая 2022

Andrey
> наследие объекта VkFramebuffer.
просто включи мозг и подумай для чего так сделали

#9324
21:27, 28 мая 2022

2022 год - Нвидия сломала ресайз Вулкан свапчейна в драйверах
Микрософт удалили поддержку Вулкана из драйверов Нвидии из центра обновления. (до этого только с АМД так произошло(по крайней мере я сегодня сам увидел что в Нвидии драйверах нет вулкана))

Получается - Вулкан только для Линукса.
Закапываем?

#9325
(Правка: 21:46) 21:29, 28 мая 2022

Закапываем?

Давно пора.
Вулкан как и движок можно пилить годами.
Уже 7 лет прошло и все никак.
Обычно новый графический айпи как раз и появляется раз в 7 лет.

#9326
22:33, 28 мая 2022

melvy
> Микрософт удалили поддержку Вулкана из драйверов Нвидии из центра обновления.
Там и до этого попадались глючные драйвера, так что не показатель.
Майкрософт вроде как для винстора не позволяет вулкан использовать.

> Закапываем?
Винду?

#9327
5:07, 29 мая 2022

Вопрос по теме:
fwidth/dFdx/dFdy только 32битные в Вулкане?
я в спеках вроде не видел что они _только_ 32 битные (пробовал 64 бита там мусор выходит)

#9328
17:23, 30 мая 2022

ML Primitives Extension

https://www.khronos.org/assets/uploads/developers/presentations/M… on_May_22.pdf

#9329
(Правка: 18:11) 18:11, 30 мая 2022

HolyDel
У NV давно есть расширение для работы с матрицами на тензорных ядрах, но на мобилках там отдельный элемент на кристале, который вообще непонятно к чему относится к ЦП или ГП.

Но поддержка до 5D это интересно.

Страницы: 1621 622 623 624635 Следующая »
ПрограммированиеФорумГрафика