hlsl.typeGraphCopy.vert
Shader version: 500
0:? Sequence
0:22  Function Definition: @main( ( temp float)
0:22    Function Parameters: 
0:?     Sequence
0:23      Branch: Return with expression
0:23        b: direct index for structure ( temp float)
0:23          s2: direct index for structure ( temp structure{ temp int a,  temp float b})
0:23            t3: direct index for structure ( temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2})
0:23              foo: direct index for structure ( uniform structure{ temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2} t1,  temp structure{ temp int a,  temp float b} t2,  temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2} t3})
0:23                'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2} t1,  temp structure{ temp int a,  temp float b} t2,  temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2} t3} foo})
0:23                Constant:
0:23                  0 (const uint)
0:23              Constant:
0:23                2 (const int)
0:23            Constant:
0:23              1 (const int)
0:23          Constant:
0:23            1 (const int)
0:22  Function Definition: main( ( temp void)
0:22    Function Parameters: 
0:?     Sequence
0:22      move second child to first child ( temp float)
0:?         '@entryPointOutput' (layout( location=0) out float)
0:22        Function Call: @main( ( temp float)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2} t1,  temp structure{ temp int a,  temp float b} t2,  temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2} t3} foo})
0:?     '@entryPointOutput' (layout( location=0) out float)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:22  Function Definition: @main( ( temp float)
0:22    Function Parameters: 
0:?     Sequence
0:23      Branch: Return with expression
0:23        b: direct index for structure ( temp float)
0:23          s2: direct index for structure ( temp structure{ temp int a,  temp float b})
0:23            t3: direct index for structure ( temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2})
0:23              foo: direct index for structure ( uniform structure{ temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2} t1,  temp structure{ temp int a,  temp float b} t2,  temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2} t3})
0:23                'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2} t1,  temp structure{ temp int a,  temp float b} t2,  temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2} t3} foo})
0:23                Constant:
0:23                  0 (const uint)
0:23              Constant:
0:23                2 (const int)
0:23            Constant:
0:23              1 (const int)
0:23          Constant:
0:23            1 (const int)
0:22  Function Definition: main( ( temp void)
0:22    Function Parameters: 
0:?     Sequence
0:22      move second child to first child ( temp float)
0:?         '@entryPointOutput' (layout( location=0) out float)
0:22        Function Call: @main( ( temp float)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2} t1,  temp structure{ temp int a,  temp float b} t2,  temp structure{ temp structure{ temp int a,  temp float b} s1,  temp structure{ temp int a,  temp float b} s2} t3} foo})
0:?     '@entryPointOutput' (layout( location=0) out float)

// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 28

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 26
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "@main("
                              Name 11  "N1"
                              MemberName 11(N1) 0  "a"
                              MemberName 11(N1) 1  "b"
                              Name 12  "N2"
                              MemberName 12(N2) 0  "s1"
                              MemberName 12(N2) 1  "s2"
                              Name 13  "N3"
                              MemberName 13(N3) 0  "t1"
                              MemberName 13(N3) 1  "t2"
                              MemberName 13(N3) 2  "t3"
                              Name 14  "$Global"
                              MemberName 14($Global) 0  "foo"
                              Name 16  ""
                              Name 26  "@entryPointOutput"
                              MemberDecorate 11(N1) 0 Offset 0
                              MemberDecorate 11(N1) 1 Offset 4
                              MemberDecorate 12(N2) 0 Offset 0
                              MemberDecorate 12(N2) 1 Offset 16
                              MemberDecorate 13(N3) 0 Offset 0
                              MemberDecorate 13(N3) 1 Offset 32
                              MemberDecorate 13(N3) 2 Offset 48
                              MemberDecorate 14($Global) 0 Offset 0
                              Decorate 14($Global) Block
                              Decorate 16 DescriptorSet 0
                              Decorate 16 Binding 0
                              Decorate 26(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeFunction 6(float)
              10:             TypeInt 32 1
          11(N1):             TypeStruct 10(int) 6(float)
          12(N2):             TypeStruct 11(N1) 11(N1)
          13(N3):             TypeStruct 12(N2) 11(N1) 12(N2)
     14($Global):             TypeStruct 13(N3)
              15:             TypePointer Uniform 14($Global)
              16:     15(ptr) Variable Uniform
              17:     10(int) Constant 0
              18:     10(int) Constant 2
              19:     10(int) Constant 1
              20:             TypePointer Uniform 6(float)
              25:             TypePointer Output 6(float)
26(@entryPointOutput):     25(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              27:    6(float) FunctionCall 8(@main()
                              Store 26(@entryPointOutput) 27
                              Return
                              FunctionEnd
       8(@main():    6(float) Function None 7
               9:             Label
              21:     20(ptr) AccessChain 16 17 18 19 19
              22:    6(float) Load 21
                              ReturnValue 22
                              FunctionEnd
