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

[Vulkan] Frame resources. Опять. (3 стр)

Страницы: 1 2 3 4 Следующая »
#30
16:36, 4 авг. 2019

/A\
> Ну и если у тебя асинк компьют или трансфер, то в любом случае будут синхронизации через семафоры, которые как раз заменят барьер в начале кадра.
на практике мне вообще не удалось нарушить синхронизацию между кадрами. то есть чтобы следующий кадр потёр gbuffer предыдущего. судя по всему, так как происходит взаимодействие через present queue через семафор, оно уже само устанавливает подобный барьер. но на всякий случай поставил глобальный execution barrier в начале кадра, он в среднем занимает 0.01мс времени. я не уверен, что это вообще соответствует какой-то реальной задержке.

#31
16:38, 4 авг. 2019

/A\
> Ну и если у тебя асинк компьют или трансфер, то в любом случае будут
> синхронизации через семафоры

как я уже показывал, делают не только через семафоры

#32
16:45, 4 авг. 2019

innuendo
> как я уже показывал, делают не только через семафоры
Тебя потом заставили это переделывать?

Suslik
> на практике мне вообще не удалось нарушить синхронизацию между кадрами. то есть
> чтобы следующий кадр потёр gbuffer предыдущего.
Я же говорил, что видеокарты пока не способны параллельно рисовать.

Я вот не уверен, что execution barrier'а будет достаточно. После записи в г-буфер нужно зафлушить все записи в рендер таргеты, а потом уже снова в них писать, а это уже memory dependency, иначе нет гарантий что предыдущие записи не зафлушатся намного позже. Но на практике такое не случается, хотя бы потому, что драйверо-писатели повставляли защиту от дураков))

#33
16:50, 4 авг. 2019

/A\
> > как я уже показывал, делают не только через семафоры
> Тебя потом заставили это переделывать?

зато это гибкое решение - хотя и спорное

#34
16:51, 4 авг. 2019

/A\
> Я же говорил, что видеокарты пока не способны параллельно рисовать.

а как же multiGPU?

#35
(Правка: 16:58) 16:57, 4 авг. 2019

innuendo
> а как же multiGPU?
Мало у кого есть мультигпу для вулкана. Вот под дх12 это более применимо.

> зато это гибкое решение - хотя и спорное
Больше похоже на UB

#36
17:03, 4 авг. 2019

/A\
> Мало у кого есть мультигпу для вулкана.

так умеют видеокарты рендерить параллельно ?

/A\
> > зато это гибкое решение - хотя и спорное
> Больше похоже на UB

его писали не самые глупые люди

#37
(Правка: 18:12) 18:11, 4 авг. 2019

innuendo
> его писали не самые глупые люди
где в документации написано про синхронизации гпу с цпу на ивентах, там только чтение состояния без всяких гарантий

> так умеют видеокарты рендерить параллельно ?
у меня не умеют

#38
18:42, 4 авг. 2019

/A\
> где в документации написано про синхронизации гпу с цпу на ивентах, там только
> чтение состояния без всяких гарантий

vkCmdWaitEvents?

> > так умеют видеокарты рендерить параллельно ?
> у меня не умею

ну а если у кого-то sli/crossfire

#39
19:16, 4 авг. 2019

innuendo
> vkCmdWaitEvents
это синхронизация цпу -> гпу, а ты использовал ивенты и для ожидания гпу на цпу

#40
19:44, 4 авг. 2019

/A\
> а ты использовал ивенты

не я ... там можно менять постпроцессы с cs на async cs

#41
20:24, 4 авг. 2019

innuendo
ты можешь псевдокодом написать этот алгоритм? а то из намеков нихрена не понятно.

#42
21:50, 4 авг. 2019

/A\
ты же скачивал код :)

#43
22:31, 4 авг. 2019

innuendo
> ты же скачивал код :)
опять какие-то намеки...

#44
22:37, 4 авг. 2019

/A\
запускается асинк пост процесс - есть следущий постпроцесс которому нужен результат первого - он и ждёт через wait for event выполнение первого

Страницы: 1 2 3 4 Следующая »
ПрограммированиеФорумГрафика