| // Our buffers are in std140 layout, so the generated code will need to compensate. |
| |
| layout(set=0, binding=1) uniform UniformBuffer { |
| float2x2 u22; |
| float2x3 u23; |
| float2x4 u24; |
| float3x2 u32; |
| float3x3 u33; |
| float3x4 u34; |
| float4x2 u42; |
| float4x3 u43; |
| float4x4 u44; |
| float2x2 au22[3]; |
| float2x3 au23[3]; |
| float2x4 au24[3]; |
| float3x2 au32[3]; |
| float3x3 au33[3]; |
| float3x4 au34[3]; |
| float4x2 au42[3]; |
| float4x3 au43[3]; |
| float4x4 au44[3]; |
| }; |
| |
| layout(set=0, binding=2) buffer StorageBuffer { |
| float2x2 s22; |
| float2x3 s23; |
| float2x4 s24; |
| float3x2 s32; |
| float3x3 s33; |
| float3x4 s34; |
| float4x2 s42; |
| float4x3 s43; |
| float4x4 s44; |
| float2x2 as22[3]; |
| float2x3 as23[3]; |
| float2x4 as24[3]; |
| float3x2 as32[3]; |
| float3x3 as33[3]; |
| float3x4 as34[3]; |
| float4x2 as42[3]; |
| float4x3 as43[3]; |
| float4x4 as44[3]; |
| }; |
| |
| half4 main() { |
| float value = u22[0][0] + |
| u23[0][0] + |
| u24[0][0] + |
| u32[0][0] + |
| u33[0][0] + |
| u34[0][0] + |
| u42[0][0] + |
| u43[0][0] + |
| au44[0][0][0] + |
| au22[0][0][0] + |
| au23[0][0][0] + |
| au24[0][0][0] + |
| au32[0][0][0] + |
| au33[0][0][0] + |
| au34[0][0][0] + |
| au42[0][0][0] + |
| au43[0][0][0] + |
| au44[0][0][0] + |
| s22[0][0] + |
| s23[0][0] + |
| s24[0][0] + |
| s32[0][0] + |
| s33[0][0] + |
| s34[0][0] + |
| s42[0][0] + |
| s43[0][0] + |
| as44[0][0][0] + |
| as22[0][0][0] + |
| as23[0][0][0] + |
| as24[0][0][0] + |
| as32[0][0][0] + |
| as33[0][0][0] + |
| as34[0][0][0] + |
| as42[0][0][0] + |
| as43[0][0][0] + |
| as44[0][0][0]; |
| return half4(value); |
| } |