Ich hab die aktuellsten Treiber von NVIDIA (260...) und OpenGL 4.1 support sowie DirectX 11. Ich hoffe also, dass es nicht an den Treibern liegt.
Wenn ich jetzt eine höhere Version also 120 nehme (z.B. 150) muss ich den OpenGL Renderer komplett umkrempeln. Ich hab' zwar vor irgend wann einen zweiten OpenGL renderer, mit OGL 3.0 als Basis, zu entwickeln,
aber erst Mal soll der jetzige reichen. Vor allem weil man in OpenGL durch extensions immer wieder auf das alte drauf bauen kann (ob das immer so gut ist mal außer Frage gestellt).
So kann ich z.B. Geometry Shader nutzen und trotzdem bei GLSL 120 bleiben. Ich muss halt immer die extensions auch in den Shadern einbauen (nicht schön, dafür aber selten
).
Wenn ich "RenderPass" als float oder boolean schreibe habe ich das selbe Problem. In einigen anderen Shadern die ich mal geschrieben habe (u.a. im ShaderLibrary tutorial meiner Engine) funktioniert das mit "int" wunderbar.
Ich kann mir den Fehler im Moment wirklich nicht erklären. Und ich bin ziehmlich sicher, das der Shader ohne Fehlermeldung ignoriert wird.
EDIT:
Ok Problem gelöst
Ich hab "RenderPass" drei mal verändert aber den Shader nicht neu gebunden. Meine Engine deaktiviert den Shader nach dem setzen von Konstanten wieder.
Danke trotzdem,
Lukas