Size: a a a

pro.graphon (and gamedev)

2021 June 27

N

NeuroKALKA in pro.graphon (and gamedev)
На пайплайн все сеты на все шейдеры
источник

N

NeuroKALKA in pro.graphon (and gamedev)
Только если ты там не запретил их флагом специальным
источник

eb

ed braed in pro.graphon (and gamedev)
Вот это то, чего я пытаюсь избежать уже битый день :)
источник

eb

ed braed in pro.graphon (and gamedev)
Ну видимо ок, буду думать в сторону объединения сетов, спасибо!
источник

N

NeuroKALKA in pro.graphon (and gamedev)
Ну напиши set = 1 и должно работать тогда
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
Я кое что придумал
источник

N

NeuroKALKA in pro.graphon (and gamedev)
Мы то думали, что ты один сет на оба шейдера юзаешь
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
Упорото, но работает))
источник

eb

ed braed in pro.graphon (and gamedev)
Вот да, это то что я хотел услышать.. Мне почему-то казалось что каждая стадия сеты вяжет (или по крайней мере может) "локально относительно себя".
источник

AP

Alexander Potapov in pro.graphon (and gamedev)
во первых ты всю инфу можешь из шейдеров с помощью spirv-reflect вытянуть
во вторых можешь описать все шейдерные униформы в с++ коде
потом склеить все воедино и неявно создавать сеты и все правильно биндить
источник

N

NeuroKALKA in pro.graphon (and gamedev)
Ты представь, что вот твои шейдеры это такие кирпичики, из которых ты пайплайн строишь, а вот входы этого пайплайна только одни на всех, и это как раз твои дескриптор сеты
источник

N

NeuroKALKA in pro.graphon (and gamedev)
Если не учитывать еще вертекс/индекс буферы
источник

eb

ed braed in pro.graphon (and gamedev)
Там изначальная проблема была в том, что у меня 2 макета пайплайна судя по всему были несовместимы.
Условно так:
1 сет биндился перед всеми vkCmdDraw (там были 2 биндинга, на трансформы и лампочки в соответствующие шейдеры).
Далее перед непосредственно каждым vkCmdDraw вызывался vkCmdPushConstants с макетом пайплайна (который как раз по текущей схеме работал, т.е. 2 сета в каждом свои биндинги).
Я предполагаю что этот пуш-константс "сбивал" мне 2ой биндинг..

Поэтому собственно я и решил наколеночно сваять код так, чтобы макеты были одинаковы (к сожалению, быстрее оказалось разбить начальный сет, а не склеить другие 2), ну и в итоге время я потратил, а пришёл к тому-же.
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
во времена комбайнеров такие использовались, назывались bump mapping'ом
источник

eb

ed braed in pro.graphon (and gamedev)
Это я и так делаю естественно.
У меня просто есть сущности, который порождают дескрипторсеты без шейдера вообще (т.е. некое дефолтное состояние всех конвееров которые рендерят меши).
источник

M

Mikhail in pro.graphon (and gamedev)
Важно, что в вулкане дескриптор сеты ставятся к пайплайну, а не к стейджам пайплайна. Т.е. если у тебя есть set=0, binding=0 с разными данными в vs и fs, то тебя есть проблема (хотя ваоидация, вроде, должна кричать в этом случае). Вообще дескриптор сет – это просто набор биндингов, которые ты биндишь одним вызовом, поэтому их имеет смысл группировать по частоте бинда
источник

eb

ed braed in pro.graphon (and gamedev)
Лан, ребят, пасиба всем!
Подбодрили.. А то я уже совсем взгрустнул, вроде дохера всего перепробовал а результат нулевой.
Пока понятно куда дальше двигаться.
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
хотя нет, там карта высот была бы, а тут градиенты
источник

N

NeuroKALKA in pro.graphon (and gamedev)
А второй сет не биндился то есть?
источник

N

NeuroKALKA in pro.graphon (and gamedev)
И включен ли валидейшен
источник