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