hlsl.aliasOpaque.frag
WARNING: AST will form illegal SPIR-V; need to transform to legalize
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:12  Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float)
0:12    Function Parameters: 
0:12      's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:?     Sequence
0:13      Branch: Return with expression
0:13        vector-scale ( temp 4-component vector of float)
0:13          a: direct index for structure ( temp float)
0:13            's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:13            Constant:
0:13              1 (const int)
0:13          texture ( temp 4-component vector of float)
0:13            Construct combined texture-sampler ( temp sampler2D)
0:13              tex: direct index for structure ( temp texture2D)
0:13                's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:13                Constant:
0:13                  2 (const int)
0:13              ss: direct index for structure ( temp sampler)
0:13                's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:13                Constant:
0:13                  0 (const int)
0:?             Constant:
0:?               0.200000
0:?               0.300000
0:17  Function Definition: @main( ( temp 4-component vector of float)
0:17    Function Parameters: 
0:?     Sequence
0:19      move second child to first child ( temp sampler)
0:19        ss: direct index for structure ( temp sampler)
0:19          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:19          Constant:
0:19            0 (const int)
0:19        'gss2' ( uniform sampler)
0:20      move second child to first child ( temp sampler)
0:20        ss: direct index for structure ( temp sampler)
0:20          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:20          Constant:
0:20            0 (const int)
0:20        'gss' ( uniform sampler)
0:21      move second child to first child ( temp texture2D)
0:21        tex: direct index for structure ( temp texture2D)
0:21          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:21          Constant:
0:21            2 (const int)
0:21        'gtex' ( uniform texture2D)
0:22      move second child to first child ( temp float)
0:22        a: direct index for structure ( temp float)
0:22          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:22          Constant:
0:22            1 (const int)
0:22        Constant:
0:22          3.000000
0:28      Branch: Return with expression
0:28        Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float)
0:28          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:17  Function Definition: main( ( temp void)
0:17    Function Parameters: 
0:?     Sequence
0:17      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:17        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'gss' ( uniform sampler)
0:?     'gss2' ( uniform sampler)
0:?     'gtex' ( uniform texture2D)
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:12  Function Definition: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float)
0:12    Function Parameters: 
0:12      's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:?     Sequence
0:13      Branch: Return with expression
0:13        vector-scale ( temp 4-component vector of float)
0:13          a: direct index for structure ( temp float)
0:13            's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:13            Constant:
0:13              1 (const int)
0:13          texture ( temp 4-component vector of float)
0:13            Construct combined texture-sampler ( temp sampler2D)
0:13              tex: direct index for structure ( temp texture2D)
0:13                's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:13                Constant:
0:13                  2 (const int)
0:13              ss: direct index for structure ( temp sampler)
0:13                's' ( in structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:13                Constant:
0:13                  0 (const int)
0:?             Constant:
0:?               0.200000
0:?               0.300000
0:17  Function Definition: @main( ( temp 4-component vector of float)
0:17    Function Parameters: 
0:?     Sequence
0:19      move second child to first child ( temp sampler)
0:19        ss: direct index for structure ( temp sampler)
0:19          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:19          Constant:
0:19            0 (const int)
0:19        'gss2' ( uniform sampler)
0:20      move second child to first child ( temp sampler)
0:20        ss: direct index for structure ( temp sampler)
0:20          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:20          Constant:
0:20            0 (const int)
0:20        'gss' ( uniform sampler)
0:21      move second child to first child ( temp texture2D)
0:21        tex: direct index for structure ( temp texture2D)
0:21          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:21          Constant:
0:21            2 (const int)
0:21        'gtex' ( uniform texture2D)
0:22      move second child to first child ( temp float)
0:22        a: direct index for structure ( temp float)
0:22          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:22          Constant:
0:22            1 (const int)
0:22        Constant:
0:22          3.000000
0:28      Branch: Return with expression
0:28        Function Call: osCall(struct-OS-p1-f1-t211; ( temp 4-component vector of float)
0:28          'os' ( temp structure{ temp sampler ss,  temp float a,  temp texture2D tex})
0:17  Function Definition: main( ( temp void)
0:17    Function Parameters: 
0:?     Sequence
0:17      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:17        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'gss' ( uniform sampler)
0:?     'gss2' ( uniform sampler)
0:?     'gtex' ( uniform texture2D)
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 62
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "OS"
                              MemberName 9(OS) 0  "ss"
                              MemberName 9(OS) 1  "a"
                              MemberName 9(OS) 2  "tex"
                              Name 14  "osCall(struct-OS-p1-f1-t211;"
                              Name 13  "s"
                              Name 17  "@main("
                              Name 42  "os"
                              Name 44  "gss2"
                              Name 47  "gss"
                              Name 51  "gtex"
                              Name 56  "param"
                              Name 62  "@entryPointOutput"
                              Decorate 44(gss2) DescriptorSet 0
                              Decorate 47(gss) DescriptorSet 0
                              Decorate 51(gtex) DescriptorSet 0
                              Decorate 62(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeSampler
               7:             TypeFloat 32
               8:             TypeImage 7(float) 2D sampled format:Unknown
           9(OS):             TypeStruct 6 7(float) 8
              10:             TypePointer Function 9(OS)
              11:             TypeVector 7(float) 4
              12:             TypeFunction 11(fvec4) 10(ptr)
              16:             TypeFunction 11(fvec4)
              19:             TypeInt 32 1
              20:     19(int) Constant 1
              21:             TypePointer Function 7(float)
              24:     19(int) Constant 2
              25:             TypePointer Function 8
              28:     19(int) Constant 0
              29:             TypePointer Function 6
              32:             TypeSampledImage 8
              34:             TypeVector 7(float) 2
              35:    7(float) Constant 1045220557
              36:    7(float) Constant 1050253722
              37:   34(fvec2) ConstantComposite 35 36
              43:             TypePointer UniformConstant 6
        44(gss2):     43(ptr) Variable UniformConstant
         47(gss):     43(ptr) Variable UniformConstant
              50:             TypePointer UniformConstant 8
        51(gtex):     50(ptr) Variable UniformConstant
              54:    7(float) Constant 1077936128
              61:             TypePointer Output 11(fvec4)
62(@entryPointOutput):     61(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              63:   11(fvec4) FunctionCall 17(@main()
                              Store 62(@entryPointOutput) 63
                              Return
                              FunctionEnd
14(osCall(struct-OS-p1-f1-t211;):   11(fvec4) Function None 12
           13(s):     10(ptr) FunctionParameter
              15:             Label
              22:     21(ptr) AccessChain 13(s) 20
              23:    7(float) Load 22
              26:     25(ptr) AccessChain 13(s) 24
              27:           8 Load 26
              30:     29(ptr) AccessChain 13(s) 28
              31:           6 Load 30
              33:          32 SampledImage 27 31
              38:   11(fvec4) ImageSampleImplicitLod 33 37
              39:   11(fvec4) VectorTimesScalar 38 23
                              ReturnValue 39
                              FunctionEnd
      17(@main():   11(fvec4) Function None 16
              18:             Label
          42(os):     10(ptr) Variable Function
       56(param):     10(ptr) Variable Function
              45:           6 Load 44(gss2)
              46:     29(ptr) AccessChain 42(os) 28
                              Store 46 45
              48:           6 Load 47(gss)
              49:     29(ptr) AccessChain 42(os) 28
                              Store 49 48
              52:           8 Load 51(gtex)
              53:     25(ptr) AccessChain 42(os) 24
                              Store 53 52
              55:     21(ptr) AccessChain 42(os) 20
                              Store 55 54
              57:       9(OS) Load 42(os)
                              Store 56(param) 57
              58:   11(fvec4) FunctionCall 14(osCall(struct-OS-p1-f1-t211;) 56(param)
                              ReturnValue 58
                              FunctionEnd
