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

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

Страницы: 1567 568 569 570 571 572 Следующая »
#8550
10:16, 11 июня 2021
Andrey
> В навидии покажет, только она насилует труп убожества
пустырник прими

#8551
19:28, 13 июня 2021

Забавно: дедлок на таймлайн семафорах вешает приложение намертво, даже перезагрузить через винду не получилось, только кнопкой. Зато в отличие от старых гпу остальные приложения продолжают работать без единого лага)
Дх12 этот случай получше обрабатывает.

#8552
16:54, 15 июня 2021

А есть где-то пример использования VK_EXT_fragment_density_map ?
В UE частично добавлен, но нигде нет создания текстуры с VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT и VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, либо это бага, либо никто его не использовал.
Ну и документация в вулкане написана весьма ограниченно, прям как для метала.

#8553
16:57, 15 июня 2021

/A\
> В UE частично добавлен, но нигде нет создания текстуры с VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT и VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, либо это бага, либо никто его не использовал.
Это в 4м или 5м УЕ?
Ставлю на багу.

#8554
17:01, 15 июня 2021

Вулкан закручивает гайки.
Нельзя использовать в сэмлере ненормализованные координаты на TEXTURE_ARRAY и еще на чем-то. Чем, спрашивается, они им помешали?

#8555
(Правка: 17:19) 17:05, 15 июня 2021

HolyDel
В 5-ом
upd: в 4-ом тоже

#8556
20:08, 15 июня 2021

/A\
Вот вроде живой пример с VK_EXT_fragment_density_map:
https://github.com/hydium/stereoVR/blob/e78d3be9186b80e387f2ef63e… orld_Vulkan.c

если еще не натыкался?

#8557
17:34, 16 июня 2021

MikeNew
> Нельзя использовать в сэмлере ненормализованные координаты на TEXTURE_ARRAY и
> еще на чем-то. Чем, спрашивается, они им помешали?

не понял, это как так ?

#8558
13:00, 17 июня 2021

innuendo
> не понял, это как так ?
Да вот прямо так:

+ Показать
#8559
17:32, 17 июня 2021

HolyDel
> Вот вроде живой пример с VK_EXT_fragment_density_map:
VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT и VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT там не используются, зато есть флаг OVR_RENDERPASS_FLAG_INCLUDE_FRAG_DENSITY при вызове ovrVkRenderPass_Create().
В UE флаг OVR_RENDERPASS_FLAG_INCLUDE_FRAG_DENSITY тоже не найден.

В общем насколько я понял из документации UE и видео на ютубе (потому что в документации вулкана такое не нашел), fragment density должна быть R8G8_UNORM текстура, где float-point значения 1.0, 0.5, 0.25 означают насколько уменьшается количество сэмплов по горизонтали (R-канал) и по вертикали (G-канал).

В итоге по VRS:
На десктопе вулкан и дх12 почти одинаковая реализация.
На мобилках на вулкане более-менее похожее решение, но с другим форматом текстуры.
На метале - более ущербная реализация с 2-мя одномерными float массивами по вертикали и по горизонтали (почти как на андроиде, только там 2D). Да еще и самому надо резолв делать, а чтобы поменять данные текстуры надо ее пересоздавать.

С десктопами понятно, а вот зачем это все на мобилках (и тем более на метале) я не очень понимаю, разве что для VR.

#8560
(Правка: 18:45) 18:44, 17 июня 2021

/A\
Кажется еще от Oculus есть видео по использованию VK_EXT_fragment_density_map, я когда то чекал, но это не точно что на канале Oculus-а есть

#8561
(Правка: 19:39) 19:38, 17 июня 2021

IBets
Это наверное https://youtu.be/E8qRv4xHGDw?t=1426 но там очень мало.

В любом случае у меня нет телефона чтоб потестить это расширение, так что не уверен, что буду его использовать.

#8562
(Правка: 5:10) 5:10, 18 июня 2021

Andrey
> Vulan Debug Ouput: ERROR: [DS] Code 2345 : duplicated binding number in
> VkDescriptorSetLayoutBinding. For more information refer to Vulkan Spec Section
> '13.2.1. Descriptor Set Layout' which states 'The
> VkDescriptorSetLayoutBinding::binding members of the elements of the pBindings
> array must each have different values.'
> (https://www.khronos.org/registry/vulkan/specs/1.0-extensions/xhtm…
> outCreateInfo)
Ты два раза добавил одинаковый vkDescriptorSetLayoutBinding в vkDescriptorSetLayoutCreateInfo при создании DescriptorSetLayout, поэтому эта ошибка валидации

#8563
(Правка: 7:37) 7:36, 18 июня 2021

Какой способ биндинга frequency буфферов наилучший для pc по перфу будет в среднем?
1) Аллокацию и обновление descriptor set делаем каждый draw call, после рендеринга кадра ресетим descriptor pools(вероятно самый медленный, но настолько ли критично?)
2) Dynamic uniform buffer. Привязываем в начале кадра, смещения передаём при биндинге дескриптор сета
3) Не заморачиваемся с uniform буффером. Используем storage buffer привязываем в начале кадра и через пуш контанты передаём необходимые смещения при вызове отрисовки(на AMD полагаю будет работать как во  (2) случае)
4) Используем массив uniform буфферов и передаём смещение как в предыдущем случае через push константы, для доступа в шейдере

#8564
8:10, 18 июня 2021


IBets
> 2) Dynamic uniform buffer. Привязываем в начале кадра, смещения передаём при биндинге дескриптор сета
этот вариант специально в api предусмотрели, чтобы он гарантированно работал и ни от чего не зависел.

Страницы: 1567 568 569 570 571 572 Следующая »
ПрограммированиеФорумГрафика