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

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

Страницы: 1350 351 352 353383 Следующая »
#5250
6:09, 13 мая 2019

/A\
> Скоро ты поймешь, что без какой-либо автоматизации расстановки барьеров очень
> трудно написать что-то серьезное.

UE4 VulkanRHI считается серьёзным?


#5251
8:17, 13 мая 2019

innuendo
> UE4 VulkanRHI считается серьёзным?
Я вообще про проекты говорил, а не про серьезные обертки над апи.
Во многих движках барьеры расставляются вручную, но это все равно скрыто от пользователя, поэтому пользоваться удобно.

#5252
12:42, 14 мая 2019

/A\
> Скоро ты поймешь, что без какой-либо автоматизации расстановки барьеров очень
> трудно написать что-то серьезное.
"Vulkan API — теперь и ты можешь написать свой тормозной опенжиль, Иван!"

#5253
13:41, 14 мая 2019

и кому нужен это ваш вулкан кроме крупных контор ?

#5254
17:55, 14 мая 2019

/A\
> Рано радуешься. Скоро ты поймешь, что без какой-либо автоматизации расстановки
> барьеров очень трудно написать что-то серьезное.
Почему не семафоры?

#5255
(Правка: 18:16) 18:01, 14 мая 2019

BingoBongo
> Почему не семафоры?

потому что семафоры обрабатываются внутри submit

или ты про сложность расстановки ?

#5256
18:42, 14 мая 2019

innuendo
Про производительность. Фрейм граф позволят решить проблемы с расстановкой семафоров уж точно. Барьеров скорее всего тоже, надо посмотреть.

#5257
(Правка: 18:45) 18:44, 14 мая 2019

BingoBongo
> Почему не семафоры?
Потому что обычно достаточно 2х семафоров для свопчейна, а барьеров нужно немного больше.
Конечно если ты используешь async compute или сабмитишь по несколько раз за кадр, то и семафоров становится больше, но это уже следующий уровень.
upd: Семафоры достаточно дорогие, поэтому их должно быть как можно меньше.

#5258
18:47, 14 мая 2019

NyakNyakProduction
> Vulkan API — теперь и ты можешь написать свой тормозной опенжиль
На огл апи с барьерами и инвалидациями сделано неудачно, на вулкане все намного понятнее.
Ну и тормозит не апи, а алгоритмы. Вон тот же X4 хоть и на вулкане, но работает очень медленно.

#5259
18:55, 14 мая 2019

/A\
> upd: Семафоры достаточно дорогие, поэтому их должно быть как можно меньше.
Такого вида ответ я ждал. Но я пока не заметил, что семафоры прям тормозят. На простых сценах выигрыш против opengl в 2-2.5 раза. Вообще, мне кажется, что если архитектура видеокарт рассчитана на апи, близкое к апи вулкана, то что чтобы сделать драйвер под opengl там должен быть костыль на костыле.

#5260
(Правка: 19:11) 19:05, 14 мая 2019

/A\
> а барьеров нужно немного больше.

намнооого больше

> upd: Семафоры достаточно дорогие, поэтому их должно быть как можно меньше.

семафоры по числу самбмитов же

https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html… res-importing

#5261
19:19, 14 мая 2019

BingoBongo
> чтобы сделать драйвер под opengl там должен быть костыль на костыле.
В огл тотже фреймграф.

innuendo
> семафоры по числу самбмитов же
Ну в том же вольфенштейне 9 сабмитов на кадр.

#5262
(Правка: 19:45) 19:34, 14 мая 2019

/A\
Например, если представить, что в вулкане нет пуш-констант (или данные более емкие, чем 256 бит на объект), то для хранения и обновления позиций тысяч динамических объектов на стороне GPU я мог бы использовать два DYNAMIC_UNIFORM буфера - один для четных кадров, второй для нечетных, каждый раз обновляя свободный соответствующий кадру буфер через staging buffer. Если выйти за предел в 65k байт, то конечно буферов будет больше, но не суть. Это вроде как самый быстрый способ. Делает ли такую оптимизацию флаг DYNAMIC_DRAW для uniform буфера на opengl?

upd. Еще вспомнил "дилемму": неужели opengl в конечном счете группирует все данные в один буфер, если это возможно?

Изображение

https://developer.nvidia.com/vulkan-memory-management
#5263
19:47, 14 мая 2019

BingoBongo
Я вот не знаю как пуш константы мапятся на железо. Скорее всего это просто софтварная часть, а сами значения читаются также как юниформ буфер, ну может сразу в кэш записываются, а юниформы надо сначала запросить из шейдера.
Насколько я знаю Дх11 автоматически делал двойную буферизацию для юниформ буферов, а на огл надо делать вручную. Но все это не документированно и определяется экспериментально.

#5264
19:49, 14 мая 2019

BingoBongo
> 256 бит
[зануда_моде]
256 байт
[/зануда_моде]

Страницы: 1350 351 352 353383 Следующая »
ПрограммированиеФорумГрафика