1 hlsl.structbuffer.fn2.comp 2 Shader version: 500 3 local_size = (256, 1, 1) 4 0:? Sequence 5 0:5 Function Definition: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint) 6 0:5 Function Parameters: 7 0:5 'loc' ( in uint) 8 0:5 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 9 0:? Sequence 10 0:6 Sequence 11 0:6 move second child to first child ( temp 2-component vector of uint) 12 0:6 'result' ( temp 2-component vector of uint) 13 0:? Sequence 14 0:6 move second child to first child ( temp int) 15 0:6 'byteAddrTemp' ( temp int) 16 0:6 right-shift ( temp int) 17 0:6 'loc' ( in uint) 18 0:6 Constant: 19 0:6 2 (const int) 20 0:? Construct vec2 ( temp 2-component vector of uint) 21 0:6 indirect index ( temp uint) 22 0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 23 0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 24 0:6 Constant: 25 0:6 0 (const uint) 26 0:6 'byteAddrTemp' ( temp int) 27 0:6 indirect index ( temp uint) 28 0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 29 0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 30 0:6 Constant: 31 0:6 0 (const uint) 32 0:6 add ( temp int) 33 0:6 'byteAddrTemp' ( temp int) 34 0:6 Constant: 35 0:6 1 (const int) 36 0:7 Branch: Return with expression 37 0:7 'result' ( temp 2-component vector of uint) 38 0:12 Function Definition: @main(u1; ( temp void) 39 0:12 Function Parameters: 40 0:12 'dispatchId' ( in uint) 41 0:? Sequence 42 0:13 Sequence 43 0:13 move second child to first child ( temp 2-component vector of uint) 44 0:13 'result' ( temp 2-component vector of uint) 45 0:13 Function Call: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint) 46 0:13 'dispatchId' ( in uint) 47 0:13 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 48 0:14 Sequence 49 0:14 imageStore ( temp void) 50 0:14 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer) 51 0:14 'dispatchId' ( in uint) 52 0:14 'result' ( temp 2-component vector of uint) 53 0:14 'result' ( temp 2-component vector of uint) 54 0:12 Function Definition: main( ( temp void) 55 0:12 Function Parameters: 56 0:? Sequence 57 0:12 move second child to first child ( temp uint) 58 0:? 'dispatchId' ( temp uint) 59 0:? Construct uint ( temp uint) 60 0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID) 61 0:12 Function Call: @main(u1; ( temp void) 62 0:? 'dispatchId' ( temp uint) 63 0:? Linker Objects 64 0:? 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 65 0:? 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer) 66 0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID) 67 68 69 Linked compute stage: 70 71 72 Shader version: 500 73 local_size = (256, 1, 1) 74 0:? Sequence 75 0:5 Function Definition: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint) 76 0:5 Function Parameters: 77 0:5 'loc' ( in uint) 78 0:5 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 79 0:? Sequence 80 0:6 Sequence 81 0:6 move second child to first child ( temp 2-component vector of uint) 82 0:6 'result' ( temp 2-component vector of uint) 83 0:? Sequence 84 0:6 move second child to first child ( temp int) 85 0:6 'byteAddrTemp' ( temp int) 86 0:6 right-shift ( temp int) 87 0:6 'loc' ( in uint) 88 0:6 Constant: 89 0:6 2 (const int) 90 0:? Construct vec2 ( temp 2-component vector of uint) 91 0:6 indirect index ( temp uint) 92 0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 93 0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 94 0:6 Constant: 95 0:6 0 (const uint) 96 0:6 'byteAddrTemp' ( temp int) 97 0:6 indirect index ( temp uint) 98 0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 99 0:6 'buffer' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 100 0:6 Constant: 101 0:6 0 (const uint) 102 0:6 add ( temp int) 103 0:6 'byteAddrTemp' ( temp int) 104 0:6 Constant: 105 0:6 1 (const int) 106 0:7 Branch: Return with expression 107 0:7 'result' ( temp 2-component vector of uint) 108 0:12 Function Definition: @main(u1; ( temp void) 109 0:12 Function Parameters: 110 0:12 'dispatchId' ( in uint) 111 0:? Sequence 112 0:13 Sequence 113 0:13 move second child to first child ( temp 2-component vector of uint) 114 0:13 'result' ( temp 2-component vector of uint) 115 0:13 Function Call: testLoad(u1;block--u1[0]1; ( temp 2-component vector of uint) 116 0:13 'dispatchId' ( in uint) 117 0:13 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 118 0:14 Sequence 119 0:14 imageStore ( temp void) 120 0:14 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer) 121 0:14 'dispatchId' ( in uint) 122 0:14 'result' ( temp 2-component vector of uint) 123 0:14 'result' ( temp 2-component vector of uint) 124 0:12 Function Definition: main( ( temp void) 125 0:12 Function Parameters: 126 0:? Sequence 127 0:12 move second child to first child ( temp uint) 128 0:? 'dispatchId' ( temp uint) 129 0:? Construct uint ( temp uint) 130 0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID) 131 0:12 Function Call: @main(u1; ( temp void) 132 0:? 'dispatchId' ( temp uint) 133 0:? Linker Objects 134 0:? 'g_input' (layout( binding=0 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 135 0:? 'g_output' (layout( binding=1 rg32ui) uniform uimageBuffer) 136 0:? 'dispatchId' ( in 3-component vector of uint GlobalInvocationID) 137 138 // Module Version 10000 139 // Generated by (magic number): 80007 140 // Id's are bound by 63 141 142 Capability Shader 143 Capability ImageBuffer 144 Capability StorageImageExtendedFormats 145 1: ExtInstImport "GLSL.std.450" 146 MemoryModel Logical GLSL450 147 EntryPoint GLCompute 4 "main" 57 148 ExecutionMode 4 LocalSize 256 1 1 149 Source HLSL 500 150 Name 4 "main" 151 Name 9 "" 152 MemberName 9 0 "@data" 153 Name 15 "testLoad(u1;block--u1[0]1;" 154 Name 13 "loc" 155 Name 14 "buffer" 156 Name 19 "@main(u1;" 157 Name 18 "dispatchId" 158 Name 22 "result" 159 Name 25 "byteAddrTemp" 160 Name 43 "result" 161 Name 44 "g_input" 162 Name 45 "param" 163 Name 50 "g_output" 164 Name 54 "dispatchId" 165 Name 57 "dispatchId" 166 Name 60 "param" 167 Decorate 8 ArrayStride 4 168 MemberDecorate 9 0 NonWritable 169 MemberDecorate 9 0 Offset 0 170 Decorate 9 BufferBlock 171 Decorate 14(buffer) NonWritable 172 Decorate 44(g_input) DescriptorSet 0 173 Decorate 44(g_input) Binding 0 174 Decorate 50(g_output) DescriptorSet 0 175 Decorate 50(g_output) Binding 1 176 Decorate 57(dispatchId) BuiltIn GlobalInvocationId 177 2: TypeVoid 178 3: TypeFunction 2 179 6: TypeInt 32 0 180 7: TypePointer Function 6(int) 181 8: TypeRuntimeArray 6(int) 182 9: TypeStruct 8 183 10: TypePointer Uniform 9(struct) 184 11: TypeVector 6(int) 2 185 12: TypeFunction 11(ivec2) 7(ptr) 10(ptr) 186 17: TypeFunction 2 7(ptr) 187 21: TypePointer Function 11(ivec2) 188 23: TypeInt 32 1 189 24: TypePointer Function 23(int) 190 27: 23(int) Constant 2 191 29: 23(int) Constant 0 192 31: TypePointer Uniform 6(int) 193 35: 23(int) Constant 1 194 44(g_input): 10(ptr) Variable Uniform 195 48: TypeImage 6(int) Buffer nonsampled format:Rg32ui 196 49: TypePointer UniformConstant 48 197 50(g_output): 49(ptr) Variable UniformConstant 198 55: TypeVector 6(int) 3 199 56: TypePointer Input 55(ivec3) 200 57(dispatchId): 56(ptr) Variable Input 201 4(main): 2 Function None 3 202 5: Label 203 54(dispatchId): 7(ptr) Variable Function 204 60(param): 7(ptr) Variable Function 205 58: 55(ivec3) Load 57(dispatchId) 206 59: 6(int) CompositeExtract 58 0 207 Store 54(dispatchId) 59 208 61: 6(int) Load 54(dispatchId) 209 Store 60(param) 61 210 62: 2 FunctionCall 19(@main(u1;) 60(param) 211 Return 212 FunctionEnd 213 15(testLoad(u1;block--u1[0]1;): 11(ivec2) Function None 12 214 13(loc): 7(ptr) FunctionParameter 215 14(buffer): 10(ptr) FunctionParameter 216 16: Label 217 22(result): 21(ptr) Variable Function 218 25(byteAddrTemp): 24(ptr) Variable Function 219 26: 6(int) Load 13(loc) 220 28: 23(int) ShiftRightLogical 26 27 221 Store 25(byteAddrTemp) 28 222 30: 23(int) Load 25(byteAddrTemp) 223 32: 31(ptr) AccessChain 14(buffer) 29 30 224 33: 6(int) Load 32 225 34: 23(int) Load 25(byteAddrTemp) 226 36: 23(int) IAdd 34 35 227 37: 31(ptr) AccessChain 14(buffer) 29 36 228 38: 6(int) Load 37 229 39: 11(ivec2) CompositeConstruct 33 38 230 Store 22(result) 39 231 40: 11(ivec2) Load 22(result) 232 ReturnValue 40 233 FunctionEnd 234 19(@main(u1;): 2 Function None 17 235 18(dispatchId): 7(ptr) FunctionParameter 236 20: Label 237 43(result): 21(ptr) Variable Function 238 45(param): 7(ptr) Variable Function 239 46: 6(int) Load 18(dispatchId) 240 Store 45(param) 46 241 47: 11(ivec2) FunctionCall 15(testLoad(u1;block--u1[0]1;) 45(param) 44(g_input) 242 Store 43(result) 47 243 51: 48 Load 50(g_output) 244 52: 6(int) Load 18(dispatchId) 245 53: 11(ivec2) Load 43(result) 246 ImageWrite 51 52 53 247 Return 248 FunctionEnd 249