Size: a a a

Rust GameDev — русскоговорящее сообщество

2020 December 28

R

Roman in Rust GameDev — русскоговорящее сообщество
То есть сгенерировать под шейдер структуры это да. Но как проверить что в буфер я записал то что надо? И что положил в нужный дескриптор
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Я конечно не занимался реверс-инженерингом конкретных железок, но по моему личному опыту specialization constants по сути эквивалентны кодогенерации.
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Бенчмарк делал?
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
На коленке )
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
В больших движках, кстати, наоборот все.
Структуры в шейдерах генерируются из структур в коде, чтоб layout совпадал. И это опять же в рантайме делается при генерации шейдера из своего внутреннего представления.
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Roman
То есть сгенерировать под шейдер структуры это да. Но как проверить что в буфер я записал то что надо? И что положил в нужный дескриптор
Так он не только структуры генерирует, он ещё генерирует Rust типы для пайплайна и для билдеров дескритер-сетов, в которые статически невозможно положить то, что класть в них неположено.
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Ну то есть, они там Layout объект генерируют, если быть точнее, который уходит в параметры всех этих конструкторов
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Сам контроль структур осуществляется через вложенные кортежи
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Ilya Lakhin
Так он не только структуры генерирует, он ещё генерирует Rust типы для пайплайна и для билдеров дескритер-сетов, в которые статически невозможно положить то, что класть в них неположено.
Так ты в дескриптор кладешь регион буфера. Или он тебя требует использовать целый буфер обернутый что б фиксировать какая там структура прописана?
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Это будет дичайший оверхед
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: В самом деле, откуда вулкано зна ть, что у тебя в буфферах?
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Ну как бы буферный тип имеет параметр, показывающий что там внутри лежит. А в чем тут оверхед?
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
В том что буферы по 10 байт занимают сотни байт реальной памяти и хэндл. В то время как ты должен в один буфер положить кучу разных данных и регионы буфера использовать в разных местах
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: То есть в буффере может быть только одна штука, и на всю жизнь? Я не могу переиспользовать буффер доя разных uniform и vertex данных?
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: Вот это поворот
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Честно говоря, я в этих материях плохо разбираюсь, но там есть buffer-view
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: Логично
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Переиспользовать для разных данных в непересекающихся во времени промежутках тоже важно
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
А что насчет массивов с динамическим размером?
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Вообще, я не понимаю о чем вы говорите, по правде сказать. Буферы по 10 байт... А зачем несколько буферов по 10 байт, если можно положить в один буфер сразу массив из этих 10-байтовых структур?
источник