1 hlsl.structbuffer.incdec.frag
3 gl_FragCoord origin is upper left
5 0:7 Function Definition: @main(u1; ( temp 4-component vector of float)
6 0:7 Function Parameters:
10 0:8 move second child to first child ( temp 4-component vector of uint)
11 0:8 'result' ( temp 4-component vector of uint)
17 0:10 direct index (layout( row_major std430) buffer 4-component vector of uint)
18 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
19 0:10 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
24 0:11 direct index (layout( row_major std430) buffer 4-component vector of uint)
25 0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
26 0:11 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
31 0:13 move second child to first child ( temp 4-component vector of uint)
32 0:13 direct index (layout( row_major std430) buffer 4-component vector of uint)
33 0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
34 0:13 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
45 0:15 move second child to first child ( temp uint)
46 0:15 'c1' ( temp uint)
47 0:15 AtomicAdd ( temp uint)
48 0:15 @count: direct index for structure ( temp uint)
49 0:15 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
55 0:16 move second child to first child ( temp uint)
56 0:16 'c2' ( temp uint)
58 0:16 AtomicAdd ( temp uint)
59 0:16 @count: direct index for structure ( temp uint)
60 0:16 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
64 0:16 4294967295 (const uint)
67 0:18 Branch: Return with expression
68 0:18 Construct vec4 ( temp 4-component vector of float)
69 0:18 Convert uint to float ( temp float)
70 0:18 direct index ( temp uint)
71 0:18 'result' ( temp 4-component vector of uint)
74 0:18 Convert uint to float ( temp float)
75 0:18 direct index ( temp uint)
76 0:18 'result' ( temp 4-component vector of uint)
79 0:18 Convert uint to float ( temp float)
80 0:18 'c1' ( temp uint)
81 0:18 Convert uint to float ( temp float)
82 0:18 'c2' ( temp uint)
83 0:7 Function Definition: main( ( temp void)
84 0:7 Function Parameters:
86 0:7 move second child to first child ( temp uint)
87 0:? 'pos' ( temp uint)
88 0:? 'pos' (layout( location=0) flat in uint)
89 0:7 move second child to first child ( temp 4-component vector of float)
90 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
91 0:7 Function Call: @main(u1; ( temp 4-component vector of float)
92 0:? 'pos' ( temp uint)
94 0:? 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
95 0:? 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
96 0:? 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
97 0:? 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
98 0:? 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
99 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
100 0:? 'pos' (layout( location=0) flat in uint)
103 Linked fragment stage:
107 gl_FragCoord origin is upper left
109 0:7 Function Definition: @main(u1; ( temp 4-component vector of float)
110 0:7 Function Parameters:
114 0:8 move second child to first child ( temp 4-component vector of uint)
115 0:8 'result' ( temp 4-component vector of uint)
121 0:10 direct index (layout( row_major std430) buffer 4-component vector of uint)
122 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
123 0:10 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
128 0:11 direct index (layout( row_major std430) buffer 4-component vector of uint)
129 0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
130 0:11 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
135 0:13 move second child to first child ( temp 4-component vector of uint)
136 0:13 direct index (layout( row_major std430) buffer 4-component vector of uint)
137 0:13 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint)
138 0:13 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
149 0:15 move second child to first child ( temp uint)
150 0:15 'c1' ( temp uint)
151 0:15 AtomicAdd ( temp uint)
152 0:15 @count: direct index for structure ( temp uint)
153 0:15 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
159 0:16 move second child to first child ( temp uint)
160 0:16 'c2' ( temp uint)
161 0:16 add ( temp uint)
162 0:16 AtomicAdd ( temp uint)
163 0:16 @count: direct index for structure ( temp uint)
164 0:16 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
168 0:16 4294967295 (const uint)
171 0:18 Branch: Return with expression
172 0:18 Construct vec4 ( temp 4-component vector of float)
173 0:18 Convert uint to float ( temp float)
174 0:18 direct index ( temp uint)
175 0:18 'result' ( temp 4-component vector of uint)
178 0:18 Convert uint to float ( temp float)
179 0:18 direct index ( temp uint)
180 0:18 'result' ( temp 4-component vector of uint)
183 0:18 Convert uint to float ( temp float)
184 0:18 'c1' ( temp uint)
185 0:18 Convert uint to float ( temp float)
186 0:18 'c2' ( temp uint)
187 0:7 Function Definition: main( ( temp void)
188 0:7 Function Parameters:
190 0:7 move second child to first child ( temp uint)
191 0:? 'pos' ( temp uint)
192 0:? 'pos' (layout( location=0) flat in uint)
193 0:7 move second child to first child ( temp 4-component vector of float)
194 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
195 0:7 Function Call: @main(u1; ( temp 4-component vector of float)
196 0:? 'pos' ( temp uint)
198 0:? 'sbuf_rw_i' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
199 0:? 'sbuf_rw_i@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
200 0:? 'sbuf_rw_d' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
201 0:? 'sbuf_rw_d@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count})
202 0:? 'sbuf_rw_nocounter' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data})
203 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
204 0:? 'pos' (layout( location=0) flat in uint)
206 // Module Version 10000
207 // Generated by (magic number): 8000b
208 // Id's are bound by 70
211 1: ExtInstImport "GLSL.std.450"
212 MemoryModel Logical GLSL450
213 EntryPoint Fragment 4 "main" 63 66
214 ExecutionMode 4 OriginUpperLeft
221 MemberName 20(sbuf_rw_i) 0 "@data"
224 Name 27 "sbuf_rw_nocounter"
226 Name 34 "sbuf_rw_i@count"
227 MemberName 34(sbuf_rw_i@count) 0 "@count"
228 Name 36 "sbuf_rw_i@count"
230 Name 42 "sbuf_rw_d@count"
233 Name 66 "@entryPointOutput"
235 Decorate 19 ArrayStride 16
236 MemberDecorate 20(sbuf_rw_i) 0 Offset 0
237 Decorate 20(sbuf_rw_i) BufferBlock
238 Decorate 22(sbuf_rw_i) DescriptorSet 0
239 Decorate 22(sbuf_rw_i) Binding 0
240 Decorate 26(sbuf_rw_d) DescriptorSet 0
241 Decorate 26(sbuf_rw_d) Binding 2
242 Decorate 27(sbuf_rw_nocounter) DescriptorSet 0
243 Decorate 27(sbuf_rw_nocounter) Binding 4
244 MemberDecorate 34(sbuf_rw_i@count) 0 Offset 0
245 Decorate 34(sbuf_rw_i@count) BufferBlock
246 Decorate 36(sbuf_rw_i@count) DescriptorSet 0
247 Decorate 36(sbuf_rw_i@count) Binding 1
248 Decorate 42(sbuf_rw_d@count) DescriptorSet 0
249 Decorate 42(sbuf_rw_d@count) Binding 3
250 Decorate 63(pos) Flat
251 Decorate 63(pos) Location 0
252 Decorate 66(@entryPointOutput) Location 0
256 7: TypePointer Function 6(int)
258 9: TypeVector 8(float) 4
259 10: TypeFunction 9(fvec4) 7(ptr)
260 14: TypeVector 6(int) 4
261 15: TypePointer Function 14(ivec4)
262 17: 6(int) Constant 0
263 18: 14(ivec4) ConstantComposite 17 17 17 17
264 19: TypeRuntimeArray 14(ivec4)
265 20(sbuf_rw_i): TypeStruct 19
266 21: TypePointer Uniform 20(sbuf_rw_i)
267 22(sbuf_rw_i): 21(ptr) Variable Uniform
269 24: 23(int) Constant 0
270 25: 23(int) Constant 7
271 26(sbuf_rw_d): 21(ptr) Variable Uniform
272 27(sbuf_rw_nocounter): 21(ptr) Variable Uniform
273 28: 23(int) Constant 5
274 29: 6(int) Constant 2
275 30: 14(ivec4) ConstantComposite 29 29 29 29
276 31: TypePointer Uniform 14(ivec4)
277 34(sbuf_rw_i@count): TypeStruct 6(int)
278 35: TypePointer Uniform 34(sbuf_rw_i@count)
279 36(sbuf_rw_i@count): 35(ptr) Variable Uniform
280 37: TypePointer Uniform 6(int)
281 39: 6(int) Constant 1
282 42(sbuf_rw_d@count): 35(ptr) Variable Uniform
283 44: 6(int) Constant 4294967295
284 46: 23(int) Constant 4294967295
285 62: TypePointer Input 6(int)
286 63(pos): 62(ptr) Variable Input
287 65: TypePointer Output 9(fvec4)
288 66(@entryPointOutput): 65(ptr) Variable Output
289 4(main): 2 Function None 3
291 61(pos): 7(ptr) Variable Function
292 67(param): 7(ptr) Variable Function
293 64: 6(int) Load 63(pos)
295 68: 6(int) Load 61(pos)
297 69: 9(fvec4) FunctionCall 12(@main(u1;) 67(param)
298 Store 66(@entryPointOutput) 69
301 12(@main(u1;): 9(fvec4) Function None 10
302 11(pos): 7(ptr) FunctionParameter
304 16(result): 15(ptr) Variable Function
305 33(c1): 7(ptr) Variable Function
306 41(c2): 7(ptr) Variable Function
308 32: 31(ptr) AccessChain 27(sbuf_rw_nocounter) 24 28
310 38: 37(ptr) AccessChain 36(sbuf_rw_i@count) 24
311 40: 6(int) AtomicIAdd 38 39 17 39
313 43: 37(ptr) AccessChain 42(sbuf_rw_d@count) 24
314 45: 6(int) AtomicIAdd 43 39 17 44
315 47: 6(int) IAdd 45 46
317 48: 7(ptr) AccessChain 16(result) 17
319 50: 8(float) ConvertUToF 49
320 51: 7(ptr) AccessChain 16(result) 39
322 53: 8(float) ConvertUToF 52
323 54: 6(int) Load 33(c1)
324 55: 8(float) ConvertUToF 54
325 56: 6(int) Load 41(c2)
326 57: 8(float) ConvertUToF 56
327 58: 9(fvec4) CompositeConstruct 50 53 55 57