In einem Webgl-Pixel-Shader sind alle Funktionen so eingebunden, wie ich es verstehe. Sie können jedoch Parameter haben, die als in versus inout markiert sind , was bedeutet, dass sich ihr Wert ändern kann, der Wert jedoch außerhalb des Funktionsaufrufs nicht bestehen bleibt.
Bedeutet dies, dass der Shader eine Kopie des Werts erstellen muss, damit die Funktion arbeiten kann, wenn es sich um einen In- Wert handelt?
Sind Shader-Compiler / -Optimierer intelligent genug, um zu wissen, wann sie keine Kopie erstellen müssen, oder ist es am besten, alle Parameter einfach als inout zu markieren und sicherzustellen, dass diejenigen, die nicht geändert werden sollen, nicht geändert werden, wenn die Leistung ist das Hauptanliegen?
Vielen Dank!
quelle