spv.register.autoassign.frag
// Module Version 10000
// Generated by (magic number): 80006
// 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 31(g_tTex2) Binding 14
                              Decorate 33(g_sSamp2) DescriptorSet 0
                              Decorate 33(g_sSamp2) Binding 6
                              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 68(g_tTex4) Binding 15
                              Decorate 73(g_sSamp4) DescriptorSet 0
                              Decorate 73(g_sSamp4) Binding 8
                              Decorate 88(g_tTex5) DescriptorSet 0
                              Decorate 88(g_tTex5) Binding 16
                              Decorate 90(g_sSamp5) DescriptorSet 0
                              Decorate 90(g_sSamp5) Binding 9
                              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 101 Binding 20
                              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
