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