hlsl.flattenOpaque.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 185

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 120
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 38  "tex"
                              Name 82  "s.s2D"
                              Name 97  "s2.s2D"
                              Name 100  "s2.tex"
                              Name 120  "@entryPointOutput"
                              Decorate 38(tex) DescriptorSet 0
                              Decorate 38(tex) Binding 0
                              Decorate 82(s.s2D) DescriptorSet 0
                              Decorate 82(s.s2D) Binding 0
                              Decorate 97(s2.s2D) DescriptorSet 0
                              Decorate 97(s2.s2D) Binding 0
                              Decorate 100(s2.tex) DescriptorSet 0
                              Decorate 100(s2.tex) Binding 0
                              Decorate 120(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeSampler
               9:             TypeFloat 32
              10:             TypeVector 9(float) 4
              15:             TypeVector 9(float) 2
              22:             TypeImage 9(float) 2D sampled format:Unknown
              37:             TypePointer UniformConstant 22
         38(tex):     37(ptr) Variable UniformConstant
              45:             TypeSampledImage 22
              47:    9(float) Constant 1045220557
              48:    9(float) Constant 1050253722
              49:   15(fvec2) ConstantComposite 47 48
              81:             TypePointer UniformConstant 6
       82(s.s2D):     81(ptr) Variable UniformConstant
      97(s2.s2D):     81(ptr) Variable UniformConstant
     100(s2.tex):     37(ptr) Variable UniformConstant
             119:             TypePointer Output 10(fvec4)
120(@entryPointOutput):    119(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
             134:           6 Load 82(s.s2D)
             158:          22 Load 38(tex)
             161:          45 SampledImage 158 134
             162:   10(fvec4) ImageSampleImplicitLod 161 49
             138:           6 Load 82(s.s2D)
             164:          22 Load 38(tex)
             167:          45 SampledImage 164 138
             169:   10(fvec4) ImageSampleImplicitLod 167 49
             142:   10(fvec4) FAdd 162 169
             143:           6 Load 97(s2.s2D)
             145:          22 Load 100(s2.tex)
             175:          45 SampledImage 145 143
             176:   10(fvec4) ImageSampleImplicitLod 175 49
             149:   10(fvec4) FAdd 142 176
             150:           6 Load 97(s2.s2D)
             152:          22 Load 100(s2.tex)
             182:          45 SampledImage 152 150
             184:   10(fvec4) ImageSampleImplicitLod 182 49
             156:   10(fvec4) FAdd 149 184
                              Store 120(@entryPointOutput) 156
                              Return
                              FunctionEnd
