1// Our buffers are in std140 layout, so the generated code will need to compensate. 2 3layout(set=0, binding=1) uniform UniformBuffer { 4 float2x2 u22; 5 float2x3 u23; 6 float2x4 u24; 7 float3x2 u32; 8 float3x3 u33; 9 float3x4 u34; 10 float4x2 u42; 11 float4x3 u43; 12 float4x4 u44; 13 float2x2 au22[3]; 14 float2x3 au23[3]; 15 float2x4 au24[3]; 16 float3x2 au32[3]; 17 float3x3 au33[3]; 18 float3x4 au34[3]; 19 float4x2 au42[3]; 20 float4x3 au43[3]; 21 float4x4 au44[3]; 22}; 23 24layout(set=0, binding=2) buffer StorageBuffer { 25 float2x2 s22; 26 float2x3 s23; 27 float2x4 s24; 28 float3x2 s32; 29 float3x3 s33; 30 float3x4 s34; 31 float4x2 s42; 32 float4x3 s43; 33 float4x4 s44; 34 float2x2 as22[3]; 35 float2x3 as23[3]; 36 float2x4 as24[3]; 37 float3x2 as32[3]; 38 float3x3 as33[3]; 39 float3x4 as34[3]; 40 float4x2 as42[3]; 41 float4x3 as43[3]; 42 float4x4 as44[3]; 43}; 44 45half4 main() { 46 float value = u22[0][0] + 47 u23[0][0] + 48 u24[0][0] + 49 u32[0][0] + 50 u33[0][0] + 51 u34[0][0] + 52 u42[0][0] + 53 u43[0][0] + 54 au44[0][0][0] + 55 au22[0][0][0] + 56 au23[0][0][0] + 57 au24[0][0][0] + 58 au32[0][0][0] + 59 au33[0][0][0] + 60 au34[0][0][0] + 61 au42[0][0][0] + 62 au43[0][0][0] + 63 au44[0][0][0] + 64 s22[0][0] + 65 s23[0][0] + 66 s24[0][0] + 67 s32[0][0] + 68 s33[0][0] + 69 s34[0][0] + 70 s42[0][0] + 71 s43[0][0] + 72 as44[0][0][0] + 73 as22[0][0][0] + 74 as23[0][0][0] + 75 as24[0][0][0] + 76 as32[0][0][0] + 77 as33[0][0][0] + 78 as34[0][0][0] + 79 as42[0][0][0] + 80 as43[0][0][0] + 81 as44[0][0][0]; 82 return half4(value); 83} 84