hlsl.flattenSubset2.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:8  Function Definition: @main(vf4; ( temp 4-component vector of float)
0:8    Function Parameters: 
0:8      'vpos' ( in 4-component vector of float)
0:?     Sequence
0:13      move second child to first child ( temp structure{ temp float y,  temp texture2D texNested})
0:13        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:13          'a1' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x})
0:13          Constant:
0:13            0 (const int)
0:13        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:13          'a2' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x})
0:13          Constant:
0:13            0 (const int)
0:14      move second child to first child ( temp structure{ temp float y,  temp texture2D texNested})
0:14        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:14          'b' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp texture2D tex})
0:14          Constant:
0:14            0 (const int)
0:14        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:14          'a1' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x})
0:14          Constant:
0:14            0 (const int)
0:17      Sequence
0:17        move second child to first child ( temp structure{ temp float y,  temp texture2D texNested})
0:17          'n' ( temp structure{ temp float y,  temp texture2D texNested})
0:17          n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:17            'b' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp texture2D tex})
0:17            Constant:
0:17              0 (const int)
0:20      move second child to first child ( temp texture2D)
0:20        texNested: direct index for structure ( temp texture2D)
0:20          n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:20            'a2' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x})
0:20            Constant:
0:20              0 (const int)
0:20          Constant:
0:20            1 (const int)
0:20        'someTex' ( uniform texture2D)
0:21      move second child to first child ( temp float)
0:21        y: direct index for structure ( temp float)
0:21          n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:21            'a1' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x})
0:21            Constant:
0:21              0 (const int)
0:21          Constant:
0:21            0 (const int)
0:21        Constant:
0:21          1.000000
0:23      Branch: Return with expression
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:8  Function Definition: main( ( temp void)
0:8    Function Parameters: 
0:?     Sequence
0:8      move second child to first child ( temp 4-component vector of float)
0:?         'vpos' ( temp 4-component vector of float)
0:?         'vpos' (layout( location=0) in 4-component vector of float)
0:8      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:8        Function Call: @main(vf4; ( temp 4-component vector of float)
0:?           'vpos' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'someTex' ( uniform texture2D)
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'vpos' (layout( location=0) in 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:8  Function Definition: @main(vf4; ( temp 4-component vector of float)
0:8    Function Parameters: 
0:8      'vpos' ( in 4-component vector of float)
0:?     Sequence
0:13      move second child to first child ( temp structure{ temp float y,  temp texture2D texNested})
0:13        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:13          'a1' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x})
0:13          Constant:
0:13            0 (const int)
0:13        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:13          'a2' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x})
0:13          Constant:
0:13            0 (const int)
0:14      move second child to first child ( temp structure{ temp float y,  temp texture2D texNested})
0:14        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:14          'b' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp texture2D tex})
0:14          Constant:
0:14            0 (const int)
0:14        n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:14          'a1' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x})
0:14          Constant:
0:14            0 (const int)
0:17      Sequence
0:17        move second child to first child ( temp structure{ temp float y,  temp texture2D texNested})
0:17          'n' ( temp structure{ temp float y,  temp texture2D texNested})
0:17          n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:17            'b' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp texture2D tex})
0:17            Constant:
0:17              0 (const int)
0:20      move second child to first child ( temp texture2D)
0:20        texNested: direct index for structure ( temp texture2D)
0:20          n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:20            'a2' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x})
0:20            Constant:
0:20              0 (const int)
0:20          Constant:
0:20            1 (const int)
0:20        'someTex' ( uniform texture2D)
0:21      move second child to first child ( temp float)
0:21        y: direct index for structure ( temp float)
0:21          n: direct index for structure ( temp structure{ temp float y,  temp texture2D texNested})
0:21            'a1' ( temp structure{ temp structure{ temp float y,  temp texture2D texNested} n,  temp float x})
0:21            Constant:
0:21              0 (const int)
0:21          Constant:
0:21            0 (const int)
0:21        Constant:
0:21          1.000000
0:23      Branch: Return with expression
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:8  Function Definition: main( ( temp void)
0:8    Function Parameters: 
0:?     Sequence
0:8      move second child to first child ( temp 4-component vector of float)
0:?         'vpos' ( temp 4-component vector of float)
0:?         'vpos' (layout( location=0) in 4-component vector of float)
0:8      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:8        Function Call: @main(vf4; ( temp 4-component vector of float)
0:?           'vpos' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'someTex' ( uniform texture2D)
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'vpos' (layout( location=0) in 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 49 52
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 11  "@main(vf4;"
                              Name 10  "vpos"
                              Name 14  "Nested"
                              MemberName 14(Nested) 0  "y"
                              MemberName 14(Nested) 1  "texNested"
                              Name 15  "A"
                              MemberName 15(A) 0  "n"
                              MemberName 15(A) 1  "x"
                              Name 17  "a1"
                              Name 20  "a2"
                              Name 25  "B"
                              MemberName 25(B) 0  "n"
                              MemberName 25(B) 1  "tex"
                              Name 27  "b"
                              Name 31  "n"
                              Name 36  "someTex"
                              Name 47  "vpos"
                              Name 49  "vpos"
                              Name 52  "@entryPointOutput"
                              Name 53  "param"
                              Decorate 36(someTex) DescriptorSet 0
                              Decorate 49(vpos) Location 0
                              Decorate 52(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
               9:             TypeFunction 7(fvec4) 8(ptr)
              13:             TypeImage 6(float) 2D sampled format:Unknown
      14(Nested):             TypeStruct 6(float) 13
           15(A):             TypeStruct 14(Nested) 6(float)
              16:             TypePointer Function 15(A)
              18:             TypeInt 32 1
              19:     18(int) Constant 0
              21:             TypePointer Function 14(Nested)
           25(B):             TypeStruct 14(Nested) 13
              26:             TypePointer Function 25(B)
              34:     18(int) Constant 1
              35:             TypePointer UniformConstant 13
     36(someTex):     35(ptr) Variable UniformConstant
              38:             TypePointer Function 13
              40:    6(float) Constant 1065353216
              41:             TypePointer Function 6(float)
              43:    6(float) Constant 0
              44:    7(fvec4) ConstantComposite 43 43 43 43
              48:             TypePointer Input 7(fvec4)
        49(vpos):     48(ptr) Variable Input
              51:             TypePointer Output 7(fvec4)
52(@entryPointOutput):     51(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
        47(vpos):      8(ptr) Variable Function
       53(param):      8(ptr) Variable Function
              50:    7(fvec4) Load 49(vpos)
                              Store 47(vpos) 50
              54:    7(fvec4) Load 47(vpos)
                              Store 53(param) 54
              55:    7(fvec4) FunctionCall 11(@main(vf4;) 53(param)
                              Store 52(@entryPointOutput) 55
                              Return
                              FunctionEnd
  11(@main(vf4;):    7(fvec4) Function None 9
        10(vpos):      8(ptr) FunctionParameter
              12:             Label
          17(a1):     16(ptr) Variable Function
          20(a2):     16(ptr) Variable Function
           27(b):     26(ptr) Variable Function
           31(n):     21(ptr) Variable Function
              22:     21(ptr) AccessChain 20(a2) 19
              23:  14(Nested) Load 22
              24:     21(ptr) AccessChain 17(a1) 19
                              Store 24 23
              28:     21(ptr) AccessChain 17(a1) 19
              29:  14(Nested) Load 28
              30:     21(ptr) AccessChain 27(b) 19
                              Store 30 29
              32:     21(ptr) AccessChain 27(b) 19
              33:  14(Nested) Load 32
                              Store 31(n) 33
              37:          13 Load 36(someTex)
              39:     38(ptr) AccessChain 20(a2) 19 34
                              Store 39 37
              42:     41(ptr) AccessChain 17(a1) 19 19
                              Store 42 40
                              ReturnValue 44
                              FunctionEnd
