1 hlsl.structbuffer.incdec.frag 2 Shader version: 500 3 gl_FragCoord origin is upper left 4 0:? Sequence 5 0:7 Function Definition: @main(u1; ( temp 4-component vector of float) 6 0:7 Function Parameters: 7 0:7 'pos' ( in uint) 8 0:? Sequence 9 0:8 Sequence 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) 12 0:8 Constant: 13 0:8 0 (const uint) 14 0:8 0 (const uint) 15 0:8 0 (const uint) 16 0:8 0 (const 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}) 20 0:10 Constant: 21 0:10 0 (const uint) 22 0:10 Constant: 23 0:10 7 (const int) 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}) 27 0:11 Constant: 28 0:11 0 (const uint) 29 0:11 Constant: 30 0:11 7 (const int) 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}) 35 0:13 Constant: 36 0:13 0 (const uint) 37 0:13 Constant: 38 0:13 5 (const int) 39 0:13 Constant: 40 0:13 2 (const uint) 41 0:13 2 (const uint) 42 0:13 2 (const uint) 43 0:13 2 (const uint) 44 0:15 Sequence 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}) 50 0:15 Constant: 51 0:15 0 (const int) 52 0:15 Constant: 53 0:15 1 (const uint) 54 0:16 Sequence 55 0:16 move second child to first child ( temp uint) 56 0:16 'c2' ( temp uint) 57 0:16 add ( 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}) 61 0:16 Constant: 62 0:16 0 (const int) 63 0:16 Constant: 64 0:16 4294967295 (const uint) 65 0:16 Constant: 66 0:16 -1 (const int) 67 0:18 Branch: Return with expression 68 0:? 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) 72 0:18 Constant: 73 0:18 0 (const int) 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) 77 0:18 Constant: 78 0:18 1 (const int) 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: 85 0:? Sequence 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) 93 0:? Linker Objects 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) 101 102 103 Linked fragment stage: 104 105 106 Shader version: 500 107 gl_FragCoord origin is upper left 108 0:? Sequence 109 0:7 Function Definition: @main(u1; ( temp 4-component vector of float) 110 0:7 Function Parameters: 111 0:7 'pos' ( in uint) 112 0:? Sequence 113 0:8 Sequence 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) 116 0:8 Constant: 117 0:8 0 (const uint) 118 0:8 0 (const uint) 119 0:8 0 (const uint) 120 0:8 0 (const 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}) 124 0:10 Constant: 125 0:10 0 (const uint) 126 0:10 Constant: 127 0:10 7 (const int) 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}) 131 0:11 Constant: 132 0:11 0 (const uint) 133 0:11 Constant: 134 0:11 7 (const int) 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}) 139 0:13 Constant: 140 0:13 0 (const uint) 141 0:13 Constant: 142 0:13 5 (const int) 143 0:13 Constant: 144 0:13 2 (const uint) 145 0:13 2 (const uint) 146 0:13 2 (const uint) 147 0:13 2 (const uint) 148 0:15 Sequence 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}) 154 0:15 Constant: 155 0:15 0 (const int) 156 0:15 Constant: 157 0:15 1 (const uint) 158 0:16 Sequence 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}) 165 0:16 Constant: 166 0:16 0 (const int) 167 0:16 Constant: 168 0:16 4294967295 (const uint) 169 0:16 Constant: 170 0:16 -1 (const int) 171 0:18 Branch: Return with expression 172 0:? 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) 176 0:18 Constant: 177 0:18 0 (const int) 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) 181 0:18 Constant: 182 0:18 1 (const int) 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: 189 0:? Sequence 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) 197 0:? Linker Objects 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) 205 206 // Module Version 10000 207 // Generated by (magic number): 80007 208 // Id's are bound by 70 209 210 Capability Shader 211 1: ExtInstImport "GLSL.std.450" 212 MemoryModel Logical GLSL450 213 EntryPoint Fragment 4 "main" 63 66 214 ExecutionMode 4 OriginUpperLeft 215 Source HLSL 500 216 Name 4 "main" 217 Name 12 "@main(u1;" 218 Name 11 "pos" 219 Name 16 "result" 220 Name 20 "sbuf_rw_i" 221 MemberName 20(sbuf_rw_i) 0 "@data" 222 Name 22 "sbuf_rw_i" 223 Name 26 "sbuf_rw_d" 224 Name 27 "sbuf_rw_nocounter" 225 Name 33 "c1" 226 Name 34 "sbuf_rw_i@count" 227 MemberName 34(sbuf_rw_i@count) 0 "@count" 228 Name 36 "sbuf_rw_i@count" 229 Name 41 "c2" 230 Name 42 "sbuf_rw_d@count" 231 Name 61 "pos" 232 Name 63 "pos" 233 Name 66 "@entryPointOutput" 234 Name 67 "param" 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 0 242 Decorate 27(sbuf_rw_nocounter) DescriptorSet 0 243 Decorate 27(sbuf_rw_nocounter) Binding 0 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 0 248 Decorate 42(sbuf_rw_d@count) DescriptorSet 0 249 Decorate 42(sbuf_rw_d@count) Binding 0 250 Decorate 63(pos) Flat 251 Decorate 63(pos) Location 0 252 Decorate 66(@entryPointOutput) Location 0 253 2: TypeVoid 254 3: TypeFunction 2 255 6: TypeInt 32 0 256 7: TypePointer Function 6(int) 257 8: TypeFloat 32 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 268 23: TypeInt 32 1 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 290 5: Label 291 61(pos): 7(ptr) Variable Function 292 67(param): 7(ptr) Variable Function 293 64: 6(int) Load 63(pos) 294 Store 61(pos) 64 295 68: 6(int) Load 61(pos) 296 Store 67(param) 68 297 69: 9(fvec4) FunctionCall 12(@main(u1;) 67(param) 298 Store 66(@entryPointOutput) 69 299 Return 300 FunctionEnd 301 12(@main(u1;): 9(fvec4) Function None 10 302 11(pos): 7(ptr) FunctionParameter 303 13: Label 304 16(result): 15(ptr) Variable Function 305 33(c1): 7(ptr) Variable Function 306 41(c2): 7(ptr) Variable Function 307 Store 16(result) 18 308 32: 31(ptr) AccessChain 27(sbuf_rw_nocounter) 24 28 309 Store 32 30 310 38: 37(ptr) AccessChain 36(sbuf_rw_i@count) 24 311 40: 6(int) AtomicIAdd 38 39 17 39 312 Store 33(c1) 40 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 316 Store 41(c2) 47 317 48: 7(ptr) AccessChain 16(result) 17 318 49: 6(int) Load 48 319 50: 8(float) ConvertUToF 49 320 51: 7(ptr) AccessChain 16(result) 39 321 52: 6(int) Load 51 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 328 ReturnValue 58 329 FunctionEnd 330