spv.register.noautoassign.frag
// Module Version 10000
// Generated by (magic number): 80005
// Id's are bound by 155

                              Capability Shader
                              Capability Sampled1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main_ep" 151
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main_ep"
                              Name 9  "Func1("
                              Name 11  "Func2("
                              Name 13  "Func2_unused("
                              Name 15  "PS_OUTPUT"
                              MemberName 15(PS_OUTPUT) 0  "Color"
                              Name 17  "@main_ep("
                              Name 21  "g_tTex1"
                              Name 25  "g_sSamp1"
                              Name 31  "g_tTex2"
                              Name 33  "g_sSamp2"
                              Name 43  "g_tTex3"
                              Name 50  "g_sSamp3"
                              Name 68  "g_tTex4"
                              Name 73  "g_sSamp4"
                              Name 88  "g_tTex5"
                              Name 90  "g_sSamp5"
                              Name 97  "MyStruct_t"
                              MemberName 97(MyStruct_t) 0  "a"
                              MemberName 97(MyStruct_t) 1  "b"
                              MemberName 97(MyStruct_t) 2  "c"
                              Name 99  "$Global"
                              MemberName 99($Global) 0  "mystruct"
                              MemberName 99($Global) 1  "myfloat4_a"
                              MemberName 99($Global) 2  "myfloat4_b"
                              MemberName 99($Global) 3  "myint4_a"
                              Name 101  ""
                              Name 123  "g_tTex_unused1"
                              Name 125  "g_sSamp_unused1"
                              Name 130  "g_tTex_unused2"
                              Name 132  "g_sSamp_unused2"
                              Name 141  "psout"
                              Name 151  "@entryPointOutput.Color"
                              Name 154  "g_tTex_unused3"
                              Decorate 21(g_tTex1) DescriptorSet 0
                              Decorate 21(g_tTex1) Binding 11
                              Decorate 25(g_sSamp1) DescriptorSet 0
                              Decorate 25(g_sSamp1) Binding 5
                              Decorate 31(g_tTex2) DescriptorSet 0
                              Decorate 33(g_sSamp2) DescriptorSet 0
                              Decorate 43(g_tTex3) DescriptorSet 0
                              Decorate 43(g_tTex3) Binding 13
                              Decorate 50(g_sSamp3) DescriptorSet 0
                              Decorate 50(g_sSamp3) Binding 7
                              Decorate 68(g_tTex4) DescriptorSet 0
                              Decorate 73(g_sSamp4) DescriptorSet 0
                              Decorate 88(g_tTex5) DescriptorSet 0
                              Decorate 90(g_sSamp5) DescriptorSet 0
                              MemberDecorate 97(MyStruct_t) 0 Offset 0
                              MemberDecorate 97(MyStruct_t) 1 Offset 4
                              MemberDecorate 97(MyStruct_t) 2 Offset 16
                              MemberDecorate 99($Global) 0 Offset 0
                              MemberDecorate 99($Global) 1 Offset 32
                              MemberDecorate 99($Global) 2 Offset 48
                              MemberDecorate 99($Global) 3 Offset 64
                              Decorate 99($Global) Block
                              Decorate 101 DescriptorSet 0
                              Decorate 123(g_tTex_unused1) DescriptorSet 0
                              Decorate 123(g_tTex_unused1) Binding 10
                              Decorate 125(g_sSamp_unused1) DescriptorSet 0
                              Decorate 130(g_tTex_unused2) DescriptorSet 0
                              Decorate 130(g_tTex_unused2) Binding 12
                              Decorate 132(g_sSamp_unused2) DescriptorSet 0
                              Decorate 151(@entryPointOutput.Color) Location 0
                              Decorate 154(g_tTex_unused3) DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
   15(PS_OUTPUT):             TypeStruct 7(fvec4)
              16:             TypeFunction 15(PS_OUTPUT)
              19:             TypeImage 6(float) 1D sampled format:Unknown
              20:             TypePointer UniformConstant 19
     21(g_tTex1):     20(ptr) Variable UniformConstant
              23:             TypeSampler
              24:             TypePointer UniformConstant 23
    25(g_sSamp1):     24(ptr) Variable UniformConstant
              27:             TypeSampledImage 19
              29:    6(float) Constant 1036831949
     31(g_tTex2):     20(ptr) Variable UniformConstant
    33(g_sSamp2):     24(ptr) Variable UniformConstant
              36:    6(float) Constant 1045220557
              39:             TypeInt 32 0
              40:     39(int) Constant 2
              41:             TypeArray 19 40
              42:             TypePointer UniformConstant 41
     43(g_tTex3):     42(ptr) Variable UniformConstant
              44:             TypeInt 32 1
              45:     44(int) Constant 0
              48:             TypeArray 23 40
              49:             TypePointer UniformConstant 48
    50(g_sSamp3):     49(ptr) Variable UniformConstant
              54:    6(float) Constant 1050253722
              57:     44(int) Constant 1
              65:     39(int) Constant 3
              66:             TypeArray 19 65
              67:             TypePointer UniformConstant 66
     68(g_tTex4):     67(ptr) Variable UniformConstant
              71:             TypeArray 23 65
              72:             TypePointer UniformConstant 71
    73(g_sSamp4):     72(ptr) Variable UniformConstant
              77:    6(float) Constant 1053609165
              80:     44(int) Constant 2
     88(g_tTex5):     20(ptr) Variable UniformConstant
    90(g_sSamp5):     24(ptr) Variable UniformConstant
              93:    6(float) Constant 1056964608
              96:             TypeVector 6(float) 3
  97(MyStruct_t):             TypeStruct 44(int) 6(float) 96(fvec3)
              98:             TypeVector 44(int) 4
     99($Global):             TypeStruct 97(MyStruct_t) 7(fvec4) 7(fvec4) 98(ivec4)
             100:             TypePointer Uniform 99($Global)
             101:    100(ptr) Variable Uniform
             102:     39(int) Constant 1
             103:             TypePointer Uniform 6(float)
123(g_tTex_unused1):     20(ptr) Variable UniformConstant
125(g_sSamp_unused1):     24(ptr) Variable UniformConstant
             128:    6(float) Constant 1066192077
130(g_tTex_unused2):     20(ptr) Variable UniformConstant
132(g_sSamp_unused2):     24(ptr) Variable UniformConstant
             135:    6(float) Constant 1067030938
             140:             TypePointer Function 15(PS_OUTPUT)
             145:             TypePointer Function 7(fvec4)
             150:             TypePointer Output 7(fvec4)
151(@entryPointOutput.Color):    150(ptr) Variable Output
154(g_tTex_unused3):     20(ptr) Variable UniformConstant
      4(main_ep):           2 Function None 3
               5:             Label
             152:15(PS_OUTPUT) FunctionCall 17(@main_ep()
             153:    7(fvec4) CompositeExtract 152 0
                              Store 151(@entryPointOutput.Color) 153
                              Return
                              FunctionEnd
       9(Func1():    7(fvec4) Function None 8
              10:             Label
              22:          19 Load 21(g_tTex1)
              26:          23 Load 25(g_sSamp1)
              28:          27 SampledImage 22 26
              30:    7(fvec4) ImageSampleImplicitLod 28 29
              32:          19 Load 31(g_tTex2)
              34:          23 Load 33(g_sSamp2)
              35:          27 SampledImage 32 34
              37:    7(fvec4) ImageSampleImplicitLod 35 36
              38:    7(fvec4) FAdd 30 37
              46:     20(ptr) AccessChain 43(g_tTex3) 45
              47:          19 Load 46
              51:     24(ptr) AccessChain 50(g_sSamp3) 45
              52:          23 Load 51
              53:          27 SampledImage 47 52
              55:    7(fvec4) ImageSampleImplicitLod 53 54
              56:    7(fvec4) FAdd 38 55
              58:     20(ptr) AccessChain 43(g_tTex3) 57
              59:          19 Load 58
              60:     24(ptr) AccessChain 50(g_sSamp3) 57
              61:          23 Load 60
              62:          27 SampledImage 59 61
              63:    7(fvec4) ImageSampleImplicitLod 62 54
              64:    7(fvec4) FAdd 56 63
              69:     20(ptr) AccessChain 68(g_tTex4) 57
              70:          19 Load 69
              74:     24(ptr) AccessChain 73(g_sSamp4) 57
              75:          23 Load 74
              76:          27 SampledImage 70 75
              78:    7(fvec4) ImageSampleImplicitLod 76 77
              79:    7(fvec4) FAdd 64 78
              81:     20(ptr) AccessChain 68(g_tTex4) 80
              82:          19 Load 81
              83:     24(ptr) AccessChain 73(g_sSamp4) 80
              84:          23 Load 83
              85:          27 SampledImage 82 84
              86:    7(fvec4) ImageSampleImplicitLod 85 77
              87:    7(fvec4) FAdd 79 86
              89:          19 Load 88(g_tTex5)
              91:          23 Load 90(g_sSamp5)
              92:          27 SampledImage 89 91
              94:    7(fvec4) ImageSampleImplicitLod 92 93
              95:    7(fvec4) FAdd 87 94
             104:    103(ptr) AccessChain 101 45 80 102
             105:    6(float) Load 104
             106:    7(fvec4) CompositeConstruct 105 105 105 105
             107:    7(fvec4) FAdd 95 106
                              ReturnValue 107
                              FunctionEnd
      11(Func2():    7(fvec4) Function None 8
              12:             Label
             110:          19 Load 21(g_tTex1)
             111:          23 Load 25(g_sSamp1)
             112:          27 SampledImage 110 111
             113:    7(fvec4) ImageSampleImplicitLod 112 29
             114:     20(ptr) AccessChain 43(g_tTex3) 57
             115:          19 Load 114
             116:     24(ptr) AccessChain 50(g_sSamp3) 57
             117:          23 Load 116
             118:          27 SampledImage 115 117
             119:    7(fvec4) ImageSampleImplicitLod 118 54
             120:    7(fvec4) FAdd 113 119
                              ReturnValue 120
                              FunctionEnd
13(Func2_unused():    7(fvec4) Function None 8
              14:             Label
             124:          19 Load 123(g_tTex_unused1)
             126:          23 Load 125(g_sSamp_unused1)
             127:          27 SampledImage 124 126
             129:    7(fvec4) ImageSampleImplicitLod 127 128
             131:          19 Load 130(g_tTex_unused2)
             133:          23 Load 132(g_sSamp_unused2)
             134:          27 SampledImage 131 133
             136:    7(fvec4) ImageSampleImplicitLod 134 135
             137:    7(fvec4) FAdd 129 136
                              ReturnValue 137
                              FunctionEnd
   17(@main_ep():15(PS_OUTPUT) Function None 16
              18:             Label
      141(psout):    140(ptr) Variable Function
             142:    7(fvec4) FunctionCall 9(Func1()
             143:    7(fvec4) FunctionCall 11(Func2()
             144:    7(fvec4) FAdd 142 143
             146:    145(ptr) AccessChain 141(psout) 45
                              Store 146 144
             147:15(PS_OUTPUT) Load 141(psout)
                              ReturnValue 147
                              FunctionEnd
