03b1f66ef1
By default, the matrix would be declared as mediump, causing precision issues. Need to dispatch to two separate functions since GLSL does not support overload based on precision.
31 lines
753 B
GLSL
31 lines
753 B
GLSL
#version 310 es
|
|
|
|
layout(binding = 0, std140) uniform Buffer
|
|
{
|
|
layout(row_major) mat4 HP;
|
|
layout(row_major) mediump mat4 MP;
|
|
} _21;
|
|
|
|
layout(binding = 1, std140) uniform Buffer2
|
|
{
|
|
layout(row_major) mediump mat4 MP2;
|
|
} _39;
|
|
|
|
layout(location = 0) out vec4 H;
|
|
layout(location = 0) in vec4 Hin;
|
|
layout(location = 1) out mediump vec4 M;
|
|
layout(location = 1) in mediump vec4 Min;
|
|
layout(location = 2) out mediump vec4 M2;
|
|
|
|
highp mat4 spvWorkaroundRowMajor(highp mat4 wrap) { return wrap; }
|
|
mediump mat4 spvWorkaroundRowMajorMP(mediump mat4 wrap) { return wrap; }
|
|
|
|
void main()
|
|
{
|
|
gl_Position = vec4(1.0);
|
|
H = spvWorkaroundRowMajor(_21.HP) * Hin;
|
|
M = spvWorkaroundRowMajor(_21.MP) * Min;
|
|
M2 = spvWorkaroundRowMajorMP(_39.MP2) * Min;
|
|
}
|
|
|