e47561a28b
On AMD Windows OpenGL, it has been reported that we need to load matrices via a wrapper function.
25 lines
709 B
GLSL
25 lines
709 B
GLSL
#version 100
|
|
|
|
struct Buffer
|
|
{
|
|
mat4 MVPRowMajor;
|
|
mat4 MVPColMajor;
|
|
mat4 M;
|
|
};
|
|
|
|
uniform Buffer _13;
|
|
|
|
attribute vec4 Position;
|
|
|
|
mat4 SPIRV_Cross_workaround_load_row_major(mat4 wrap) { return wrap; }
|
|
|
|
void main()
|
|
{
|
|
vec4 c0 = SPIRV_Cross_workaround_load_row_major(_13.M) * (Position * _13.MVPRowMajor);
|
|
vec4 c1 = SPIRV_Cross_workaround_load_row_major(_13.M) * (SPIRV_Cross_workaround_load_row_major(_13.MVPColMajor) * Position);
|
|
vec4 c2 = SPIRV_Cross_workaround_load_row_major(_13.M) * (_13.MVPRowMajor * Position);
|
|
vec4 c3 = SPIRV_Cross_workaround_load_row_major(_13.M) * (Position * SPIRV_Cross_workaround_load_row_major(_13.MVPColMajor));
|
|
gl_Position = ((c0 + c1) + c2) + c3;
|
|
}
|
|
|