xref: /aosp_15_r20/external/skia/resources/sksl/wgsl/UniformMatrices.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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