1 hlsl.structbuffer.fn.frag 2 Shader version: 500 3 gl_FragCoord origin is upper left 4 0:? Sequence 5 0:5 Function Definition: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) 6 0:5 Function Parameters: 7 0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 8 0:5 'bufferOffset' ( in uint) 9 0:? Sequence 10 0:6 Branch: Return with expression 11 0:6 indirect index (layout( row_major std430) buffer 4-component vector of uint) 12 0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) 13 0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 14 0:6 Constant: 15 0:6 0 (const uint) 16 0:6 'bufferOffset' ( in uint) 17 0:10 Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void) 18 0:10 Function Parameters: 19 0:10 'sb' (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 'sb@count' ( buffer block{layout( row_major std430) buffer uint @count}) 21 0:10 'bufferOffset' ( in uint) 22 0:10 'data' ( in 4-component vector of uint) 23 0:? Sequence 24 0:11 move second child to first child ( temp 4-component vector of uint) 25 0:11 indirect index ( buffer 4-component vector of uint) 26 0:11 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of uint) 27 0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 28 0:11 Constant: 29 0:11 0 (const uint) 30 0:11 'bufferOffset' ( in uint) 31 0:11 'data' ( in 4-component vector of uint) 32 0:20 Function Definition: @main(u1; ( temp 4-component vector of float) 33 0:20 Function Parameters: 34 0:20 'pos' ( in uint) 35 0:? Sequence 36 0:21 Function Call: set(block--vu4[0]1;u1;vu4; ( temp void) 37 0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 38 0:21 'sbuf2@count' ( buffer block{layout( row_major std430) buffer uint @count}) 39 0:21 Constant: 40 0:21 2 (const uint) 41 0:21 Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) 42 0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 43 0:21 Constant: 44 0:21 3 (const uint) 45 0:23 Branch: Return with expression 46 0:23 Constant: 47 0:23 0.000000 48 0:23 0.000000 49 0:23 0.000000 50 0:23 0.000000 51 0:20 Function Definition: main( ( temp void) 52 0:20 Function Parameters: 53 0:? Sequence 54 0:20 move second child to first child ( temp uint) 55 0:? 'pos' ( temp uint) 56 0:? 'pos' (layout( location=0) flat in uint) 57 0:20 move second child to first child ( temp 4-component vector of float) 58 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 59 0:20 Function Call: @main(u1; ( temp 4-component vector of float) 60 0:? 'pos' ( temp uint) 61 0:? Linker Objects 62 0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 63 0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 64 0:? 'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 65 0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 3-component vector of uint @data}) 66 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 67 0:? 'pos' (layout( location=0) flat in uint) 68 69 70 Linked fragment stage: 71 72 73 Shader version: 500 74 gl_FragCoord origin is upper left 75 0:? Sequence 76 0:5 Function Definition: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) 77 0:5 Function Parameters: 78 0:5 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 79 0:5 'bufferOffset' ( in uint) 80 0:? Sequence 81 0:6 Branch: Return with expression 82 0:6 indirect index (layout( row_major std430) buffer 4-component vector of uint) 83 0:6 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint) 84 0:6 'sb' (layout( row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 85 0:6 Constant: 86 0:6 0 (const uint) 87 0:6 'bufferOffset' ( in uint) 88 0:10 Function Definition: set(block--vu4[0]1;u1;vu4; ( temp void) 89 0:10 Function Parameters: 90 0:10 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 91 0:10 'sb@count' ( buffer block{layout( row_major std430) buffer uint @count}) 92 0:10 'bufferOffset' ( in uint) 93 0:10 'data' ( in 4-component vector of uint) 94 0:? Sequence 95 0:11 move second child to first child ( temp 4-component vector of uint) 96 0:11 indirect index ( buffer 4-component vector of uint) 97 0:11 @data: direct index for structure ( buffer unsized 1-element array of 4-component vector of uint) 98 0:11 'sb' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 99 0:11 Constant: 100 0:11 0 (const uint) 101 0:11 'bufferOffset' ( in uint) 102 0:11 'data' ( in 4-component vector of uint) 103 0:20 Function Definition: @main(u1; ( temp 4-component vector of float) 104 0:20 Function Parameters: 105 0:20 'pos' ( in uint) 106 0:? Sequence 107 0:21 Function Call: set(block--vu4[0]1;u1;vu4; ( temp void) 108 0:21 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 109 0:21 'sbuf2@count' ( buffer block{layout( row_major std430) buffer uint @count}) 110 0:21 Constant: 111 0:21 2 (const uint) 112 0:21 Function Call: get(block--vu4[0]1;u1; ( temp 4-component vector of uint) 113 0:21 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 114 0:21 Constant: 115 0:21 3 (const uint) 116 0:23 Branch: Return with expression 117 0:23 Constant: 118 0:23 0.000000 119 0:23 0.000000 120 0:23 0.000000 121 0:23 0.000000 122 0:20 Function Definition: main( ( temp void) 123 0:20 Function Parameters: 124 0:? Sequence 125 0:20 move second child to first child ( temp uint) 126 0:? 'pos' ( temp uint) 127 0:? 'pos' (layout( location=0) flat in uint) 128 0:20 move second child to first child ( temp 4-component vector of float) 129 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 130 0:20 Function Call: @main(u1; ( temp 4-component vector of float) 131 0:? 'pos' ( temp uint) 132 0:? Linker Objects 133 0:? 'sbuf' (layout( binding=10 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 134 0:? 'sbuf2' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of 4-component vector of uint @data}) 135 0:? 'sbuf2@count' (layout( row_major std430) buffer block{layout( row_major std430) buffer uint @count}) 136 0:? 'sbuf3' (layout( binding=12 row_major std430) readonly buffer block{layout( row_major std430) buffer unsized 1-element array of 3-component vector of uint @data}) 137 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 138 0:? 'pos' (layout( location=0) flat in uint) 139 140 Validation failed 141 // Module Version 10000 142 // Generated by (magic number): 80007 143 // Id's are bound by 78 144 145 Capability Shader 146 1: ExtInstImport "GLSL.std.450" 147 MemoryModel Logical GLSL450 148 EntryPoint Fragment 4 "main" 63 66 149 ExecutionMode 4 OriginUpperLeft 150 Source HLSL 500 151 Name 4 "main" 152 Name 9 "" 153 MemberName 9 0 "@data" 154 Name 15 "get(block--vu4[0]1;u1;" 155 Name 13 "sb" 156 Name 14 "bufferOffset" 157 Name 18 "" 158 MemberName 18 0 "@data" 159 Name 20 "" 160 MemberName 20 0 "@count" 161 Name 28 "set(block--vu4[0]1;u1;vu4;" 162 Name 24 "sb" 163 Name 25 "sb@count" 164 Name 26 "bufferOffset" 165 Name 27 "data" 166 Name 34 "@main(u1;" 167 Name 33 "pos" 168 Name 47 "sbuf2" 169 Name 48 "sbuf2@count" 170 Name 50 "sbuf" 171 Name 52 "param" 172 Name 54 "param" 173 Name 55 "param" 174 Name 61 "pos" 175 Name 63 "pos" 176 Name 66 "@entryPointOutput" 177 Name 67 "param" 178 Name 70 "sbuf2@count" 179 MemberName 70(sbuf2@count) 0 "@count" 180 Name 72 "sbuf2@count" 181 Name 75 "sbuf3" 182 MemberName 75(sbuf3) 0 "@data" 183 Name 77 "sbuf3" 184 Decorate 8 ArrayStride 16 185 MemberDecorate 9 0 NonWritable 186 MemberDecorate 9 0 Offset 0 187 Decorate 9 BufferBlock 188 Decorate 13(sb) NonWritable 189 Decorate 17 ArrayStride 16 190 MemberDecorate 18 0 Offset 0 191 Decorate 18 BufferBlock 192 Decorate 20 BufferBlock 193 Decorate 47(sbuf2) DescriptorSet 0 194 Decorate 47(sbuf2) Binding 0 195 Decorate 48(sbuf2@count) DescriptorSet 0 196 Decorate 48(sbuf2@count) Binding 0 197 Decorate 50(sbuf) DescriptorSet 0 198 Decorate 50(sbuf) Binding 10 199 Decorate 63(pos) Flat 200 Decorate 63(pos) Location 0 201 Decorate 66(@entryPointOutput) Location 0 202 MemberDecorate 70(sbuf2@count) 0 Offset 0 203 Decorate 70(sbuf2@count) BufferBlock 204 Decorate 72(sbuf2@count) DescriptorSet 0 205 Decorate 72(sbuf2@count) Binding 0 206 Decorate 74 ArrayStride 16 207 MemberDecorate 75(sbuf3) 0 NonWritable 208 MemberDecorate 75(sbuf3) 0 Offset 0 209 Decorate 75(sbuf3) BufferBlock 210 Decorate 77(sbuf3) DescriptorSet 0 211 Decorate 77(sbuf3) Binding 12 212 2: TypeVoid 213 3: TypeFunction 2 214 6: TypeInt 32 0 215 7: TypeVector 6(int) 4 216 8: TypeRuntimeArray 7(ivec4) 217 9: TypeStruct 8 218 10: TypePointer Uniform 9(struct) 219 11: TypePointer Function 6(int) 220 12: TypeFunction 7(ivec4) 10(ptr) 11(ptr) 221 17: TypeRuntimeArray 7(ivec4) 222 18: TypeStruct 17 223 19: TypePointer Uniform 18(struct) 224 20: TypeStruct 6(int) 225 21: TypePointer Uniform 20(struct) 226 22: TypePointer Function 7(ivec4) 227 23: TypeFunction 2 19(ptr) 21(ptr) 11(ptr) 22(ptr) 228 30: TypeFloat 32 229 31: TypeVector 30(float) 4 230 32: TypeFunction 31(fvec4) 11(ptr) 231 36: TypeInt 32 1 232 37: 36(int) Constant 0 233 39: TypePointer Uniform 7(ivec4) 234 47(sbuf2): 19(ptr) Variable Uniform 235 48(sbuf2@count): 21(ptr) Variable Uniform 236 49: 6(int) Constant 2 237 50(sbuf): 10(ptr) Variable Uniform 238 51: 6(int) Constant 3 239 57: 30(float) Constant 0 240 58: 31(fvec4) ConstantComposite 57 57 57 57 241 62: TypePointer Input 6(int) 242 63(pos): 62(ptr) Variable Input 243 65: TypePointer Output 31(fvec4) 244 66(@entryPointOutput): 65(ptr) Variable Output 245 70(sbuf2@count): TypeStruct 6(int) 246 71: TypePointer Uniform 70(sbuf2@count) 247 72(sbuf2@count): 71(ptr) Variable Uniform 248 73: TypeVector 6(int) 3 249 74: TypeRuntimeArray 73(ivec3) 250 75(sbuf3): TypeStruct 74 251 76: TypePointer Uniform 75(sbuf3) 252 77(sbuf3): 76(ptr) Variable Uniform 253 4(main): 2 Function None 3 254 5: Label 255 61(pos): 11(ptr) Variable Function 256 67(param): 11(ptr) Variable Function 257 64: 6(int) Load 63(pos) 258 Store 61(pos) 64 259 68: 6(int) Load 61(pos) 260 Store 67(param) 68 261 69: 31(fvec4) FunctionCall 34(@main(u1;) 67(param) 262 Store 66(@entryPointOutput) 69 263 Return 264 FunctionEnd 265 15(get(block--vu4[0]1;u1;): 7(ivec4) Function None 12 266 13(sb): 10(ptr) FunctionParameter 267 14(bufferOffset): 11(ptr) FunctionParameter 268 16: Label 269 38: 6(int) Load 14(bufferOffset) 270 40: 39(ptr) AccessChain 13(sb) 37 38 271 41: 7(ivec4) Load 40 272 ReturnValue 41 273 FunctionEnd 274 28(set(block--vu4[0]1;u1;vu4;): 2 Function None 23 275 24(sb): 19(ptr) FunctionParameter 276 25(sb@count): 21(ptr) FunctionParameter 277 26(bufferOffset): 11(ptr) FunctionParameter 278 27(data): 22(ptr) FunctionParameter 279 29: Label 280 44: 6(int) Load 26(bufferOffset) 281 45: 7(ivec4) Load 27(data) 282 46: 39(ptr) AccessChain 24(sb) 37 44 283 Store 46 45 284 Return 285 FunctionEnd 286 34(@main(u1;): 31(fvec4) Function None 32 287 33(pos): 11(ptr) FunctionParameter 288 35: Label 289 52(param): 11(ptr) Variable Function 290 54(param): 11(ptr) Variable Function 291 55(param): 22(ptr) Variable Function 292 Store 52(param) 51 293 53: 7(ivec4) FunctionCall 15(get(block--vu4[0]1;u1;) 50(sbuf) 52(param) 294 Store 54(param) 49 295 Store 55(param) 53 296 56: 2 FunctionCall 28(set(block--vu4[0]1;u1;vu4;) 47(sbuf2) 48(sbuf2@count) 54(param) 55(param) 297 ReturnValue 58 298 FunctionEnd 299