hlsl.struct.split.assign.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:7  Function Definition: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float)
0:7    Function Parameters: 
0:7      'i' ( in int)
0:7      'input' ( in 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:?     Sequence
0:9      move second child to first child ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:9        'input' ( in 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:9        'a' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:11      Branch: Return with expression
0:11        pos: direct index for structure ( temp 4-component vector of float)
0:11          direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:11            'a' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:11            Constant:
0:11              1 (const int)
0:11          Constant:
0:11            1 (const int)
0:7  Function Definition: main( ( temp void)
0:7    Function Parameters: 
0:?     Sequence
0:7      move second child to first child ( temp int)
0:?         'i' ( temp int)
0:?         'i' (layout( location=0) flat in int)
0:7      Sequence
0:7        move second child to first child ( temp float)
0:7          f: direct index for structure ( temp float)
0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:7              Constant:
0:7                0 (const int)
0:7            Constant:
0:7              0 (const int)
0:?           'input[0].f' (layout( location=1) in float)
0:7        move second child to first child ( temp 4-component vector of float)
0:7          pos: direct index for structure ( temp 4-component vector of float)
0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:7              Constant:
0:7                0 (const int)
0:7            Constant:
0:7              1 (const int)
0:7          direct index ( in 4-component vector of float FragCoord)
0:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
0:7            Constant:
0:7              0 (const int)
0:7        move second child to first child ( temp float)
0:7          f: direct index for structure ( temp float)
0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:7              Constant:
0:7                1 (const int)
0:7            Constant:
0:7              0 (const int)
0:?           'input[1].f' (layout( location=2) in float)
0:7        move second child to first child ( temp 4-component vector of float)
0:7          pos: direct index for structure ( temp 4-component vector of float)
0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:7              Constant:
0:7                1 (const int)
0:7            Constant:
0:7              1 (const int)
0:7          direct index ( in 4-component vector of float FragCoord)
0:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
0:7            Constant:
0:7              1 (const int)
0:7        move second child to first child ( temp float)
0:7          f: direct index for structure ( temp float)
0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:7              Constant:
0:7                2 (const int)
0:7            Constant:
0:7              0 (const int)
0:?           'input[2].f' (layout( location=3) in float)
0:7        move second child to first child ( temp 4-component vector of float)
0:7          pos: direct index for structure ( temp 4-component vector of float)
0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:7              Constant:
0:7                2 (const int)
0:7            Constant:
0:7              1 (const int)
0:7          direct index ( in 4-component vector of float FragCoord)
0:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
0:7            Constant:
0:7              2 (const int)
0:7      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:7        Function Call: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float)
0:?           'i' ( temp int)
0:?           'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'i' (layout( location=0) flat in int)
0:?     'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
0:?     'input[0].f' (layout( location=1) in float)
0:?     'input[1].f' (layout( location=2) in float)
0:?     'input[2].f' (layout( location=3) in float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:7  Function Definition: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float)
0:7    Function Parameters: 
0:7      'i' ( in int)
0:7      'input' ( in 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:?     Sequence
0:9      move second child to first child ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:9        'input' ( in 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:9        'a' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:11      Branch: Return with expression
0:11        pos: direct index for structure ( temp 4-component vector of float)
0:11          direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:11            'a' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:11            Constant:
0:11              1 (const int)
0:11          Constant:
0:11            1 (const int)
0:7  Function Definition: main( ( temp void)
0:7    Function Parameters: 
0:?     Sequence
0:7      move second child to first child ( temp int)
0:?         'i' ( temp int)
0:?         'i' (layout( location=0) flat in int)
0:7      Sequence
0:7        move second child to first child ( temp float)
0:7          f: direct index for structure ( temp float)
0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:7              Constant:
0:7                0 (const int)
0:7            Constant:
0:7              0 (const int)
0:?           'input[0].f' (layout( location=1) in float)
0:7        move second child to first child ( temp 4-component vector of float)
0:7          pos: direct index for structure ( temp 4-component vector of float)
0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:7              Constant:
0:7                0 (const int)
0:7            Constant:
0:7              1 (const int)
0:7          direct index ( in 4-component vector of float FragCoord)
0:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
0:7            Constant:
0:7              0 (const int)
0:7        move second child to first child ( temp float)
0:7          f: direct index for structure ( temp float)
0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:7              Constant:
0:7                1 (const int)
0:7            Constant:
0:7              0 (const int)
0:?           'input[1].f' (layout( location=2) in float)
0:7        move second child to first child ( temp 4-component vector of float)
0:7          pos: direct index for structure ( temp 4-component vector of float)
0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:7              Constant:
0:7                1 (const int)
0:7            Constant:
0:7              1 (const int)
0:7          direct index ( in 4-component vector of float FragCoord)
0:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
0:7            Constant:
0:7              1 (const int)
0:7        move second child to first child ( temp float)
0:7          f: direct index for structure ( temp float)
0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:7              Constant:
0:7                2 (const int)
0:7            Constant:
0:7              0 (const int)
0:?           'input[2].f' (layout( location=3) in float)
0:7        move second child to first child ( temp 4-component vector of float)
0:7          pos: direct index for structure ( temp 4-component vector of float)
0:7            direct index ( temp structure{ temp float f,  temp 4-component vector of float pos})
0:?               'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:7              Constant:
0:7                2 (const int)
0:7            Constant:
0:7              1 (const int)
0:7          direct index ( in 4-component vector of float FragCoord)
0:?             'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
0:7            Constant:
0:7              2 (const int)
0:7      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:7        Function Call: @main(i1;struct-S-f1-vf41[3]; ( temp 4-component vector of float)
0:?           'i' ( temp int)
0:?           'input' ( temp 3-element array of structure{ temp float f,  temp 4-component vector of float pos})
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'i' (layout( location=0) flat in int)
0:?     'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
0:?     'input[0].f' (layout( location=1) in float)
0:?     'input[1].f' (layout( location=2) in float)
0:?     'input[2].f' (layout( location=3) in float)

error: SPIRV-Tools Validation Errors
error: According to the Vulkan spec BuiltIn FragCoord variable needs to be a 4-component 32-bit float vector. ID <41> (OpVariable) is not a float vector.
  %input_pos = OpVariable %_ptr_Input__arr_v4float_uint_3 Input

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 30 35 41 46 53 60
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 10  "S"
                              MemberName 10(S) 0  "f"
                              MemberName 10(S) 1  "pos"
                              Name 18  "@main(i1;struct-S-f1-vf41[3];"
                              Name 16  "i"
                              Name 17  "input"
                              Name 20  "a"
                              Name 28  "i"
                              Name 30  "i"
                              Name 32  "input"
                              Name 35  "input[0].f"
                              Name 41  "input.pos"
                              Name 46  "input[1].f"
                              Name 53  "input[2].f"
                              Name 60  "@entryPointOutput"
                              Name 61  "param"
                              Name 63  "param"
                              Decorate 30(i) Flat
                              Decorate 30(i) Location 0
                              Decorate 35(input[0].f) Location 1
                              Decorate 41(input.pos) BuiltIn FragCoord
                              Decorate 46(input[1].f) Location 2
                              Decorate 53(input[2].f) Location 3
                              Decorate 60(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Function 6(int)
               8:             TypeFloat 32
               9:             TypeVector 8(float) 4
           10(S):             TypeStruct 8(float) 9(fvec4)
              11:             TypeInt 32 0
              12:     11(int) Constant 3
              13:             TypeArray 10(S) 12
              14:             TypePointer Function 13
              15:             TypeFunction 9(fvec4) 7(ptr) 14(ptr)
              22:      6(int) Constant 1
              23:             TypePointer Function 9(fvec4)
              29:             TypePointer Input 6(int)
           30(i):     29(ptr) Variable Input
              33:      6(int) Constant 0
              34:             TypePointer Input 8(float)
  35(input[0].f):     34(ptr) Variable Input
              37:             TypePointer Function 8(float)
              39:             TypeArray 9(fvec4) 12
              40:             TypePointer Input 39
   41(input.pos):     40(ptr) Variable Input
              42:             TypePointer Input 9(fvec4)
  46(input[1].f):     34(ptr) Variable Input
              52:      6(int) Constant 2
  53(input[2].f):     34(ptr) Variable Input
              59:             TypePointer Output 9(fvec4)
60(@entryPointOutput):     59(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
           28(i):      7(ptr) Variable Function
       32(input):     14(ptr) Variable Function
       61(param):      7(ptr) Variable Function
       63(param):     14(ptr) Variable Function
              31:      6(int) Load 30(i)
                              Store 28(i) 31
              36:    8(float) Load 35(input[0].f)
              38:     37(ptr) AccessChain 32(input) 33 33
                              Store 38 36
              43:     42(ptr) AccessChain 41(input.pos) 33
              44:    9(fvec4) Load 43
              45:     23(ptr) AccessChain 32(input) 33 22
                              Store 45 44
              47:    8(float) Load 46(input[1].f)
              48:     37(ptr) AccessChain 32(input) 22 33
                              Store 48 47
              49:     42(ptr) AccessChain 41(input.pos) 22
              50:    9(fvec4) Load 49
              51:     23(ptr) AccessChain 32(input) 22 22
                              Store 51 50
              54:    8(float) Load 53(input[2].f)
              55:     37(ptr) AccessChain 32(input) 52 33
                              Store 55 54
              56:     42(ptr) AccessChain 41(input.pos) 52
              57:    9(fvec4) Load 56
              58:     23(ptr) AccessChain 32(input) 52 22
                              Store 58 57
              62:      6(int) Load 28(i)
                              Store 61(param) 62
              64:          13 Load 32(input)
                              Store 63(param) 64
              65:    9(fvec4) FunctionCall 18(@main(i1;struct-S-f1-vf41[3];) 61(param) 63(param)
                              Store 60(@entryPointOutput) 65
                              Return
                              FunctionEnd
18(@main(i1;struct-S-f1-vf41[3];):    9(fvec4) Function None 15
           16(i):      7(ptr) FunctionParameter
       17(input):     14(ptr) FunctionParameter
              19:             Label
           20(a):     14(ptr) Variable Function
              21:          13 Load 20(a)
                              Store 17(input) 21
              24:     23(ptr) AccessChain 20(a) 22 22
              25:    9(fvec4) Load 24
                              ReturnValue 25
                              FunctionEnd
