hlsl.flattenOpaqueInitMix.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
Shader version: 500
0:? Sequence
0:5  Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
0:5    Function Parameters: 
0:?       'tex.smpl' ( in sampler)
0:?       'tex.tex' ( in texture2D)
0:?       'tex.f' ( in float)
0:?     Sequence
0:6      Branch: Return with expression
0:6        texture ( temp 4-component vector of float)
0:6          Construct combined texture-sampler ( temp sampler2D)
0:?             'tex.tex' ( in texture2D)
0:?             'tex.smpl' ( in sampler)
0:?           Construct vec2 ( temp 2-component vector of float)
0:?             'tex.f' ( in float)
0:?             'tex.f' ( in float)
0:10  Function Definition: @main( ( temp 4-component vector of float)
0:10    Function Parameters: 
0:?     Sequence
0:11      Sequence
0:11        Sequence
0:11          move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f})
0:11            'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f})
0:11            Construct structure ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f})
0:11              'g_tInputTexture_sampler' ( uniform sampler)
0:11              'g_tInputTexture' ( uniform texture2D)
0:11              Constant:
0:11                0.500000
0:11          move second child to first child ( temp sampler)
0:?             'tex.smpl' ( temp sampler)
0:11            smpl: direct index for structure ( temp sampler)
0:11              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f})
0:11              Constant:
0:11                0 (const int)
0:11          move second child to first child ( temp texture2D)
0:?             'tex.tex' ( temp texture2D)
0:11            tex: direct index for structure ( temp texture2D)
0:11              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f})
0:11              Constant:
0:11                1 (const int)
0:11          move second child to first child ( temp float)
0:?             'tex.f' ( temp float)
0:11            f: direct index for structure ( temp float)
0:11              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f})
0:11              Constant:
0:11                2 (const int)
0:12      Branch: Return with expression
0:12        Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
0:?           'tex.smpl' ( temp sampler)
0:?           'tex.tex' ( temp texture2D)
0:?           'tex.f' ( temp float)
0:10  Function Definition: main( ( temp void)
0:10    Function Parameters: 
0:?     Sequence
0:10      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:10        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'g_tInputTexture_sampler' ( uniform sampler)
0:?     'g_tInputTexture' ( uniform texture2D)
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:5  Function Definition: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
0:5    Function Parameters: 
0:?       'tex.smpl' ( in sampler)
0:?       'tex.tex' ( in texture2D)
0:?       'tex.f' ( in float)
0:?     Sequence
0:6      Branch: Return with expression
0:6        texture ( temp 4-component vector of float)
0:6          Construct combined texture-sampler ( temp sampler2D)
0:?             'tex.tex' ( in texture2D)
0:?             'tex.smpl' ( in sampler)
0:?           Construct vec2 ( temp 2-component vector of float)
0:?             'tex.f' ( in float)
0:?             'tex.f' ( in float)
0:10  Function Definition: @main( ( temp 4-component vector of float)
0:10    Function Parameters: 
0:?     Sequence
0:11      Sequence
0:11        Sequence
0:11          move second child to first child ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f})
0:11            'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f})
0:11            Construct structure ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f})
0:11              'g_tInputTexture_sampler' ( uniform sampler)
0:11              'g_tInputTexture' ( uniform texture2D)
0:11              Constant:
0:11                0.500000
0:11          move second child to first child ( temp sampler)
0:?             'tex.smpl' ( temp sampler)
0:11            smpl: direct index for structure ( temp sampler)
0:11              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f})
0:11              Constant:
0:11                0 (const int)
0:11          move second child to first child ( temp texture2D)
0:?             'tex.tex' ( temp texture2D)
0:11            tex: direct index for structure ( temp texture2D)
0:11              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f})
0:11              Constant:
0:11                1 (const int)
0:11          move second child to first child ( temp float)
0:?             'tex.f' ( temp float)
0:11            f: direct index for structure ( temp float)
0:11              'flattenTemp' ( temp structure{ temp sampler smpl,  temp texture2D tex,  temp float f})
0:11              Constant:
0:11                2 (const int)
0:12      Branch: Return with expression
0:12        Function Call: lookUp(struct-FxaaTex-p1-t21-f11; ( temp 4-component vector of float)
0:?           'tex.smpl' ( temp sampler)
0:?           'tex.tex' ( temp texture2D)
0:?           'tex.f' ( temp float)
0:10  Function Definition: main( ( temp void)
0:10    Function Parameters: 
0:?     Sequence
0:10      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:10        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'g_tInputTexture_sampler' ( uniform sampler)
0:?     'g_tInputTexture' ( uniform texture2D)
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 80002
// Id's are bound by 70

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 68
                              Source HLSL 500
                              Name 4  "main"
                              Name 17  "lookUp(struct-FxaaTex-p1-t21-f11;"
                              Name 14  "tex.smpl"
                              Name 15  "tex.tex"
                              Name 16  "tex.f"
                              Name 20  "@main("
                              Name 34  "FxaaTex"
                              MemberName 34(FxaaTex) 0  "smpl"
                              MemberName 34(FxaaTex) 1  "tex"
                              MemberName 34(FxaaTex) 2  "f"
                              Name 36  "flattenTemp"
                              Name 38  "g_tInputTexture_sampler"
                              Name 41  "g_tInputTexture"
                              Name 45  "tex.smpl"
                              Name 50  "tex.tex"
                              Name 54  "tex.f"
                              Name 58  "param"
                              Name 60  "param"
                              Name 62  "param"
                              Name 68  "@entryPointOutput"
                              Decorate 38(g_tInputTexture_sampler) DescriptorSet 0
                              Decorate 41(g_tInputTexture) DescriptorSet 0
                              Decorate 68(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeSampler
               7:             TypePointer Function 6
               8:             TypeFloat 32
               9:             TypeImage 8(float) 2D sampled format:Unknown
              10:             TypePointer Function 9
              11:             TypePointer Function 8(float)
              12:             TypeVector 8(float) 4
              13:             TypeFunction 12(fvec4) 7(ptr) 10(ptr) 11(ptr)
              19:             TypeFunction 12(fvec4)
              24:             TypeSampledImage 9
              28:             TypeVector 8(float) 2
              30:    8(float) Constant 0
     34(FxaaTex):             TypeStruct 6 9 8(float)
              35:             TypePointer Function 34(FxaaTex)
              37:             TypePointer UniformConstant 6
38(g_tInputTexture_sampler):     37(ptr) Variable UniformConstant
              40:             TypePointer UniformConstant 9
41(g_tInputTexture):     40(ptr) Variable UniformConstant
              43:    8(float) Constant 1056964608
              46:             TypeInt 32 1
              47:     46(int) Constant 0
              51:     46(int) Constant 1
              55:     46(int) Constant 2
              67:             TypePointer Output 12(fvec4)
68(@entryPointOutput):     67(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              69:   12(fvec4) FunctionCall 20(@main()
                              Store 68(@entryPointOutput) 69
                              Return
                              FunctionEnd
17(lookUp(struct-FxaaTex-p1-t21-f11;):   12(fvec4) Function None 13
    14(tex.smpl):      7(ptr) FunctionParameter
     15(tex.tex):     10(ptr) FunctionParameter
       16(tex.f):     11(ptr) FunctionParameter
              18:             Label
              22:           9 Load 15(tex.tex)
              23:           6 Load 14(tex.smpl)
              25:          24 SampledImage 22 23
              26:    8(float) Load 16(tex.f)
              27:    8(float) Load 16(tex.f)
              29:   28(fvec2) CompositeConstruct 26 27
              31:   12(fvec4) ImageSampleExplicitLod 25 29 Lod 30
                              ReturnValue 31
                              FunctionEnd
      20(@main():   12(fvec4) Function None 19
              21:             Label
 36(flattenTemp):     35(ptr) Variable Function
    45(tex.smpl):      7(ptr) Variable Function
     50(tex.tex):     10(ptr) Variable Function
       54(tex.f):     11(ptr) Variable Function
       58(param):      7(ptr) Variable Function
       60(param):     10(ptr) Variable Function
       62(param):     11(ptr) Variable Function
              39:           6 Load 38(g_tInputTexture_sampler)
              42:           9 Load 41(g_tInputTexture)
              44: 34(FxaaTex) CompositeConstruct 39 42 43
                              Store 36(flattenTemp) 44
              48:      7(ptr) AccessChain 36(flattenTemp) 47
              49:           6 Load 48
                              Store 45(tex.smpl) 49
              52:     10(ptr) AccessChain 36(flattenTemp) 51
              53:           9 Load 52
                              Store 50(tex.tex) 53
              56:     11(ptr) AccessChain 36(flattenTemp) 55
              57:    8(float) Load 56
                              Store 54(tex.f) 57
              59:           6 Load 45(tex.smpl)
                              Store 58(param) 59
              61:           9 Load 50(tex.tex)
                              Store 60(param) 61
              63:    8(float) Load 54(tex.f)
                              Store 62(param) 63
              64:   12(fvec4) FunctionCall 17(lookUp(struct-FxaaTex-p1-t21-f11;) 58(param) 60(param) 62(param)
                              ReturnValue 64
                              FunctionEnd
