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

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

Страницы: 1587 588 589 590595 Следующая »
#8805
10:36, 25 окт. 2021

ronniko

Шел 2021 год, а нормального АЙПИ так и не написали.
Что за мир, что за люди.

Может проблема в том, что люди пишут АЙПИ (IP - Intellectual Property) вместо ЭйПиАй (API - application programming interface)?

#8806
12:03, 27 окт. 2021

Тут про sync2 и обновления в валидации синхронизаций.

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

#8807
18:07, 27 окт. 2021

raspberry pi 4 сертифицировали под vulkan 1.1

#8808
10:31, 28 окт. 2021

Объясните нубасу, как правильно загружать ресурсы(например, текстуры) параллельно рендеру.

Даже если transfer и graphics queue различны, все равно в какой-то момент загрузки надо юзать (т.е. лочить мьютексом) graphics queue, т.к. transfer queue не умеет делать транзит в pipeline stage VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR.

Не получается лок-фри :)

ЗЫ Я надеюсь, что кто-нибудь что-нибудь понял :)

#8809
(Правка: 10:48) 10:48, 28 окт. 2021

Imaginary unit
Придется переводить в графической очереди, да. Ну, будем надеяться, что это быстро.

На самом деле, layout transition и не будет в идти параллель, да и не может быть, наверное.
Если производить загрузку еще можно, на видюхе есть выделенное copy ядро для этого, то, чтобы перевести лейаут, скорее всего все равно придется задействовать ALU, а раз так, какая разница из какой очереди? Больше их все равно не станет.
Самое долгое и тяжелое - перегнать по PCI данные можно сделать в параллель.
Перевести лейаут - скорее всего нельзя, но не очень то и хотелось.
Просто переводи его перед первым использованием ресурса, думаю это будет достаточно эффективно.

#8810
11:00, 28 окт. 2021

Imaginary unit
Хм... Я тоже перевожу в графической очереди при копировании из буфера в текстуру. Слои то ругаются, если в другой делать.

#8811
11:25, 28 окт. 2021

HolyDel
А ведь и правда можно перед использованием уже layout переводить. Что то сам не догнал до этого :)

Спасибо. Хотя б ясно, что делаю как надо.

#8812
11:36, 28 окт. 2021

Andrey
Я в двух очередях (если они различны). В трансфер копирование из буфера, в графикс транзит лэйаута.

#8813
17:32, 28 окт. 2021

А кто-нибудь пробовал в одном сабпассе читать input attachment и писать в тот же color attachment, оба в general layout?
У меня почему-то на адрено 660 получается дата рейс или похожий баг, на других железках работает правильно, но чуть медленее.

#8814
17:38, 28 окт. 2021

Imaginary unit
> Объясните нубасу, как правильно загружать ресурсы(например, текстуры)
> параллельно рендеру.
Так чтоб не было такой картинки в профайлере)

+ Показать

Layout transition обычно быстрый, за исключением случаев, когда сжатый рендер таргет переводится в лейаут без поддержки сжатия, например color attachment -> general.

#8815
23:19, 29 окт. 2021

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

+ Показать
#8816
9:06, 30 окт. 2021

BingoBongo
А почему движок решил не ставить барьеры? Выглядит как баг.

#8817
(Правка: 9:15) 9:14, 30 окт. 2021
А почему движок решил не ставить барьеры?

Зачем вставлять палки в свой велосипед ? :)
#8818
9:59, 30 окт. 2021

BingoBongo
Так с артефактами получилась картинка? Может он как то хитро зашедулил работу в разные части текстуры?
Читаешь и пишешь в один и тот-же пиксель или по разному?

#8819
12:52, 30 окт. 2021

HolyDel
там следующая партия пикселей вычисляется на основе значений соседних пикселей, вычисленных на предыдущем этапе. в итоге в некоторых местах появляется фликеринг, хотя если камера неподвижна результат должен однозначно определяться и быть одинаков для всех кадров.

/A\
> А почему движок решил не ставить барьеры?
с логической точки зрения неочевидно, что там нужен барьер, у тебя newState == oldState. пусть в двух пайплайнах идет чтение из одной и той же текстуры, oldState = {PIPELINE_STAGE_COMPUTE_BIT, ACCESS_READ} и newState = {PIPELINE_STAGE_COMPUTE_BIT, ACCESS_READ} - ты будешь генерировать барьер при попытке сменить состояние? во-вторых, если я в двух пайплайнах читаю и пишу в одну и ту же текстуру, то если я пишу и читаю пиксели независимо от рассчетов другого пайплайна (например один пайплайн обновляет четные пиксели, а второй нечетные) - мне не нужен барьер, если зависимо - мне нужен барьер. в итоге необходимость такого барьера определяется логикой шейдера. если генерировать барьер, когда он не нужен - это тоже баг.

Страницы: 1587 588 589 590595 Следующая »
ПрограммированиеФорумГрафика