hlsl.flattenOpaqueInit.vert
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 134

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 80
                              Source HLSL 500
                              Name 4  "main"
                              Name 43  "g_tInputTexture_sampler"
                              Name 47  "g_tInputTexture"
                              Name 80  "@entryPointOutput"
                              Decorate 43(g_tInputTexture_sampler) DescriptorSet 0
                              Decorate 47(g_tInputTexture) DescriptorSet 0
                              Decorate 80(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeSampler
               7:             TypeFloat 32
               8:             TypeImage 7(float) 2D sampled format:Unknown
              11:             TypeVector 7(float) 4
              31:             TypeSampledImage 8
              33:             TypeVector 7(float) 2
              34:    7(float) Constant 1050253722
              35:    7(float) Constant 1053609165
              36:   33(fvec2) ConstantComposite 34 35
              37:    7(float) Constant 0
              42:             TypePointer UniformConstant 6
43(g_tInputTexture_sampler):     42(ptr) Variable UniformConstant
              46:             TypePointer UniformConstant 8
47(g_tInputTexture):     46(ptr) Variable UniformConstant
              79:             TypePointer Output 11(fvec4)
80(@entryPointOutput):     79(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              90:           6 Load 43(g_tInputTexture_sampler)
              91:           8 Load 47(g_tInputTexture)
             111:          31 SampledImage 91 90
             112:   11(fvec4) ImageSampleExplicitLod 111 36 Lod 37
             115:           6 Load 43(g_tInputTexture_sampler)
             117:           8 Load 47(g_tInputTexture)
             125:          31 SampledImage 117 115
             126:   11(fvec4) ImageSampleExplicitLod 125 36 Lod 37
              99:   11(fvec4) FAdd 112 126
             132:          31 SampledImage 91 90
             133:   11(fvec4) ImageSampleExplicitLod 132 36 Lod 37
             104:   11(fvec4) FAdd 99 133
                              Store 80(@entryPointOutput) 104
                              Return
                              FunctionEnd
