1 hlsl.structbuffer.floatidx.comp 2 Shader version: 500 3 local_size = (1, 1, 1) 4 0:? Sequence 5 0:13 Function Definition: @main(vu3; ( temp void) 6 0:13 Function Parameters: 7 0:13 'nThreadId' ( in 3-component vector of uint) 8 0:? Sequence 9 0:14 Sequence 10 0:14 move second child to first child ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) 11 0:14 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) 12 0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) 13 0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) 14 0:14 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data}) 15 0:14 Constant: 16 0:14 0 (const uint) 17 0:14 add ( temp uint) 18 0:14 AtomicAdd ( temp uint) 19 0:14 @count: direct index for structure ( temp uint) 20 0:14 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 21 0:14 Constant: 22 0:14 0 (const int) 23 0:14 Constant: 24 0:14 4294967295 (const uint) 25 0:14 Constant: 26 0:14 -1 (const int) 27 0:15 Sequence 28 0:15 move second child to first child ( temp 2-component vector of float) 29 0:15 'coord' ( temp 2-component vector of float) 30 0:15 Convert uint to float ( temp 2-component vector of float) 31 0:15 vector swizzle ( temp 2-component vector of uint) 32 0:15 threadId: direct index for structure ( temp 2-component vector of uint) 33 0:15 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) 34 0:15 Constant: 35 0:15 1 (const int) 36 0:15 Sequence 37 0:15 Constant: 38 0:15 0 (const int) 39 0:15 Constant: 40 0:15 1 (const int) 41 0:16 Sequence 42 0:16 move second child to first child ( temp 4-component vector of float) 43 0:16 'storeTemp' ( temp 4-component vector of float) 44 0:16 color: direct index for structure ( temp 4-component vector of float) 45 0:16 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) 46 0:16 Constant: 47 0:16 0 (const int) 48 0:16 imageStore ( temp void) 49 0:16 'outtx' (layout( rgba32f) uniform image2D) 50 0:16 Convert float to uint ( temp 2-component vector of uint) 51 0:16 'coord' ( temp 2-component vector of float) 52 0:16 'storeTemp' ( temp 4-component vector of float) 53 0:16 'storeTemp' ( temp 4-component vector of float) 54 0:18 move second child to first child ( temp 4-component vector of float) 55 0:18 indirect index (layout( row_major std430) buffer 4-component vector of float) 56 0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) 57 0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 58 0:18 Constant: 59 0:18 0 (const uint) 60 0:18 Convert float to uint ( temp uint) 61 0:18 direct index ( temp float) 62 0:18 'coord' ( temp 2-component vector of float) 63 0:18 Constant: 64 0:18 0 (const int) 65 0:18 indirect index (layout( row_major std430) buffer 4-component vector of float) 66 0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) 67 0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 68 0:18 Constant: 69 0:18 0 (const uint) 70 0:18 Convert float to uint ( temp uint) 71 0:18 direct index ( temp float) 72 0:18 'coord' ( temp 2-component vector of float) 73 0:18 Constant: 74 0:18 1 (const int) 75 0:13 Function Definition: main( ( temp void) 76 0:13 Function Parameters: 77 0:? Sequence 78 0:13 move second child to first child ( temp 3-component vector of uint) 79 0:? 'nThreadId' ( temp 3-component vector of uint) 80 0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID) 81 0:13 Function Call: @main(vu3; ( temp void) 82 0:? 'nThreadId' ( temp 3-component vector of uint) 83 0:? Linker Objects 84 0:? 'outtx' (layout( rgba32f) uniform image2D) 85 0:? 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data}) 86 0:? 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 87 0:? 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 88 0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID) 89 90 91 Linked compute stage: 92 93 94 Shader version: 500 95 local_size = (1, 1, 1) 96 0:? Sequence 97 0:13 Function Definition: @main(vu3; ( temp void) 98 0:13 Function Parameters: 99 0:13 'nThreadId' ( in 3-component vector of uint) 100 0:? Sequence 101 0:14 Sequence 102 0:14 move second child to first child ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) 103 0:14 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) 104 0:14 indirect index (layout( row_major std430) buffer structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) 105 0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) 106 0:14 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data}) 107 0:14 Constant: 108 0:14 0 (const uint) 109 0:14 add ( temp uint) 110 0:14 AtomicAdd ( temp uint) 111 0:14 @count: direct index for structure ( temp uint) 112 0:14 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 113 0:14 Constant: 114 0:14 0 (const int) 115 0:14 Constant: 116 0:14 4294967295 (const uint) 117 0:14 Constant: 118 0:14 -1 (const int) 119 0:15 Sequence 120 0:15 move second child to first child ( temp 2-component vector of float) 121 0:15 'coord' ( temp 2-component vector of float) 122 0:15 Convert uint to float ( temp 2-component vector of float) 123 0:15 vector swizzle ( temp 2-component vector of uint) 124 0:15 threadId: direct index for structure ( temp 2-component vector of uint) 125 0:15 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) 126 0:15 Constant: 127 0:15 1 (const int) 128 0:15 Sequence 129 0:15 Constant: 130 0:15 0 (const int) 131 0:15 Constant: 132 0:15 1 (const int) 133 0:16 Sequence 134 0:16 move second child to first child ( temp 4-component vector of float) 135 0:16 'storeTemp' ( temp 4-component vector of float) 136 0:16 color: direct index for structure ( temp 4-component vector of float) 137 0:16 'data' ( temp structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId}) 138 0:16 Constant: 139 0:16 0 (const int) 140 0:16 imageStore ( temp void) 141 0:16 'outtx' (layout( rgba32f) uniform image2D) 142 0:16 Convert float to uint ( temp 2-component vector of uint) 143 0:16 'coord' ( temp 2-component vector of float) 144 0:16 'storeTemp' ( temp 4-component vector of float) 145 0:16 'storeTemp' ( temp 4-component vector of float) 146 0:18 move second child to first child ( temp 4-component vector of float) 147 0:18 indirect index (layout( row_major std430) buffer 4-component vector of float) 148 0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) 149 0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 150 0:18 Constant: 151 0:18 0 (const uint) 152 0:18 Convert float to uint ( temp uint) 153 0:18 direct index ( temp float) 154 0:18 'coord' ( temp 2-component vector of float) 155 0:18 Constant: 156 0:18 0 (const int) 157 0:18 indirect index (layout( row_major std430) buffer 4-component vector of float) 158 0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of float) 159 0:18 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 160 0:18 Constant: 161 0:18 0 (const uint) 162 0:18 Convert float to uint ( temp uint) 163 0:18 direct index ( temp float) 164 0:18 'coord' ( temp 2-component vector of float) 165 0:18 Constant: 166 0:18 1 (const int) 167 0:13 Function Definition: main( ( temp void) 168 0:13 Function Parameters: 169 0:? Sequence 170 0:13 move second child to first child ( temp 3-component vector of uint) 171 0:? 'nThreadId' ( temp 3-component vector of uint) 172 0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID) 173 0:13 Function Call: @main(vu3; ( temp void) 174 0:? 'nThreadId' ( temp 3-component vector of uint) 175 0:? Linker Objects 176 0:? 'outtx' (layout( rgba32f) uniform image2D) 177 0:? 'csb' (layout( binding=1 row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of structure{ temp 4-component vector of float color, temp 2-component vector of uint threadId} @data}) 178 0:? 'csb@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 179 0:? 'rwsb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of float @data}) 180 0:? 'nThreadId' ( in 3-component vector of uint GlobalInvocationID) 181 182 // Module Version 10000 183 // Generated by (magic number): 80007 184 // Id's are bound by 85 185 186 Capability Shader 187 1: ExtInstImport "GLSL.std.450" 188 MemoryModel Logical GLSL450 189 EntryPoint GLCompute 4 "main" 80 190 ExecutionMode 4 LocalSize 1 1 1 191 Source HLSL 500 192 Name 4 "main" 193 Name 11 "@main(vu3;" 194 Name 10 "nThreadId" 195 Name 16 "sb_t" 196 MemberName 16(sb_t) 0 "color" 197 MemberName 16(sb_t) 1 "threadId" 198 Name 18 "data" 199 Name 19 "sb_t" 200 MemberName 19(sb_t) 0 "color" 201 MemberName 19(sb_t) 1 "threadId" 202 Name 21 "csb" 203 MemberName 21(csb) 0 "@data" 204 Name 23 "csb" 205 Name 26 "csb@count" 206 MemberName 26(csb@count) 0 "@count" 207 Name 28 "csb@count" 208 Name 49 "coord" 209 Name 53 "storeTemp" 210 Name 58 "outtx" 211 Name 64 "rwsb" 212 MemberName 64(rwsb) 0 "@data" 213 Name 66 "rwsb" 214 Name 78 "nThreadId" 215 Name 80 "nThreadId" 216 Name 82 "param" 217 MemberDecorate 19(sb_t) 0 Offset 0 218 MemberDecorate 19(sb_t) 1 Offset 16 219 Decorate 20 ArrayStride 32 220 MemberDecorate 21(csb) 0 Offset 0 221 Decorate 21(csb) BufferBlock 222 Decorate 23(csb) DescriptorSet 0 223 Decorate 23(csb) Binding 1 224 MemberDecorate 26(csb@count) 0 Offset 0 225 Decorate 26(csb@count) BufferBlock 226 Decorate 28(csb@count) DescriptorSet 0 227 Decorate 28(csb@count) Binding 0 228 Decorate 58(outtx) DescriptorSet 0 229 Decorate 58(outtx) Binding 0 230 Decorate 63 ArrayStride 16 231 MemberDecorate 64(rwsb) 0 Offset 0 232 Decorate 64(rwsb) BufferBlock 233 Decorate 66(rwsb) DescriptorSet 0 234 Decorate 66(rwsb) Binding 0 235 Decorate 80(nThreadId) BuiltIn GlobalInvocationId 236 2: TypeVoid 237 3: TypeFunction 2 238 6: TypeInt 32 0 239 7: TypeVector 6(int) 3 240 8: TypePointer Function 7(ivec3) 241 9: TypeFunction 2 8(ptr) 242 13: TypeFloat 32 243 14: TypeVector 13(float) 4 244 15: TypeVector 6(int) 2 245 16(sb_t): TypeStruct 14(fvec4) 15(ivec2) 246 17: TypePointer Function 16(sb_t) 247 19(sb_t): TypeStruct 14(fvec4) 15(ivec2) 248 20: TypeRuntimeArray 19(sb_t) 249 21(csb): TypeStruct 20 250 22: TypePointer Uniform 21(csb) 251 23(csb): 22(ptr) Variable Uniform 252 24: TypeInt 32 1 253 25: 24(int) Constant 0 254 26(csb@count): TypeStruct 6(int) 255 27: TypePointer Uniform 26(csb@count) 256 28(csb@count): 27(ptr) Variable Uniform 257 29: TypePointer Uniform 6(int) 258 31: 6(int) Constant 4294967295 259 32: 6(int) Constant 1 260 33: 6(int) Constant 0 261 35: 24(int) Constant 4294967295 262 37: TypePointer Uniform 19(sb_t) 263 41: TypePointer Function 14(fvec4) 264 44: 24(int) Constant 1 265 45: TypePointer Function 15(ivec2) 266 47: TypeVector 13(float) 2 267 48: TypePointer Function 47(fvec2) 268 56: TypeImage 13(float) 2D nonsampled format:Rgba32f 269 57: TypePointer UniformConstant 56 270 58(outtx): 57(ptr) Variable UniformConstant 271 63: TypeRuntimeArray 14(fvec4) 272 64(rwsb): TypeStruct 63 273 65: TypePointer Uniform 64(rwsb) 274 66(rwsb): 65(ptr) Variable Uniform 275 67: TypePointer Function 13(float) 276 74: TypePointer Uniform 14(fvec4) 277 79: TypePointer Input 7(ivec3) 278 80(nThreadId): 79(ptr) Variable Input 279 4(main): 2 Function None 3 280 5: Label 281 78(nThreadId): 8(ptr) Variable Function 282 82(param): 8(ptr) Variable Function 283 81: 7(ivec3) Load 80(nThreadId) 284 Store 78(nThreadId) 81 285 83: 7(ivec3) Load 78(nThreadId) 286 Store 82(param) 83 287 84: 2 FunctionCall 11(@main(vu3;) 82(param) 288 Return 289 FunctionEnd 290 11(@main(vu3;): 2 Function None 9 291 10(nThreadId): 8(ptr) FunctionParameter 292 12: Label 293 18(data): 17(ptr) Variable Function 294 49(coord): 48(ptr) Variable Function 295 53(storeTemp): 41(ptr) Variable Function 296 30: 29(ptr) AccessChain 28(csb@count) 25 297 34: 6(int) AtomicIAdd 30 32 33 31 298 36: 6(int) IAdd 34 35 299 38: 37(ptr) AccessChain 23(csb) 25 36 300 39: 19(sb_t) Load 38 301 40: 14(fvec4) CompositeExtract 39 0 302 42: 41(ptr) AccessChain 18(data) 25 303 Store 42 40 304 43: 15(ivec2) CompositeExtract 39 1 305 46: 45(ptr) AccessChain 18(data) 44 306 Store 46 43 307 50: 45(ptr) AccessChain 18(data) 44 308 51: 15(ivec2) Load 50 309 52: 47(fvec2) ConvertUToF 51 310 Store 49(coord) 52 311 54: 41(ptr) AccessChain 18(data) 25 312 55: 14(fvec4) Load 54 313 Store 53(storeTemp) 55 314 59: 56 Load 58(outtx) 315 60: 47(fvec2) Load 49(coord) 316 61: 15(ivec2) ConvertFToU 60 317 62: 14(fvec4) Load 53(storeTemp) 318 ImageWrite 59 61 62 319 68: 67(ptr) AccessChain 49(coord) 33 320 69: 13(float) Load 68 321 70: 6(int) ConvertFToU 69 322 71: 67(ptr) AccessChain 49(coord) 32 323 72: 13(float) Load 71 324 73: 6(int) ConvertFToU 72 325 75: 74(ptr) AccessChain 66(rwsb) 25 73 326 76: 14(fvec4) Load 75 327 77: 74(ptr) AccessChain 66(rwsb) 25 70 328 Store 77 76 329 Return 330 FunctionEnd 331