Size: a a a

pro.graphon (and gamedev)

2020 February 27

L

Lain-dono in pro.graphon (and gamedev)
disba1ancer
выбросить, пусть дадут нам spir-v, а не это дерьмо
Если я правильно понел, то по факту spir-v останется в каком-то виде. Но ты всё равно сходи, открой issue
источник

d

disba1ancer in pro.graphon (and gamedev)
Lain-dono
Если я правильно понел, то по факту spir-v останется в каком-то виде. Но ты всё равно сходи, открой issue
он должен остаться полностью, с другой стороны если им нужен шейдерный язык свой, пусть пилят, главное тащите его как внешний инструмент для сборки spir-v байткода, а последний уже подцеплять как обычно
источник

L

Lain-dono in pro.graphon (and gamedev)
disba1ancer
он должен остаться полностью, с другой стороны если им нужен шейдерный язык свой, пусть пилят, главное тащите его как внешний инструмент для сборки spir-v байткода, а последний уже подцеплять как обычно
Я того же мнения на самом деле. Лишним оно не будет, но убирать SPIR-V плохо.
источник

d

disba1ancer in pro.graphon (and gamedev)
Lain-dono
Я того же мнения на самом деле. Лишним оно не будет, но убирать SPIR-V плохо.
их отбросит к версии OpenGL где spir-v не было ещё
источник

MK

Michael Kharitonov in pro.graphon (and gamedev)
disba1ancer
я про то что шейдерные языки не нужно тащить в спецификации, а то придём к тому от чего уходили, к OpenGL, сами знаете когда там появился spir-v
Когда?
источник

d

disba1ancer in pro.graphon (and gamedev)
в каких-то последних версиях
источник

d

disba1ancer in pro.graphon (and gamedev)
в 3.x не было и в первых 4.x вроде тоже
источник

MK

Michael Kharitonov in pro.graphon (and gamedev)
disba1ancer
в каких-то последних версиях
Хм.. тогда вопрос "зачем к нему пришли?" ) Ты выше написал "придем к тому от чего уходили". Чем был плох glsl? Я не очень в курсе
источник

d

disba1ancer in pro.graphon (and gamedev)
Michael Kharitonov
Хм.. тогда вопрос "зачем к нему пришли?" ) Ты выше написал "придем к тому от чего уходили". Чем был плох glsl? Я не очень в курсе
сам по себе он не был плох, но в драйверах его часто реализовывали как попало и это было плохо
источник

d

disba1ancer in pro.graphon (and gamedev)
суть spir-v в том чтобы транслировать байткод в машинные инструкции конкретной видеокарты, что обычно делается практически напрямую, один байткод транслируется в одну ил несколько машинных инструкции с минимумом модификаций, а компилировать в байткод можно любым компилятором на выбор, среди них ты можешь найти и тот который по твоему будет генерировать самый быстрый и оптимальный код
источник

MK

Michael Kharitonov in pro.graphon (and gamedev)
Спасибо за ответ. Картина складывается
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
disba1ancer
наркомания, могли бы for как в нормальных языках программирования сделать, а не через эту кучу многословного дерьма и лишних скобочек
Control flow должен быть reducible, никаких goto, то есть, break/continue. Иначе у тебя получается сложность компиляции как у GLSL и HLSL
источник

И

Игорь in pro.graphon (and gamedev)
перевернуло внутри когда прочитл goto
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
А фи есть или только переменные?
источник

d

disba1ancer in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Control flow должен быть reducible, никаких goto, то есть, break/continue. Иначе у тебя получается сложность компиляции как у GLSL и HLSL
яннп
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
disba1ancer
яннп
До какого-нибудь return position или uav.Store должен быть только один путь, он может разветвляться, но после разветвления обязан сходиться
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Оптимизации и выделение регистров потому что удобно делать, когда у тебя программа в форме static single assignment, когда у тебя есть цепочки зависимостей для всего
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Здесь язык низкоуровневый, который должен компилироваться быстро и легко, примерно как SPIR-V или LLVM IR, поэтому схождение control flow ты обязан обеспечивать сам, компилятор не должен разбираться в макаронах
источник

d

disba1ancer in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
Здесь язык низкоуровневый, который должен компилироваться быстро и легко, примерно как SPIR-V или LLVM IR, поэтому схождение control flow ты обязан обеспечивать сам, компилятор не должен разбираться в макаронах
так а зачем он нужен если есть spir-v и можно обмазаться сторонним компилятором
источник

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
Тут, конечно, есть переменные, но после ветвления ты можешь просто считать, что зависимость и от тех переменных, которые изменились в if, и от тех, которые изменились в else if, и от тех, которые изменились в else
источник