1617a3babSopenharmony_ciSamplerState       g_sSamp;
2617a3babSopenharmony_ci
3617a3babSopenharmony_ciRWTexture1D <float> g_tTex1df1;
4617a3babSopenharmony_ciRWTexture1D <int>   g_tTex1di1;
5617a3babSopenharmony_ciRWTexture1D <uint>  g_tTex1du1;
6617a3babSopenharmony_ci
7617a3babSopenharmony_ciRWTexture2D <float> g_tTex2df1;
8617a3babSopenharmony_ciRWTexture2D <int>   g_tTex2di1;
9617a3babSopenharmony_ciRWTexture2D <uint>  g_tTex2du1;
10617a3babSopenharmony_ci
11617a3babSopenharmony_ciRWTexture3D <float> g_tTex3df1;
12617a3babSopenharmony_ciRWTexture3D <int>   g_tTex3di1;
13617a3babSopenharmony_ciRWTexture3D <uint>  g_tTex3du1;
14617a3babSopenharmony_ci
15617a3babSopenharmony_ciRWTexture1DArray <float> g_tTex1df1a;
16617a3babSopenharmony_ciRWTexture1DArray <int>   g_tTex1di1a;
17617a3babSopenharmony_ciRWTexture1DArray <uint>  g_tTex1du1a;
18617a3babSopenharmony_ci
19617a3babSopenharmony_ciRWTexture2DArray <float> g_tTex2df1a;
20617a3babSopenharmony_ciRWTexture2DArray <int>   g_tTex2di1a;
21617a3babSopenharmony_ciRWTexture2DArray <uint>  g_tTex2du1a;
22617a3babSopenharmony_ci
23617a3babSopenharmony_ciRWBuffer <float> g_tBuffF;
24617a3babSopenharmony_ciRWBuffer <int>   g_tBuffI;
25617a3babSopenharmony_ciRWBuffer <uint>  g_tBuffU;
26617a3babSopenharmony_ci
27617a3babSopenharmony_cistruct PS_OUTPUT
28617a3babSopenharmony_ci{
29617a3babSopenharmony_ci    float4 Color : SV_Target0;
30617a3babSopenharmony_ci};
31617a3babSopenharmony_ci
32617a3babSopenharmony_ciuniform uint  u1;
33617a3babSopenharmony_ciuniform uint2 u2;
34617a3babSopenharmony_ciuniform uint3 u3;
35617a3babSopenharmony_ciuniform uint  u1b;
36617a3babSopenharmony_ciuniform uint  u1c;
37617a3babSopenharmony_ci
38617a3babSopenharmony_ciuniform int   i1;
39617a3babSopenharmony_ciuniform int2  i2;
40617a3babSopenharmony_ciuniform int3  i3;
41617a3babSopenharmony_ciuniform int   i1b;
42617a3babSopenharmony_ciuniform int   i1c;
43617a3babSopenharmony_ci
44617a3babSopenharmony_ciPS_OUTPUT main()
45617a3babSopenharmony_ci{
46617a3babSopenharmony_ci    uint out_u1;
47617a3babSopenharmony_ci    int out_i1;
48617a3babSopenharmony_ci
49617a3babSopenharmony_ci    // 1D int
50617a3babSopenharmony_ci    InterlockedAdd(g_tTex1di1[i1], i1b);
51617a3babSopenharmony_ci    InterlockedAdd(g_tTex1di1[i1], i1, out_i1);
52617a3babSopenharmony_ci    InterlockedAnd(g_tTex1di1[i1], i1b);
53617a3babSopenharmony_ci    InterlockedAnd(g_tTex1di1[i1], i1, out_i1);
54617a3babSopenharmony_ci    InterlockedCompareExchange(g_tTex1di1[i1], i1b, i1c, out_i1);
55617a3babSopenharmony_ci    InterlockedExchange(g_tTex1di1[i1], i1, out_i1);
56617a3babSopenharmony_ci    InterlockedMax(g_tTex1di1[i1], i1b);
57617a3babSopenharmony_ci    InterlockedMax(g_tTex1di1[i1], i1, out_i1);
58617a3babSopenharmony_ci    InterlockedMin(g_tTex1di1[i1], i1b);
59617a3babSopenharmony_ci    InterlockedMin(g_tTex1di1[i1], i1, out_i1);
60617a3babSopenharmony_ci    InterlockedOr(g_tTex1di1[i1], i1b);
61617a3babSopenharmony_ci    InterlockedOr(g_tTex1di1[i1], i1, out_i1);
62617a3babSopenharmony_ci    InterlockedXor(g_tTex1di1[i1], i1b);
63617a3babSopenharmony_ci    InterlockedXor(g_tTex1di1[i1], i1, out_i1);
64617a3babSopenharmony_ci
65617a3babSopenharmony_ci    // 1D uint
66617a3babSopenharmony_ci    InterlockedAdd(g_tTex1du1[u1], u1);
67617a3babSopenharmony_ci    InterlockedAdd(g_tTex1du1[u1], u1, out_u1);
68617a3babSopenharmony_ci    InterlockedAnd(g_tTex1du1[u1], u1);
69617a3babSopenharmony_ci    InterlockedAnd(g_tTex1du1[u1], u1, out_u1);
70617a3babSopenharmony_ci    InterlockedCompareExchange(g_tTex1du1[u1], u1b, u1c, out_u1);
71617a3babSopenharmony_ci    InterlockedExchange(g_tTex1du1[u1], u1, out_u1);
72617a3babSopenharmony_ci    InterlockedMax(g_tTex1du1[u1], u1);
73617a3babSopenharmony_ci    InterlockedMax(g_tTex1du1[u1], u1, out_u1);
74617a3babSopenharmony_ci    InterlockedMin(g_tTex1du1[u1], u1);
75617a3babSopenharmony_ci    InterlockedMin(g_tTex1du1[u1], u1, out_u1);
76617a3babSopenharmony_ci    InterlockedOr(g_tTex1du1[u1], u1);
77617a3babSopenharmony_ci    InterlockedOr(g_tTex1du1[u1], u1, out_u1);
78617a3babSopenharmony_ci    InterlockedXor(g_tTex1du1[u1], u1);
79617a3babSopenharmony_ci    InterlockedXor(g_tTex1du1[u1], u1, out_u1);
80617a3babSopenharmony_ci
81617a3babSopenharmony_ci    // 2D int
82617a3babSopenharmony_ci    InterlockedAdd(g_tTex2di1[i2], i1b);
83617a3babSopenharmony_ci    InterlockedAdd(g_tTex2di1[i2], i1, out_i1);
84617a3babSopenharmony_ci    InterlockedAnd(g_tTex2di1[i2], i1b);
85617a3babSopenharmony_ci    InterlockedAnd(g_tTex2di1[i2], i1, out_i1);
86617a3babSopenharmony_ci    InterlockedCompareExchange(g_tTex2di1[i2], i1b, i1c, out_i1);
87617a3babSopenharmony_ci    InterlockedExchange(g_tTex2di1[i2], i1, out_i1);
88617a3babSopenharmony_ci    InterlockedMax(g_tTex2di1[i2], i1b);
89617a3babSopenharmony_ci    InterlockedMax(g_tTex2di1[i2], i1, out_i1);
90617a3babSopenharmony_ci    InterlockedMin(g_tTex2di1[i2], i1b);
91617a3babSopenharmony_ci    InterlockedMin(g_tTex2di1[i2], i1, out_i1);
92617a3babSopenharmony_ci    InterlockedOr(g_tTex2di1[i2], i1b);
93617a3babSopenharmony_ci    InterlockedOr(g_tTex2di1[i2], i1, out_i1);
94617a3babSopenharmony_ci    InterlockedXor(g_tTex2di1[i2], i1b);
95617a3babSopenharmony_ci    InterlockedXor(g_tTex2di1[i2], i1, out_i1);
96617a3babSopenharmony_ci
97617a3babSopenharmony_ci    // 2D uint
98617a3babSopenharmony_ci    InterlockedAdd(g_tTex2du1[u2], u1);
99617a3babSopenharmony_ci    InterlockedAdd(g_tTex2du1[u2], u1, out_u1);
100617a3babSopenharmony_ci    InterlockedAnd(g_tTex2du1[u2], u1);
101617a3babSopenharmony_ci    InterlockedAnd(g_tTex2du1[u2], u1, out_u1);
102617a3babSopenharmony_ci    InterlockedCompareExchange(g_tTex2du1[u2], u1b, u1c, out_u1);
103617a3babSopenharmony_ci    InterlockedExchange(g_tTex2du1[u2], u1, out_u1);
104617a3babSopenharmony_ci    InterlockedMax(g_tTex2du1[u2], u1);
105617a3babSopenharmony_ci    InterlockedMax(g_tTex2du1[u2], u1, out_u1);
106617a3babSopenharmony_ci    InterlockedMin(g_tTex2du1[u2], u1);
107617a3babSopenharmony_ci    InterlockedMin(g_tTex2du1[u2], u1, out_u1);
108617a3babSopenharmony_ci    InterlockedOr(g_tTex2du1[u2], u1);
109617a3babSopenharmony_ci    InterlockedOr(g_tTex2du1[u2], u1, out_u1);
110617a3babSopenharmony_ci    InterlockedXor(g_tTex2du1[u2], u1);
111617a3babSopenharmony_ci    InterlockedXor(g_tTex2du1[u2], u1, out_u1);
112617a3babSopenharmony_ci
113617a3babSopenharmony_ci    // 3D int
114617a3babSopenharmony_ci    InterlockedAdd(g_tTex3di1[i3], i1b);
115617a3babSopenharmony_ci    InterlockedAdd(g_tTex3di1[i3], i1, out_i1);
116617a3babSopenharmony_ci    InterlockedAnd(g_tTex3di1[i3], i1b);
117617a3babSopenharmony_ci    InterlockedAnd(g_tTex3di1[i3], i1, out_i1);
118617a3babSopenharmony_ci    InterlockedCompareExchange(g_tTex3di1[i3], i1b, i1c, out_i1);
119617a3babSopenharmony_ci    InterlockedExchange(g_tTex3di1[i3], i1, out_i1);
120617a3babSopenharmony_ci    InterlockedMax(g_tTex3di1[i3], i1b);
121617a3babSopenharmony_ci    InterlockedMax(g_tTex3di1[i3], i1, out_i1);
122617a3babSopenharmony_ci    InterlockedMin(g_tTex3di1[i3], i1b);
123617a3babSopenharmony_ci    InterlockedMin(g_tTex3di1[i3], i1, out_i1);
124617a3babSopenharmony_ci    InterlockedOr(g_tTex3di1[i3], i1b);
125617a3babSopenharmony_ci    InterlockedOr(g_tTex3di1[i3], i1, out_i1);
126617a3babSopenharmony_ci    InterlockedXor(g_tTex3di1[i3], i1b);
127617a3babSopenharmony_ci    InterlockedXor(g_tTex3di1[i3], i1, out_i1);
128617a3babSopenharmony_ci
129617a3babSopenharmony_ci    // 3D uint
130617a3babSopenharmony_ci    InterlockedAdd(g_tTex3du1[u3], u1);
131617a3babSopenharmony_ci    InterlockedAdd(g_tTex3du1[u3], u1, out_u1);
132617a3babSopenharmony_ci    InterlockedAnd(g_tTex3du1[u3], u1);
133617a3babSopenharmony_ci    InterlockedAnd(g_tTex3du1[u3], u1, out_u1);
134617a3babSopenharmony_ci    InterlockedCompareExchange(g_tTex3du1[u3], u1b, u1c, out_u1);
135617a3babSopenharmony_ci    InterlockedExchange(g_tTex3du1[u3], u1, out_u1);
136617a3babSopenharmony_ci    InterlockedMax(g_tTex3du1[u3], u1);
137617a3babSopenharmony_ci    InterlockedMax(g_tTex3du1[u3], u1, out_u1);
138617a3babSopenharmony_ci    InterlockedMin(g_tTex3du1[u3], u1);
139617a3babSopenharmony_ci    InterlockedMin(g_tTex3du1[u3], u1, out_u1);
140617a3babSopenharmony_ci    InterlockedOr(g_tTex3du1[u3], u1);
141617a3babSopenharmony_ci    InterlockedOr(g_tTex3du1[u3], u1, out_u1);
142617a3babSopenharmony_ci    InterlockedXor(g_tTex3du1[u3], u1);
143617a3babSopenharmony_ci    InterlockedXor(g_tTex3du1[u3], u1, out_u1);
144617a3babSopenharmony_ci
145617a3babSopenharmony_ci    // 1D array int
146617a3babSopenharmony_ci    InterlockedAdd(g_tTex1di1a[i2], i1b);
147617a3babSopenharmony_ci    InterlockedAdd(g_tTex1di1a[i2], i1, out_i1);
148617a3babSopenharmony_ci    InterlockedAnd(g_tTex1di1a[i2], i1b);
149617a3babSopenharmony_ci    InterlockedAnd(g_tTex1di1a[i2], i1, out_i1);
150617a3babSopenharmony_ci    InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1);
151617a3babSopenharmony_ci    InterlockedExchange(g_tTex1di1a[i2], i1, out_i1);
152617a3babSopenharmony_ci    InterlockedMax(g_tTex1di1a[i2], i1b);
153617a3babSopenharmony_ci    InterlockedMax(g_tTex1di1a[i2], i1, out_i1);
154617a3babSopenharmony_ci    InterlockedMin(g_tTex1di1a[i2], i1b);
155617a3babSopenharmony_ci    InterlockedMin(g_tTex1di1a[i2], i1, out_i1);
156617a3babSopenharmony_ci    InterlockedOr(g_tTex1di1a[i2], i1b);
157617a3babSopenharmony_ci    InterlockedOr(g_tTex1di1a[i2], i1, out_i1);
158617a3babSopenharmony_ci    InterlockedXor(g_tTex1di1a[i2], i1b);
159617a3babSopenharmony_ci    InterlockedXor(g_tTex1di1a[i2], i1, out_i1);
160617a3babSopenharmony_ci
161617a3babSopenharmony_ci    // 1D array uint
162617a3babSopenharmony_ci    InterlockedAdd(g_tTex1du1a[u2], u1);
163617a3babSopenharmony_ci    InterlockedAdd(g_tTex1du1a[u2], u1, out_u1);
164617a3babSopenharmony_ci    InterlockedAnd(g_tTex1du1a[u2], u1);
165617a3babSopenharmony_ci    InterlockedAnd(g_tTex1du1a[u2], u1, out_u1);
166617a3babSopenharmony_ci    InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1);
167617a3babSopenharmony_ci    InterlockedExchange(g_tTex1du1a[u2], u1, out_u1);
168617a3babSopenharmony_ci    InterlockedMax(g_tTex1du1a[u2], u1);
169617a3babSopenharmony_ci    InterlockedMax(g_tTex1du1a[u2], u1, out_u1);
170617a3babSopenharmony_ci    InterlockedMin(g_tTex1du1a[u2], u1);
171617a3babSopenharmony_ci    InterlockedMin(g_tTex1du1a[u2], u1, out_u1);
172617a3babSopenharmony_ci    InterlockedOr(g_tTex1du1a[u2], u1);
173617a3babSopenharmony_ci    InterlockedOr(g_tTex1du1a[u2], u1, out_u1);
174617a3babSopenharmony_ci    InterlockedXor(g_tTex1du1a[u2], u1);
175617a3babSopenharmony_ci    InterlockedXor(g_tTex1du1a[u2], u1, out_u1);
176617a3babSopenharmony_ci
177617a3babSopenharmony_ci    // 2D array int
178617a3babSopenharmony_ci    InterlockedAdd(g_tTex1di1a[i2], i1b);
179617a3babSopenharmony_ci    InterlockedAdd(g_tTex1di1a[i2], i1, out_i1);
180617a3babSopenharmony_ci    InterlockedAnd(g_tTex1di1a[i2], i1b);
181617a3babSopenharmony_ci    InterlockedAnd(g_tTex1di1a[i2], i1, out_i1);
182617a3babSopenharmony_ci    InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1);
183617a3babSopenharmony_ci    InterlockedExchange(g_tTex1di1a[i2], i1, out_i1);
184617a3babSopenharmony_ci    InterlockedMax(g_tTex1di1a[i2], i1b);
185617a3babSopenharmony_ci    InterlockedMax(g_tTex1di1a[i2], i1, out_i1);
186617a3babSopenharmony_ci    InterlockedMin(g_tTex1di1a[i2], i1b);
187617a3babSopenharmony_ci    InterlockedMin(g_tTex1di1a[i2], i1, out_i1);
188617a3babSopenharmony_ci    InterlockedOr(g_tTex1di1a[i2], i1b);
189617a3babSopenharmony_ci    InterlockedOr(g_tTex1di1a[i2], i1, out_i1);
190617a3babSopenharmony_ci    InterlockedXor(g_tTex1di1a[i2], i1b);
191617a3babSopenharmony_ci    InterlockedXor(g_tTex1di1a[i2], i1, out_i1);
192617a3babSopenharmony_ci
193617a3babSopenharmony_ci    // 2D array uint
194617a3babSopenharmony_ci    InterlockedAdd(g_tTex1du1a[u2], u1);
195617a3babSopenharmony_ci    InterlockedAdd(g_tTex1du1a[u2], u1, out_u1);
196617a3babSopenharmony_ci    InterlockedAnd(g_tTex1du1a[u2], u1);
197617a3babSopenharmony_ci    InterlockedAnd(g_tTex1du1a[u2], u1, out_u1);
198617a3babSopenharmony_ci    InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1);
199617a3babSopenharmony_ci    InterlockedExchange(g_tTex1du1a[u2], u1, out_u1);
200617a3babSopenharmony_ci    InterlockedMax(g_tTex1du1a[u2], u1);
201617a3babSopenharmony_ci    InterlockedMax(g_tTex1du1a[u2], u1, out_u1);
202617a3babSopenharmony_ci    InterlockedMin(g_tTex1du1a[u2], u1);
203617a3babSopenharmony_ci    InterlockedMin(g_tTex1du1a[u2], u1, out_u1);
204617a3babSopenharmony_ci    InterlockedOr(g_tTex1du1a[u2], u1);
205617a3babSopenharmony_ci    InterlockedOr(g_tTex1du1a[u2], u1, out_u1);
206617a3babSopenharmony_ci    InterlockedXor(g_tTex1du1a[u2], u1);
207617a3babSopenharmony_ci    InterlockedXor(g_tTex1du1a[u2], u1, out_u1);
208617a3babSopenharmony_ci
209617a3babSopenharmony_ci    // buffer int
210617a3babSopenharmony_ci    InterlockedAdd(g_tBuffI[i1], i1b);
211617a3babSopenharmony_ci    InterlockedAdd(g_tBuffI[i1], i1, out_i1);
212617a3babSopenharmony_ci    InterlockedAnd(g_tBuffI[i1], i1b);
213617a3babSopenharmony_ci    InterlockedAnd(g_tBuffI[i1], i1, out_i1);
214617a3babSopenharmony_ci    InterlockedCompareExchange(g_tBuffI[i1], i1b, i1c, out_i1);
215617a3babSopenharmony_ci    InterlockedExchange(g_tBuffI[i1], i1, out_i1);
216617a3babSopenharmony_ci    InterlockedMax(g_tBuffI[i1], i1b);
217617a3babSopenharmony_ci    InterlockedMax(g_tBuffI[i1], i1, out_i1);
218617a3babSopenharmony_ci    InterlockedMin(g_tBuffI[i1], i1b);
219617a3babSopenharmony_ci    InterlockedMin(g_tBuffI[i1], i1, out_i1);
220617a3babSopenharmony_ci    InterlockedOr(g_tBuffI[i1], i1b);
221617a3babSopenharmony_ci    InterlockedOr(g_tBuffI[i1], i1, out_i1);
222617a3babSopenharmony_ci    InterlockedXor(g_tBuffI[i1], i1b);
223617a3babSopenharmony_ci    InterlockedXor(g_tBuffI[i1], i1, out_i1);
224617a3babSopenharmony_ci
225617a3babSopenharmony_ci    // buffer uint
226617a3babSopenharmony_ci    InterlockedAdd(g_tBuffU[u1], u1);
227617a3babSopenharmony_ci    InterlockedAdd(g_tBuffU[u1], u1, out_u1);
228617a3babSopenharmony_ci    InterlockedAnd(g_tBuffU[u1], u1);
229617a3babSopenharmony_ci    InterlockedAnd(g_tBuffU[u1], u1, out_u1);
230617a3babSopenharmony_ci    InterlockedCompareExchange(g_tBuffU[u1], u1b, u1c, out_u1);
231617a3babSopenharmony_ci    InterlockedExchange(g_tBuffU[u1], u1, out_u1);
232617a3babSopenharmony_ci    InterlockedMax(g_tBuffU[u1], u1);
233617a3babSopenharmony_ci    InterlockedMax(g_tBuffU[u1], u1, out_u1);
234617a3babSopenharmony_ci    InterlockedMin(g_tBuffU[u1], u1);
235617a3babSopenharmony_ci    InterlockedMin(g_tBuffU[u1], u1, out_u1);
236617a3babSopenharmony_ci    InterlockedOr(g_tBuffU[u1], u1);
237617a3babSopenharmony_ci    InterlockedOr(g_tBuffU[u1], u1, out_u1);
238617a3babSopenharmony_ci    InterlockedXor(g_tBuffU[u1], u1);
239617a3babSopenharmony_ci    InterlockedXor(g_tBuffU[u1], u1, out_u1);
240617a3babSopenharmony_ci
241617a3babSopenharmony_ci    PS_OUTPUT psout;
242617a3babSopenharmony_ci    psout.Color = 1.0;
243617a3babSopenharmony_ci    return psout;
244617a3babSopenharmony_ci}
245