mirror of
https://github.com/libretro/RetroArch
synced 2025-02-23 15:40:35 +00:00
45 lines
674 B
GLSL
45 lines
674 B
GLSL
|
#version 450
|
||
|
|
||
|
struct RowMajor
|
||
|
{
|
||
|
mat4 B;
|
||
|
};
|
||
|
|
||
|
struct NestedRowMajor
|
||
|
{
|
||
|
RowMajor rm;
|
||
|
};
|
||
|
|
||
|
layout(set = 0, binding = 0, row_major) uniform UBO
|
||
|
{
|
||
|
mat4 A;
|
||
|
layout(column_major) mat4 C; // This should also be worked around.
|
||
|
};
|
||
|
|
||
|
|
||
|
layout(set = 0, binding = 1, row_major) uniform UBO2
|
||
|
{
|
||
|
RowMajor rm;
|
||
|
};
|
||
|
|
||
|
layout(set = 0, binding = 2, row_major) uniform UBO3
|
||
|
{
|
||
|
NestedRowMajor rm2;
|
||
|
};
|
||
|
|
||
|
layout(set = 0, binding = 3) uniform UBONoWorkaround
|
||
|
{
|
||
|
mat4 D;
|
||
|
};
|
||
|
|
||
|
layout(location = 0) in vec4 Clip;
|
||
|
layout(location = 0) out vec4 FragColor;
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
NestedRowMajor rm2_loaded = rm2;
|
||
|
FragColor = rm2_loaded.rm.B * rm.B * A * C * Clip;
|
||
|
FragColor += D * Clip;
|
||
|
FragColor += A[1] * Clip;
|
||
|
}
|