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

                              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 1
                              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
              98:   36(fvec2) ConstantComposite 49 49
         4(main):           2 Function None 3
               5:             Label
              64:           6 Load 44(g_tInputTexture_sampler)
              65:           8 Load 47(g_tInputTexture)
              75:          28 SampledImage 65 64
              81:   11(fvec4) ImageSampleExplicitLod 75 98 Lod 38
                              Store 57(@entryPointOutput) 81
                              Return
                              FunctionEnd
