#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() { NestedRowMajor rm2_loaded; rm2_loaded.rm.B = spvWorkaroundRowMajor(_17.rm2).rm.B; FragColor = (((rm2_loaded.rm.B * spvWorkaroundRowMajor(_35.rm.B)) * spvWorkaroundRowMajor(_42.A)) * spvWorkaroundRowMajor(_42.C)) * Clip; FragColor += (_56.D * Clip); FragColor += (_42.A[1] * Clip); }