• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#include <metal_stdlib>
2#include <simd/simd.h>
3
4using namespace metal;
5
6struct S0
7{
8    float2 a[1];
9    float b;
10    char _m0_final_padding[4];
11};
12
13struct S1
14{
15    packed_float3 a;
16    float b;
17};
18
19struct S2
20{
21    float3 a[1];
22    float b;
23    char _m0_final_padding[12];
24};
25
26struct S3
27{
28    float2 a;
29    float b;
30};
31
32struct S4
33{
34    float2 c;
35};
36
37struct Content
38{
39    S0 m0s[1];
40    S1 m1s[1];
41    S2 m2s[1];
42    S0 m0;
43    S1 m1;
44    S2 m2;
45    S3 m3;
46    float m4;
47    S4 m3s[8];
48    char _m0_final_padding[8];
49};
50
51struct SSBO1
52{
53    Content content;
54    Content content1[2];
55    Content content2;
56    float2x2 m0;
57    float2x2 m1;
58    float2x3 m2[4];
59    float3x2 m3;
60    float2x2 m4;
61    float2x2 m5[9];
62    float3x2 m6[4][2];
63    float2x3 m7;
64    float array[1];
65};
66
67struct S0_1
68{
69    float2 a[1];
70    char _m1_pad[8];
71    float b;
72    char _m0_final_padding[12];
73};
74
75struct S1_1
76{
77    packed_float3 a;
78    float b;
79};
80
81struct S2_1
82{
83    float3 a[1];
84    float b;
85    char _m0_final_padding[12];
86};
87
88struct S3_1
89{
90    float2 a;
91    float b;
92};
93
94struct S4_1
95{
96    float2 c;
97    char _m0_final_padding[8];
98};
99
100struct Content_1
101{
102    S0_1 m0s[1];
103    S1_1 m1s[1];
104    S2_1 m2s[1];
105    S0_1 m0;
106    S1_1 m1;
107    S2_1 m2;
108    S3_1 m3;
109    float m4;
110    char _m8_pad[8];
111    S4_1 m3s[8];
112};
113
114struct SSBO0
115{
116    Content_1 content;
117    Content_1 content1[2];
118    Content_1 content2;
119    float4 array[1];
120};
121
122constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u);
123
124kernel void main0(device SSBO1& ssbo_430 [[buffer(0)]], device SSBO0& ssbo_140 [[buffer(1)]])
125{
126    Content_1 _60 = ssbo_140.content;
127    ssbo_430.content.m0s[0].a[0] = _60.m0s[0].a[0];
128    ssbo_430.content.m0s[0].b = _60.m0s[0].b;
129    ssbo_430.content.m1s[0].a = float3(_60.m1s[0].a);
130    ssbo_430.content.m1s[0].b = _60.m1s[0].b;
131    ssbo_430.content.m2s[0].a[0] = _60.m2s[0].a[0];
132    ssbo_430.content.m2s[0].b = _60.m2s[0].b;
133    ssbo_430.content.m0.a[0] = _60.m0.a[0];
134    ssbo_430.content.m0.b = _60.m0.b;
135    ssbo_430.content.m1.a = float3(_60.m1.a);
136    ssbo_430.content.m1.b = _60.m1.b;
137    ssbo_430.content.m2.a[0] = _60.m2.a[0];
138    ssbo_430.content.m2.b = _60.m2.b;
139    ssbo_430.content.m3.a = _60.m3.a;
140    ssbo_430.content.m3.b = _60.m3.b;
141    ssbo_430.content.m4 = _60.m4;
142    ssbo_430.content.m3s[0].c = _60.m3s[0].c;
143    ssbo_430.content.m3s[1].c = _60.m3s[1].c;
144    ssbo_430.content.m3s[2].c = _60.m3s[2].c;
145    ssbo_430.content.m3s[3].c = _60.m3s[3].c;
146    ssbo_430.content.m3s[4].c = _60.m3s[4].c;
147    ssbo_430.content.m3s[5].c = _60.m3s[5].c;
148    ssbo_430.content.m3s[6].c = _60.m3s[6].c;
149    ssbo_430.content.m3s[7].c = _60.m3s[7].c;
150    ssbo_430.content.m1.a = ssbo_430.content.m3.a * ssbo_430.m6[1][1];
151}
152
153