SPIRV-Cross/reference/opt/shaders/frag/ubo-load-row-major-workaround.frag
Hans-Kristian Arntzen 6a614cc7f7 Normalize all internal workaround methods to use spv prefix.
We have been interchanging spv and SPIRV_Cross_ for a while, which
causes weirdness since we don't explicitly ban SPIRV_Cross identifiers,
as these identifiers are generally used for interface variable
workarounds.
2020-11-23 15:42:27 +01:00

47 lines
894 B
GLSL

#version 450
struct RowMajor
{
mat4 B;
};
struct NestedRowMajor
{
RowMajor rm;
};
layout(binding = 2, std140) uniform UBO3
{
layout(row_major) NestedRowMajor rm2;
} _17;
layout(binding = 1, std140) uniform UBO2
{
layout(row_major) RowMajor rm;
} _35;
layout(binding = 0, std140) uniform UBO
{
layout(row_major) mat4 A;
mat4 C;
} _42;
layout(binding = 3, std140) uniform UBONoWorkaround
{
mat4 D;
} _56;
layout(location = 0) out vec4 FragColor;
layout(location = 0) in vec4 Clip;
NestedRowMajor spvWorkaroundRowMajor(NestedRowMajor wrap) { return wrap; }
mat4 spvWorkaroundRowMajor(mat4 wrap) { return wrap; }
void main()
{
FragColor = (((spvWorkaroundRowMajor(_17.rm2).rm.B * spvWorkaroundRowMajor(_35.rm.B)) * spvWorkaroundRowMajor(_42.A)) * spvWorkaroundRowMajor(_42.C)) * Clip;
FragColor += (_56.D * Clip);
FragColor += (_42.A[1] * Clip);
}