hlsl.flattenOpaqueInitMix.vert
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 97

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 57
                              Source HLSL 500
                              Name 4  "main"
                              Name 44  "g_tInputTexture_sampler"
                              Name 47  "g_tInputTexture"
                              Name 57  "@entryPointOutput"
                              Decorate 44(g_tInputTexture_sampler) DescriptorSet 0
                              Decorate 44(g_tInputTexture_sampler) Binding 0
                              Decorate 47(g_tInputTexture) DescriptorSet 0
                              Decorate 47(g_tInputTexture) Binding 0
                              Decorate 57(@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
              28:             TypeSampledImage 8
              36:             TypeVector 7(float) 2
              38:    7(float) Constant 0
              43:             TypePointer UniformConstant 6
44(g_tInputTexture_sampler):     43(ptr) Variable UniformConstant
              46:             TypePointer UniformConstant 8
47(g_tInputTexture):     46(ptr) Variable UniformConstant
              49:    7(float) Constant 1056964608
              56:             TypePointer Output 11(fvec4)
57(@entryPointOutput):     56(ptr) Variable Output
              96:   36(fvec2) ConstantComposite 49 49
         4(main):           2 Function None 3
               5:             Label
              63:           6 Load 44(g_tInputTexture_sampler)
              64:           8 Load 47(g_tInputTexture)
              73:          28 SampledImage 64 63
              79:   11(fvec4) ImageSampleExplicitLod 73 96 Lod 38
                              Store 57(@entryPointOutput) 79
                              Return
                              FunctionEnd
