hlsl.flattenOpaque.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:15  Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float)
0:15    Function Parameters: 
0:?       's.s2D' ( in sampler)
0:?     Sequence
0:16      Branch: Return with expression
0:16        texture ( temp 4-component vector of float)
0:16          Construct combined texture-sampler ( temp sampler2D)
0:16            'tex' ( uniform texture2D)
0:?             's.s2D' ( in sampler)
0:?           Constant:
0:?             0.200000
0:?             0.300000
0:20  Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float)
0:20    Function Parameters: 
0:?       's.s2D' ( in sampler)
0:20      'f2' ( in 2-component vector of float)
0:?     Sequence
0:21      Branch: Return with expression
0:21        texture ( temp 4-component vector of float)
0:21          Construct combined texture-sampler ( temp sampler2D)
0:21            'tex' ( uniform texture2D)
0:?             's.s2D' ( in sampler)
0:21          'f2' ( in 2-component vector of float)
0:25  Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float)
0:25    Function Parameters: 
0:?       's.s2D' ( in sampler)
0:?       's.tex' ( in texture2D)
0:?     Sequence
0:26      Branch: Return with expression
0:26        texture ( temp 4-component vector of float)
0:26          Construct combined texture-sampler ( temp sampler2D)
0:?             's.tex' ( in texture2D)
0:?             's.s2D' ( in sampler)
0:?           Constant:
0:?             0.200000
0:?             0.300000
0:30  Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float)
0:30    Function Parameters: 
0:?       's.s2D' ( in sampler)
0:?       's.tex' ( in texture2D)
0:30      'f2' ( in 2-component vector of float)
0:?     Sequence
0:31      Branch: Return with expression
0:31        texture ( temp 4-component vector of float)
0:31          Construct combined texture-sampler ( temp sampler2D)
0:?             's.tex' ( in texture2D)
0:?             's.s2D' ( in sampler)
0:31          'f2' ( in 2-component vector of float)
0:35  Function Definition: @main( ( temp 4-component vector of float)
0:35    Function Parameters: 
0:?     Sequence
0:39      Branch: Return with expression
0:38        add ( temp 4-component vector of float)
0:37          add ( temp 4-component vector of float)
0:36            add ( temp 4-component vector of float)
0:36              Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float)
0:?                 's.s2D' ( uniform sampler)
0:37              Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float)
0:?                 's.s2D' ( uniform sampler)
0:?                 Constant:
0:?                   0.200000
0:?                   0.300000
0:38            Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float)
0:?               's2.s2D' ( uniform sampler)
0:?               's2.tex' ( uniform texture2D)
0:39          Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float)
0:?             's2.s2D' ( uniform sampler)
0:?             's2.tex' ( uniform texture2D)
0:?             Constant:
0:?               0.200000
0:?               0.300000
0:35  Function Definition: main( ( temp void)
0:35    Function Parameters: 
0:?     Sequence
0:35      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:35        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'tex' ( uniform texture2D)
0:?     's.s2D' ( uniform sampler)
0:?     's2.s2D' ( uniform sampler)
0:?     's2.tex' ( 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:15  Function Definition: osCall1(struct-os-p11; ( temp 4-component vector of float)
0:15    Function Parameters: 
0:?       's.s2D' ( in sampler)
0:?     Sequence
0:16      Branch: Return with expression
0:16        texture ( temp 4-component vector of float)
0:16          Construct combined texture-sampler ( temp sampler2D)
0:16            'tex' ( uniform texture2D)
0:?             's.s2D' ( in sampler)
0:?           Constant:
0:?             0.200000
0:?             0.300000
0:20  Function Definition: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float)
0:20    Function Parameters: 
0:?       's.s2D' ( in sampler)
0:20      'f2' ( in 2-component vector of float)
0:?     Sequence
0:21      Branch: Return with expression
0:21        texture ( temp 4-component vector of float)
0:21          Construct combined texture-sampler ( temp sampler2D)
0:21            'tex' ( uniform texture2D)
0:?             's.s2D' ( in sampler)
0:21          'f2' ( in 2-component vector of float)
0:25  Function Definition: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float)
0:25    Function Parameters: 
0:?       's.s2D' ( in sampler)
0:?       's.tex' ( in texture2D)
0:?     Sequence
0:26      Branch: Return with expression
0:26        texture ( temp 4-component vector of float)
0:26          Construct combined texture-sampler ( temp sampler2D)
0:?             's.tex' ( in texture2D)
0:?             's.s2D' ( in sampler)
0:?           Constant:
0:?             0.200000
0:?             0.300000
0:30  Function Definition: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float)
0:30    Function Parameters: 
0:?       's.s2D' ( in sampler)
0:?       's.tex' ( in texture2D)
0:30      'f2' ( in 2-component vector of float)
0:?     Sequence
0:31      Branch: Return with expression
0:31        texture ( temp 4-component vector of float)
0:31          Construct combined texture-sampler ( temp sampler2D)
0:?             's.tex' ( in texture2D)
0:?             's.s2D' ( in sampler)
0:31          'f2' ( in 2-component vector of float)
0:35  Function Definition: @main( ( temp 4-component vector of float)
0:35    Function Parameters: 
0:?     Sequence
0:39      Branch: Return with expression
0:38        add ( temp 4-component vector of float)
0:37          add ( temp 4-component vector of float)
0:36            add ( temp 4-component vector of float)
0:36              Function Call: osCall1(struct-os-p11; ( temp 4-component vector of float)
0:?                 's.s2D' ( uniform sampler)
0:37              Function Call: osCall2(struct-os-p11;vf2; ( temp 4-component vector of float)
0:?                 's.s2D' ( uniform sampler)
0:?                 Constant:
0:?                   0.200000
0:?                   0.300000
0:38            Function Call: os2Call1(struct-os2-p1-t211; ( temp 4-component vector of float)
0:?               's2.s2D' ( uniform sampler)
0:?               's2.tex' ( uniform texture2D)
0:39          Function Call: os2Call2(struct-os2-p1-t211;vf2; ( temp 4-component vector of float)
0:?             's2.s2D' ( uniform sampler)
0:?             's2.tex' ( uniform texture2D)
0:?             Constant:
0:?               0.200000
0:?               0.300000
0:35  Function Definition: main( ( temp void)
0:35    Function Parameters: 
0:?     Sequence
0:35      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:35        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'tex' ( uniform texture2D)
0:?     's.s2D' ( uniform sampler)
0:?     's2.s2D' ( uniform sampler)
0:?     's2.tex' ( 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 99

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 97
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 12  "osCall1(struct-os-p11;"
                              Name 11  "s.s2D"
                              Name 19  "osCall2(struct-os-p11;vf2;"
                              Name 17  "s.s2D"
                              Name 18  "f2"
                              Name 26  "os2Call1(struct-os2-p1-t211;"
                              Name 24  "s.s2D"
                              Name 25  "s.tex"
                              Name 32  "os2Call2(struct-os2-p1-t211;vf2;"
                              Name 29  "s.s2D"
                              Name 30  "s.tex"
                              Name 31  "f2"
                              Name 35  "@main("
                              Name 38  "tex"
                              Name 70  "s.s2D"
                              Name 71  "param"
                              Name 74  "param"
                              Name 76  "param"
                              Name 79  "s2.s2D"
                              Name 80  "s2.tex"
                              Name 81  "param"
                              Name 83  "param"
                              Name 87  "param"
                              Name 89  "param"
                              Name 91  "param"
                              Name 97  "@entryPointOutput"
                              Decorate 38(tex) DescriptorSet 0
                              Decorate 70(s.s2D) DescriptorSet 0
                              Decorate 79(s2.s2D) DescriptorSet 0
                              Decorate 80(s2.tex) DescriptorSet 0
                              Decorate 97(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeSampler
               7:             TypePointer Function 6
               8:             TypeFloat 32
               9:             TypeVector 8(float) 4
              10:             TypeFunction 9(fvec4) 7(ptr)
              14:             TypeVector 8(float) 2
              15:             TypePointer Function 14(fvec2)
              16:             TypeFunction 9(fvec4) 7(ptr) 15(ptr)
              21:             TypeImage 8(float) 2D sampled format:Unknown
              22:             TypePointer Function 21
              23:             TypeFunction 9(fvec4) 7(ptr) 22(ptr)
              28:             TypeFunction 9(fvec4) 7(ptr) 22(ptr) 15(ptr)
              34:             TypeFunction 9(fvec4)
              37:             TypePointer UniformConstant 21
         38(tex):     37(ptr) Variable UniformConstant
              41:             TypeSampledImage 21
              43:    8(float) Constant 1045220557
              44:    8(float) Constant 1050253722
              45:   14(fvec2) ConstantComposite 43 44
              69:             TypePointer UniformConstant 6
       70(s.s2D):     69(ptr) Variable UniformConstant
      79(s2.s2D):     69(ptr) Variable UniformConstant
      80(s2.tex):     37(ptr) Variable UniformConstant
              96:             TypePointer Output 9(fvec4)
97(@entryPointOutput):     96(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              98:    9(fvec4) FunctionCall 35(@main()
                              Store 97(@entryPointOutput) 98
                              Return
                              FunctionEnd
12(osCall1(struct-os-p11;):    9(fvec4) Function None 10
       11(s.s2D):      7(ptr) FunctionParameter
              13:             Label
              39:          21 Load 38(tex)
              40:           6 Load 11(s.s2D)
              42:          41 SampledImage 39 40
              46:    9(fvec4) ImageSampleImplicitLod 42 45
                              ReturnValue 46
                              FunctionEnd
19(osCall2(struct-os-p11;vf2;):    9(fvec4) Function None 16
       17(s.s2D):      7(ptr) FunctionParameter
          18(f2):     15(ptr) FunctionParameter
              20:             Label
              49:          21 Load 38(tex)
              50:           6 Load 17(s.s2D)
              51:          41 SampledImage 49 50
              52:   14(fvec2) Load 18(f2)
              53:    9(fvec4) ImageSampleImplicitLod 51 52
                              ReturnValue 53
                              FunctionEnd
26(os2Call1(struct-os2-p1-t211;):    9(fvec4) Function None 23
       24(s.s2D):      7(ptr) FunctionParameter
       25(s.tex):     22(ptr) FunctionParameter
              27:             Label
              56:          21 Load 25(s.tex)
              57:           6 Load 24(s.s2D)
              58:          41 SampledImage 56 57
              59:    9(fvec4) ImageSampleImplicitLod 58 45
                              ReturnValue 59
                              FunctionEnd
32(os2Call2(struct-os2-p1-t211;vf2;):    9(fvec4) Function None 28
       29(s.s2D):      7(ptr) FunctionParameter
       30(s.tex):     22(ptr) FunctionParameter
          31(f2):     15(ptr) FunctionParameter
              33:             Label
              62:          21 Load 30(s.tex)
              63:           6 Load 29(s.s2D)
              64:          41 SampledImage 62 63
              65:   14(fvec2) Load 31(f2)
              66:    9(fvec4) ImageSampleImplicitLod 64 65
                              ReturnValue 66
                              FunctionEnd
      35(@main():    9(fvec4) Function None 34
              36:             Label
       71(param):      7(ptr) Variable Function
       74(param):      7(ptr) Variable Function
       76(param):     15(ptr) Variable Function
       81(param):      7(ptr) Variable Function
       83(param):     22(ptr) Variable Function
       87(param):      7(ptr) Variable Function
       89(param):     22(ptr) Variable Function
       91(param):     15(ptr) Variable Function
              72:           6 Load 70(s.s2D)
                              Store 71(param) 72
              73:    9(fvec4) FunctionCall 12(osCall1(struct-os-p11;) 71(param)
              75:           6 Load 70(s.s2D)
                              Store 74(param) 75
                              Store 76(param) 45
              77:    9(fvec4) FunctionCall 19(osCall2(struct-os-p11;vf2;) 74(param) 76(param)
              78:    9(fvec4) FAdd 73 77
              82:           6 Load 79(s2.s2D)
                              Store 81(param) 82
              84:          21 Load 80(s2.tex)
                              Store 83(param) 84
              85:    9(fvec4) FunctionCall 26(os2Call1(struct-os2-p1-t211;) 81(param) 83(param)
              86:    9(fvec4) FAdd 78 85
              88:           6 Load 79(s2.s2D)
                              Store 87(param) 88
              90:          21 Load 80(s2.tex)
                              Store 89(param) 90
                              Store 91(param) 45
              92:    9(fvec4) FunctionCall 32(os2Call2(struct-os2-p1-t211;vf2;) 87(param) 89(param) 91(param)
              93:    9(fvec4) FAdd 86 92
                              ReturnValue 93
                              FunctionEnd
