hlsl.stringtoken.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:16  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:16    Function Parameters: 
0:?     Sequence
0:18      move second child to first child (temp 4-component vector of float)
0:18        Color: direct index for structure (temp 4-component vector of float)
0:18          'psout' (temp structure{temp 4-component vector of float Color})
0:18          Constant:
0:18            0 (const int)
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:?           1.000000
0:19      Sequence
0:19        Sequence
0:19          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:19            Color: direct index for structure (temp 4-component vector of float)
0:19              'psout' (temp structure{temp 4-component vector of float Color})
0:19              Constant:
0:19                0 (const int)
0:19        Branch: Return
0:?   Linker Objects
0:?     'TestTexture' (uniform texture2D)
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF})


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:16  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:16    Function Parameters: 
0:?     Sequence
0:18      move second child to first child (temp 4-component vector of float)
0:18        Color: direct index for structure (temp 4-component vector of float)
0:18          'psout' (temp structure{temp 4-component vector of float Color})
0:18          Constant:
0:18            0 (const int)
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:?           1.000000
0:19      Sequence
0:19        Sequence
0:19          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:19            Color: direct index for structure (temp 4-component vector of float)
0:19              'psout' (temp structure{temp 4-component vector of float Color})
0:19              Constant:
0:19                0 (const int)
0:19        Branch: Return
0:?   Linker Objects
0:?     'TestTexture' (uniform texture2D)
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF})

// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 29

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 19
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "Color"
                              Name 10  "psout"
                              Name 19  "Color"
                              Name 25  "TestTexture"
                              Name 26  "$Global"
                              MemberName 26($Global) 0  "TestUF"
                              Name 28  ""
                              Decorate 19(Color) Location 0
                              Decorate 25(TestTexture) DescriptorSet 0
                              Decorate 26($Global) Block
                              Decorate 28 DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4)
               9:             TypePointer Function 8(PS_OUTPUT)
              11:             TypeInt 32 1
              12:     11(int) Constant 0
              13:    6(float) Constant 0
              14:    6(float) Constant 1065353216
              15:    7(fvec4) ConstantComposite 13 13 13 14
              16:             TypePointer Function 7(fvec4)
              18:             TypePointer Output 7(fvec4)
       19(Color):     18(ptr) Variable Output
              23:             TypeImage 6(float) 2D sampled format:Unknown
              24:             TypePointer UniformConstant 23
 25(TestTexture):     24(ptr) Variable UniformConstant
     26($Global):             TypeStruct 7(fvec4)
              27:             TypePointer Uniform 26($Global)
              28:     27(ptr) Variable Uniform
         4(main):           2 Function None 3
               5:             Label
       10(psout):      9(ptr) Variable Function
              17:     16(ptr) AccessChain 10(psout) 12
                              Store 17 15
              20:     16(ptr) AccessChain 10(psout) 12
              21:    7(fvec4) Load 20
                              Store 19(Color) 21
                              Return
                              FunctionEnd
