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

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

Страницы: 1403 404 405 406425 Следующая »
#6045
23:13, 4 дек. 2019

> хотя glslang вроде однопоточный...
У него апи однопоточное, но внутри он многопоточный, по-моему.


#6046
(Правка: 23:17) 23:16, 4 дек. 2019

BingoBongo
> но внутри он многопоточный
я в нем ковырялся и даже свою версию glsl делал, но не помню ничего многопоточного там

innuendo
> вызывается как внешний процесс?
нет, подцеплен статичной либой

#6047
0:06, 5 дек. 2019

/A\
Тогда я не понимаю, почему там ограничение:

// Call this exactly once per process before using anything else
bool InitializeProcess();
и при попытке использовать апи в несколько потоков все падает.
#6048
0:59, 5 дек. 2019

BingoBongo
Да просто смысла нет все это многопоточить, с++ компиляторы компилят разные cpp файлы в разных потоках, а шейдер то один.
Там глобальный аллокатор, который чистится после компиляции шейдера, если компилить их параллельно, то получается будет общая память и кто-то освободит ее первый, а кто-то обломается.

#6049
(Правка: 1:26) 1:14, 5 дек. 2019

/A\
> Да просто смысла нет все это многопоточить, с++ компиляторы компилят разные cpp
> файлы в разных потоках, а шейдер то один.
А что нельзя разбить шейдер на части, как-будто было несколько файлов?

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

#6050
1:43, 5 дек. 2019

BingoBongo
Там есть функция SetThreadPoolAllocator, которая пишет в thread_local_storage и если ты не инициализировал его для каждого треда, то упадет.

#6051
(Правка: 9:34) 9:22, 5 дек. 2019

И снова нужна ваша помощь.
Делаю текстуру рефракции для воды. И разумеется, решил не рисовать в нее сцену по-новой, а скопировать в нее текущее цветовое вложение фреймбуфера.
Пытался схитрить и сделать как делал с буфером глубины - не катит.
Как средствами вулкана это сделать правильно? Чтобы по новой сцену не рисовать в отдельную текстуру.

Update: Делать два цветовых вложения в описании прохода(подпрохода)?

#6052
9:59, 5 дек. 2019

В конвейере теперь указано два цветовых вложения и я имею ошибку:

Attachment 1 not written by fragment shader; undefined values will be written to attachment

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

#6053
11:17, 5 дек. 2019

MikeNew

вулкан тебе не нужен

#6054
(Правка: 11:26) 11:25, 5 дек. 2019
innuendo
> вулкан тебе не нужен
Топ-1 ответ года по полезности, не иначе. :)
#6055
(Правка: 11:30) 11:29, 5 дек. 2019

MikeNew
> В конвейере теперь указано два цветовых вложения и я имею ошибку:
>
> Attachment 1 not written by fragment shader; undefined values will be written to attachment
жесть, братюнь. трудно тебе будет, очень трудно. вулкан однозначно не спроектирован так, чтобы по ходу его изучения можно было дотягивать подобные знания — подразумевается, что ты этими вещами уже свободно владеешь, и даже при этом может быть трудненько. почитай примеры по mrt в opengl чтобы разобраться что ли: https://learnopengl.com/Advanced-Lighting/Deferred-Shading

вообще любые вопросы по glsl сначала ищутся в документации к opengl и уже потом при необходимости транслируются на вулкан.

#6056
(Правка: 11:32) 11:31, 5 дек. 2019

Suslik
> жесть, братюнь. трудно тебе будет, очень трудно. вулкан однозначно не
> спроектирован так, чтобы по ходу его изучения можно было дотягивать подобные
> знания — подразумевается, что ты этими вещами уже свободно владеешь, и даже при
> этом может быть трудненько.
Мне уже не легко, но тем интереснее. Для меня в кайф решать сложности такого рода.
Искал бы легких путей - сидел бы в Юнити.
Спасибо за помощь.

#6057
11:38, 5 дек. 2019

MikeNew
> > вулкан тебе не нужен
> Топ-1 ответ года по полезности, не иначе. :)
самый полезный ответ - зачем тебе вулкан если не можешь 2+2 сделать ?

#6058
11:45, 5 дек. 2019
innuendo
> самый полезный ответ - зачем тебе вулкан если не можешь 2+2 сделать ?
Я уже говорил - не вижу смысла потом переучиваться. И вулкан мне нравится. А остальное нет. Лучше заниматься тем что сложно и нравится, чем тем что легко и не нравится.
Опять же польза для других - смотрят на мои вопросы и преисполняются удовлетворения, оттого что  намного умней и больше знают. Всем хорошо, все довольны. :)
#6059
11:52, 5 дек. 2019

MikeNew
> Как средствами вулкана это сделать правильно?

у Саши есть пример Deferred Shading это про mrt, а для рефракции копируй

Страницы: 1403 404 405 406425 Следующая »
ПрограммированиеФорумГрафика