hlsl.aliasOpaque.frag
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:?       's.ss' ( in sampler)
0:?       's.a' ( in float)
0:?       's.tex' ( in texture2D)
0:?     Sequence
0:13      Branch: Return with expression
0:13        vector-scale ( temp 4-component vector of float)
0:?           's.a' ( in float)
0:13          texture ( temp 4-component vector of float)
0:13            Construct combined texture-sampler ( temp sampler2D)
0:?               's.tex' ( in texture2D)
0:?               's.ss' ( in sampler)
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      'gss2' ( uniform sampler)
0:20      'gss' ( uniform sampler)
0:21      'gtex' ( uniform texture2D)
0:22      move second child to first child ( temp float)
0:?         'os.a' ( temp float)
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:?           'gss' ( uniform sampler)
0:?           'os.a' ( temp float)
0:?           'gtex' ( uniform texture2D)
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:?       's.ss' ( in sampler)
0:?       's.a' ( in float)
0:?       's.tex' ( in texture2D)
0:?     Sequence
0:13      Branch: Return with expression
0:13        vector-scale ( temp 4-component vector of float)
0:?           's.a' ( in float)
0:13          texture ( temp 4-component vector of float)
0:13            Construct combined texture-sampler ( temp sampler2D)
0:?               's.tex' ( in texture2D)
0:?               's.ss' ( in sampler)
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      'gss2' ( uniform sampler)
0:20      'gss' ( uniform sampler)
0:21      'gtex' ( uniform texture2D)
0:22      move second child to first child ( temp float)
0:?         'os.a' ( temp float)
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:?           'gss' ( uniform sampler)
0:?           'os.a' ( temp float)
0:?           'gtex' ( uniform texture2D)
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): 80001
// Id's are bound by 48

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