Size: a a a

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

2020 December 28

R

Roman in Rust GameDev — русскоговорящее сообщество
То есть он сам проверяет требования шейдера?
источник

IL

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

R

Roman in Rust GameDev — русскоговорящее сообщество
Что-то я вижу что создание шейдерного модуля ничего такого не делает и единственная ошибка там OomError
источник

R

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

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Ну при годогенерации можно посмотреть какие экстеншены объявлены в spir-v, и при создании пайплайна потом сравнить их с тем, что даёт Девайс.
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
https://github.com/vulkano-rs/vulkano/blob/master/vulkano-shaders/src/codegen.rs#L371 Вот тут вот вроде бы это и делается.
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Как видите, оно не дописано, но в концепцию Vulkano вполне укладывается. Если нужно, то можно дописать.
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Ага, нашел. Он генерит панику, если нужной фичи или расширения нет
источник

IL

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

R

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

R

Roman in Rust GameDev — русскоговорящее сообщество
А еще кодген упадет если я капабилити из Vulkan1.2 буду использовать
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Потому что вообще не распарсится
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Да, Vulkan 1.2 не поддерживается
источник

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Это писалось, когда Vulkan 1.2 ещё не было просто
источник

R

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

IL

Ilya Lakhin in Rust GameDev — русскоговорящее сообщество
Это лучше, чем падать в рантайме
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Все время новые расширения появляются. От любого будет крэш в макросе
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Не особо лучше
источник

o

operator in Rust GameDev — русскоговорящее сообщество
kvark: Нет ничего неправильного в динамически подгружаемых шейдерах. Это реальный use case, который многие используют, и рабочая группа знала это при создании Вулкана
источник

R

Roman in Rust GameDev — русскоговорящее сообщество
Гарантированное падение в рантайме с нормальной ошибкой лучше чем неправильная ошибка при компиляции
источник