私が持っているGLSL頂点シェーダーでは:
#version 330
layout (location=0) uniform mat4 wm_;
layout (location=1) uniform mat4 vm_;
...more code...
シェーダーのコンパイル時にコンパイル エラーが発生しません。その後、wm_ と vm_ の glGetUniformLocation を assert() して、シェーダー ソースで指定された場所を返します。glGetUniformLocation が異なる値を返すため、アセリオンが起動します (-1 は返されません。つまり、ユニフォームは最適化されず、有効に見えるが異なる場所が割り当てられます)。
誰でもこの動作を説明できますか?