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:23        Constant:
0:23          0.000000
0:23          0.000000
0:23          0.000000
0:23          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:23        Constant:
0:23          0.000000
0:23          0.000000
0:23          0.000000
0:23          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): 8000b
// 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 36(someTex) Binding 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
