hlsl.struct.frag
WARNING: 0:26: 'register' : ignoring shader_profile 
WARNING: 0:27: 'register' : ignoring shader_profile 
WARNING: 0:30: 'register' : ignoring shader_profile 

Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:40  Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; ( temp 4-component vector of float)
0:40    Function Parameters: 
0:40      'input' ( in 4-component vector of float)
0:40      's' ( in structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:?     Sequence
0:45      Compare Equal ( temp bool)
0:45        's3' ( temp structure{ temp 3-component vector of bool b3})
0:45        's3' ( temp structure{ temp 3-component vector of bool b3})
0:46      move second child to first child ( temp 4-component vector of float)
0:46        i: direct index for structure ( temp 4-component vector of float)
0:46          's2' ( global structure{ temp 4-component vector of float i})
0:46          Constant:
0:46            0 (const int)
0:46        ff4: direct index for structure ( temp 4-component vector of float)
0:46          's' ( in structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:46          Constant:
0:46            7 (const int)
0:50      move second child to first child ( temp structure{})
0:50        'e' ( temp structure{})
0:50        e: direct index for structure ( temp structure{})
0:50          'ce' ( temp structure{ temp structure{} e})
0:50          Constant:
0:50            0 (const int)
0:52      Branch: Return with expression
0:52        'input' ( in 4-component vector of float)
0:40  Function Definition: PixelShaderFunction( ( temp void)
0:40    Function Parameters: 
0:?     Sequence
0:40      move second child to first child ( temp 4-component vector of float)
0:?         'input' ( temp 4-component vector of float)
0:?         'input' (layout( location=0) in 4-component vector of float)
0:40      Sequence
0:40        move second child to first child ( temp 4-component vector of float)
0:40          a: direct index for structure ( temp 4-component vector of float)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              0 (const int)
0:?           's.a' (layout( location=1) smooth in 4-component vector of float)
0:40        move second child to first child ( temp bool)
0:40          b: direct index for structure ( temp bool)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              1 (const int)
0:?           's.b' (layout( location=2) flat in bool)
0:40        move second child to first child ( temp 1-component vector of float)
0:40          c: direct index for structure ( temp 1-component vector of float)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              2 (const int)
0:?           's.c' (layout( location=3) centroid noperspective in 1-component vector of float)
0:40        move second child to first child ( temp 2-component vector of float)
0:40          d: direct index for structure ( temp 2-component vector of float)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              3 (const int)
0:?           's.d' (layout( location=4) centroid sample in 2-component vector of float)
0:40        move second child to first child ( temp bool)
0:40          ff1: direct index for structure ( temp bool)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              4 (const int)
0:?           's.ff1' ( flat in bool Face)
0:40        move second child to first child ( temp bool)
0:40          ff2: direct index for structure ( temp bool)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              5 (const int)
0:?           's.ff2' (layout( location=5) flat in bool)
0:40        move second child to first child ( temp bool)
0:40          ff3: direct index for structure ( temp bool)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              6 (const int)
0:?           's.ff3' (layout( location=6) flat in bool)
0:40        move second child to first child ( temp 4-component vector of float)
0:40          ff4: direct index for structure ( temp 4-component vector of float)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              7 (const int)
0:?           's.ff4' (layout( location=7) in 4-component vector of float)
0:40      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:40        Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; ( temp 4-component vector of float)
0:?           'input' ( temp 4-component vector of float)
0:?           's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp bool b,  temp bool c,  temp 4-component vector of float a,  temp 4-component vector of float d} s1, layout( binding=5 offset=1620) uniform float ff5, layout( binding=8 offset=1636) uniform float ff6})
0:?     's2' ( global structure{ temp 4-component vector of float i})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'input' (layout( location=0) in 4-component vector of float)
0:?     's.ff1' ( flat in bool Face)
0:?     's.a' (layout( location=1) smooth in 4-component vector of float)
0:?     's.b' (layout( location=2) flat in bool)
0:?     's.c' (layout( location=3) centroid noperspective in 1-component vector of float)
0:?     's.d' (layout( location=4) centroid sample in 2-component vector of float)
0:?     's.ff2' (layout( location=5) flat in bool)
0:?     's.ff3' (layout( location=6) flat in bool)
0:?     's.ff4' (layout( location=7) in 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:40  Function Definition: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; ( temp 4-component vector of float)
0:40    Function Parameters: 
0:40      'input' ( in 4-component vector of float)
0:40      's' ( in structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:?     Sequence
0:45      Compare Equal ( temp bool)
0:45        's3' ( temp structure{ temp 3-component vector of bool b3})
0:45        's3' ( temp structure{ temp 3-component vector of bool b3})
0:46      move second child to first child ( temp 4-component vector of float)
0:46        i: direct index for structure ( temp 4-component vector of float)
0:46          's2' ( global structure{ temp 4-component vector of float i})
0:46          Constant:
0:46            0 (const int)
0:46        ff4: direct index for structure ( temp 4-component vector of float)
0:46          's' ( in structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:46          Constant:
0:46            7 (const int)
0:50      move second child to first child ( temp structure{})
0:50        'e' ( temp structure{})
0:50        e: direct index for structure ( temp structure{})
0:50          'ce' ( temp structure{ temp structure{} e})
0:50          Constant:
0:50            0 (const int)
0:52      Branch: Return with expression
0:52        'input' ( in 4-component vector of float)
0:40  Function Definition: PixelShaderFunction( ( temp void)
0:40    Function Parameters: 
0:?     Sequence
0:40      move second child to first child ( temp 4-component vector of float)
0:?         'input' ( temp 4-component vector of float)
0:?         'input' (layout( location=0) in 4-component vector of float)
0:40      Sequence
0:40        move second child to first child ( temp 4-component vector of float)
0:40          a: direct index for structure ( temp 4-component vector of float)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              0 (const int)
0:?           's.a' (layout( location=1) smooth in 4-component vector of float)
0:40        move second child to first child ( temp bool)
0:40          b: direct index for structure ( temp bool)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              1 (const int)
0:?           's.b' (layout( location=2) flat in bool)
0:40        move second child to first child ( temp 1-component vector of float)
0:40          c: direct index for structure ( temp 1-component vector of float)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              2 (const int)
0:?           's.c' (layout( location=3) centroid noperspective in 1-component vector of float)
0:40        move second child to first child ( temp 2-component vector of float)
0:40          d: direct index for structure ( temp 2-component vector of float)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              3 (const int)
0:?           's.d' (layout( location=4) centroid sample in 2-component vector of float)
0:40        move second child to first child ( temp bool)
0:40          ff1: direct index for structure ( temp bool)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              4 (const int)
0:?           's.ff1' ( flat in bool Face)
0:40        move second child to first child ( temp bool)
0:40          ff2: direct index for structure ( temp bool)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              5 (const int)
0:?           's.ff2' (layout( location=5) flat in bool)
0:40        move second child to first child ( temp bool)
0:40          ff3: direct index for structure ( temp bool)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              6 (const int)
0:?           's.ff3' (layout( location=6) flat in bool)
0:40        move second child to first child ( temp 4-component vector of float)
0:40          ff4: direct index for structure ( temp 4-component vector of float)
0:?             's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:40            Constant:
0:40              7 (const int)
0:?           's.ff4' (layout( location=7) in 4-component vector of float)
0:40      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:40        Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; ( temp 4-component vector of float)
0:?           'input' ( temp 4-component vector of float)
0:?           's' ( temp structure{ temp 4-component vector of float a,  temp bool b,  temp 1-component vector of float c,  temp 2-component vector of float d,  temp bool ff1,  temp bool ff2,  temp bool ff3,  temp 4-component vector of float ff4})
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform structure{ temp bool b,  temp bool c,  temp 4-component vector of float a,  temp 4-component vector of float d} s1, layout( binding=5 offset=1620) uniform float ff5, layout( binding=8 offset=1636) uniform float ff6})
0:?     's2' ( global structure{ temp 4-component vector of float i})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'input' (layout( location=0) in 4-component vector of float)
0:?     's.ff1' ( flat in bool Face)
0:?     's.a' (layout( location=1) smooth in 4-component vector of float)
0:?     's.b' (layout( location=2) flat in bool)
0:?     's.c' (layout( location=3) centroid noperspective in 1-component vector of float)
0:?     's.d' (layout( location=4) centroid sample in 2-component vector of float)
0:?     's.ff2' (layout( location=5) flat in bool)
0:?     's.ff3' (layout( location=6) flat in bool)
0:?     's.ff4' (layout( location=7) in 4-component vector of float)

error: SPIRV-Tools Validation Errors
error: If OpTypeBool is stored in conjunction with OpVariable, it can only be used with non-externally visible shader Storage Classes: Workgroup, CrossWorkgroup, Private, and Function
  %s_b = OpVariable %_ptr_Input_bool Input

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 51 54 59 65 71 76 80 84 87 91
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "PixelShaderFunction"
                              Name 11  "IN_S"
                              MemberName 11(IN_S) 0  "a"
                              MemberName 11(IN_S) 1  "b"
                              MemberName 11(IN_S) 2  "c"
                              MemberName 11(IN_S) 3  "d"
                              MemberName 11(IN_S) 4  "ff1"
                              MemberName 11(IN_S) 5  "ff2"
                              MemberName 11(IN_S) 6  "ff3"
                              MemberName 11(IN_S) 7  "ff4"
                              Name 16  "@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;"
                              Name 14  "input"
                              Name 15  "s"
                              Name 19  "FS"
                              MemberName 19(FS) 0  "b3"
                              Name 21  "s3"
                              Name 28  ""
                              MemberName 28 0  "i"
                              Name 30  "s2"
                              Name 38  "empty"
                              Name 40  "e"
                              Name 41  "containEmpty"
                              MemberName 41(containEmpty) 0  "e"
                              Name 43  "ce"
                              Name 49  "input"
                              Name 51  "input"
                              Name 53  "s"
                              Name 54  "s.a"
                              Name 59  "s.b"
                              Name 65  "s.c"
                              Name 71  "s.d"
                              Name 76  "s.ff1"
                              Name 80  "s.ff2"
                              Name 84  "s.ff3"
                              Name 87  "s.ff4"
                              Name 91  "@entryPointOutput"
                              Name 92  "param"
                              Name 94  "param"
                              Name 98  "myS"
                              MemberName 98(myS) 0  "b"
                              MemberName 98(myS) 1  "c"
                              MemberName 98(myS) 2  "a"
                              MemberName 98(myS) 3  "d"
                              Name 99  "$Global"
                              MemberName 99($Global) 0  "s1"
                              MemberName 99($Global) 1  "ff5"
                              MemberName 99($Global) 2  "ff6"
                              Name 101  ""
                              Decorate 51(input) Location 0
                              Decorate 54(s.a) Location 1
                              Decorate 59(s.b) Flat
                              Decorate 59(s.b) Location 2
                              Decorate 65(s.c) NoPerspective
                              Decorate 65(s.c) Centroid
                              Decorate 65(s.c) Location 3
                              Decorate 71(s.d) Centroid
                              Decorate 71(s.d) Location 4
                              Decorate 76(s.ff1) Flat
                              Decorate 76(s.ff1) BuiltIn FrontFacing
                              Decorate 80(s.ff2) Flat
                              Decorate 80(s.ff2) Location 5
                              Decorate 84(s.ff3) Flat
                              Decorate 84(s.ff3) Location 6
                              Decorate 87(s.ff4) Location 7
                              Decorate 91(@entryPointOutput) Location 0
                              MemberDecorate 98(myS) 0 Offset 0
                              MemberDecorate 98(myS) 1 Offset 4
                              MemberDecorate 98(myS) 2 Offset 16
                              MemberDecorate 98(myS) 3 Offset 32
                              MemberDecorate 99($Global) 0 Offset 0
                              MemberDecorate 99($Global) 1 Offset 1620
                              MemberDecorate 99($Global) 2 Offset 1636
                              Decorate 99($Global) Block
                              Decorate 101 DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
               9:             TypeBool
              10:             TypeVector 6(float) 2
        11(IN_S):             TypeStruct 7(fvec4) 9(bool) 6(float) 10(fvec2) 9(bool) 9(bool) 9(bool) 7(fvec4)
              12:             TypePointer Function 11(IN_S)
              13:             TypeFunction 7(fvec4) 8(ptr) 12(ptr)
              18:             TypeVector 9(bool) 3
          19(FS):             TypeStruct 18(bvec3)
              20:             TypePointer Function 19(FS)
              28:             TypeStruct 7(fvec4)
              29:             TypePointer Private 28(struct)
          30(s2):     29(ptr) Variable Private
              31:             TypeInt 32 1
              32:     31(int) Constant 0
              33:     31(int) Constant 7
              36:             TypePointer Private 7(fvec4)
       38(empty):             TypeStruct
              39:             TypePointer Function 38(empty)
41(containEmpty):             TypeStruct 38(empty)
              42:             TypePointer Function 41(containEmpty)
              50:             TypePointer Input 7(fvec4)
       51(input):     50(ptr) Variable Input
         54(s.a):     50(ptr) Variable Input
              57:     31(int) Constant 1
              58:             TypePointer Input 9(bool)
         59(s.b):     58(ptr) Variable Input
              61:             TypePointer Function 9(bool)
              63:     31(int) Constant 2
              64:             TypePointer Input 6(float)
         65(s.c):     64(ptr) Variable Input
              67:             TypePointer Function 6(float)
              69:     31(int) Constant 3
              70:             TypePointer Input 10(fvec2)
         71(s.d):     70(ptr) Variable Input
              73:             TypePointer Function 10(fvec2)
              75:     31(int) Constant 4
       76(s.ff1):     58(ptr) Variable Input
              79:     31(int) Constant 5
       80(s.ff2):     58(ptr) Variable Input
              83:     31(int) Constant 6
       84(s.ff3):     58(ptr) Variable Input
       87(s.ff4):     50(ptr) Variable Input
              90:             TypePointer Output 7(fvec4)
91(@entryPointOutput):     90(ptr) Variable Output
              97:             TypeInt 32 0
         98(myS):             TypeStruct 97(int) 97(int) 7(fvec4) 7(fvec4)
     99($Global):             TypeStruct 98(myS) 6(float) 6(float)
             100:             TypePointer Uniform 99($Global)
             101:    100(ptr) Variable Uniform
4(PixelShaderFunction):           2 Function None 3
               5:             Label
       49(input):      8(ptr) Variable Function
           53(s):     12(ptr) Variable Function
       92(param):      8(ptr) Variable Function
       94(param):     12(ptr) Variable Function
              52:    7(fvec4) Load 51(input)
                              Store 49(input) 52
              55:    7(fvec4) Load 54(s.a)
              56:      8(ptr) AccessChain 53(s) 32
                              Store 56 55
              60:     9(bool) Load 59(s.b)
              62:     61(ptr) AccessChain 53(s) 57
                              Store 62 60
              66:    6(float) Load 65(s.c)
              68:     67(ptr) AccessChain 53(s) 63
                              Store 68 66
              72:   10(fvec2) Load 71(s.d)
              74:     73(ptr) AccessChain 53(s) 69
                              Store 74 72
              77:     9(bool) Load 76(s.ff1)
              78:     61(ptr) AccessChain 53(s) 75
                              Store 78 77
              81:     9(bool) Load 80(s.ff2)
              82:     61(ptr) AccessChain 53(s) 79
                              Store 82 81
              85:     9(bool) Load 84(s.ff3)
              86:     61(ptr) AccessChain 53(s) 83
                              Store 86 85
              88:    7(fvec4) Load 87(s.ff4)
              89:      8(ptr) AccessChain 53(s) 33
                              Store 89 88
              93:    7(fvec4) Load 49(input)
                              Store 92(param) 93
              95:    11(IN_S) Load 53(s)
                              Store 94(param) 95
              96:    7(fvec4) FunctionCall 16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;) 92(param) 94(param)
                              Store 91(@entryPointOutput) 96
                              Return
                              FunctionEnd
16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;):    7(fvec4) Function None 13
       14(input):      8(ptr) FunctionParameter
           15(s):     12(ptr) FunctionParameter
              17:             Label
          21(s3):     20(ptr) Variable Function
           40(e):     39(ptr) Variable Function
          43(ce):     42(ptr) Variable Function
              22:      19(FS) Load 21(s3)
              23:      19(FS) Load 21(s3)
              24:   18(bvec3) CompositeExtract 22 0
              25:   18(bvec3) CompositeExtract 23 0
              26:   18(bvec3) LogicalEqual 24 25
              27:     9(bool) All 26
              34:      8(ptr) AccessChain 15(s) 33
              35:    7(fvec4) Load 34
              37:     36(ptr) AccessChain 30(s2) 32
                              Store 37 35
              44:     39(ptr) AccessChain 43(ce) 32
              45:   38(empty) Load 44
                              Store 40(e) 45
              46:    7(fvec4) Load 14(input)
                              ReturnValue 46
                              FunctionEnd
