hlsl.mintypes.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:9  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
0:9    Function Parameters: 
0:?     Sequence
0:40      add ( temp mediump 2-component vector of float)
0:40        'mf16_2' ( temp mediump 2-component vector of float)
0:40        'mf16' ( temp mediump float)
0:41      add ( temp mediump 2-component vector of float)
0:41        'mf10_2' ( temp mediump 2-component vector of float)
0:41        'mf10' ( temp mediump float)
0:42      add ( temp mediump 2-component vector of int)
0:42        'mi16_2' ( temp mediump 2-component vector of int)
0:42        'mi16' ( temp mediump int)
0:43      add ( temp mediump 2-component vector of int)
0:43        'mi12_2' ( temp mediump 2-component vector of int)
0:43        'mi12' ( temp mediump int)
0:44      add ( temp mediump 2-component vector of uint)
0:44        'mu16_2' ( temp mediump 2-component vector of uint)
0:44        'mu16' ( temp mediump uint)
0:47      move second child to first child ( temp 4-component vector of float)
0:47        Color: direct index for structure ( temp 4-component vector of float)
0:47          'psout' ( temp structure{ temp 4-component vector of float Color})
0:47          Constant:
0:47            0 (const int)
0:47        Constant:
0:47          0.000000
0:47          0.000000
0:47          0.000000
0:47          0.000000
0:48      Branch: Return with expression
0:48        'psout' ( temp structure{ temp 4-component vector of float Color})
0:9  Function Definition: main( ( temp void)
0:9    Function Parameters: 
0:?     Sequence
0:9      Sequence
0:9        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:9          Color: direct index for structure ( temp 4-component vector of float)
0:9            Function Call: @main( ( temp structure{ temp 4-component vector of float Color})
0:9            Constant:
0:9              0 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform mediump float b1a,  uniform mediump float b1b})
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:9  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
0:9    Function Parameters: 
0:?     Sequence
0:40      add ( temp mediump 2-component vector of float)
0:40        'mf16_2' ( temp mediump 2-component vector of float)
0:40        'mf16' ( temp mediump float)
0:41      add ( temp mediump 2-component vector of float)
0:41        'mf10_2' ( temp mediump 2-component vector of float)
0:41        'mf10' ( temp mediump float)
0:42      add ( temp mediump 2-component vector of int)
0:42        'mi16_2' ( temp mediump 2-component vector of int)
0:42        'mi16' ( temp mediump int)
0:43      add ( temp mediump 2-component vector of int)
0:43        'mi12_2' ( temp mediump 2-component vector of int)
0:43        'mi12' ( temp mediump int)
0:44      add ( temp mediump 2-component vector of uint)
0:44        'mu16_2' ( temp mediump 2-component vector of uint)
0:44        'mu16' ( temp mediump uint)
0:47      move second child to first child ( temp 4-component vector of float)
0:47        Color: direct index for structure ( temp 4-component vector of float)
0:47          'psout' ( temp structure{ temp 4-component vector of float Color})
0:47          Constant:
0:47            0 (const int)
0:47        Constant:
0:47          0.000000
0:47          0.000000
0:47          0.000000
0:47          0.000000
0:48      Branch: Return with expression
0:48        'psout' ( temp structure{ temp 4-component vector of float Color})
0:9  Function Definition: main( ( temp void)
0:9    Function Parameters: 
0:?     Sequence
0:9      Sequence
0:9        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:9          Color: direct index for structure ( temp 4-component vector of float)
0:9            Function Call: @main( ( temp structure{ temp 4-component vector of float Color})
0:9            Constant:
0:9              0 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform mediump float b1a,  uniform mediump float b1b})
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 64
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "Color"
                              Name 10  "@main("
                              Name 14  "mf16_2"
                              Name 17  "mf16"
                              Name 21  "mf10_2"
                              Name 23  "mf10"
                              Name 30  "mi16_2"
                              Name 33  "mi16"
                              Name 37  "mi12_2"
                              Name 39  "mi12"
                              Name 46  "mu16_2"
                              Name 49  "mu16"
                              Name 54  "psout"
                              Name 64  "@entryPointOutput.Color"
                              Name 67  "$Global"
                              MemberName 67($Global) 0  "b1a"
                              MemberName 67($Global) 1  "b1b"
                              Name 69  ""
                              Decorate 14(mf16_2) RelaxedPrecision
                              Decorate 15 RelaxedPrecision
                              Decorate 17(mf16) RelaxedPrecision
                              Decorate 18 RelaxedPrecision
                              Decorate 19 RelaxedPrecision
                              Decorate 20 RelaxedPrecision
                              Decorate 21(mf10_2) RelaxedPrecision
                              Decorate 22 RelaxedPrecision
                              Decorate 23(mf10) RelaxedPrecision
                              Decorate 24 RelaxedPrecision
                              Decorate 25 RelaxedPrecision
                              Decorate 26 RelaxedPrecision
                              Decorate 30(mi16_2) RelaxedPrecision
                              Decorate 31 RelaxedPrecision
                              Decorate 33(mi16) RelaxedPrecision
                              Decorate 34 RelaxedPrecision
                              Decorate 35 RelaxedPrecision
                              Decorate 36 RelaxedPrecision
                              Decorate 37(mi12_2) RelaxedPrecision
                              Decorate 38 RelaxedPrecision
                              Decorate 39(mi12) RelaxedPrecision
                              Decorate 40 RelaxedPrecision
                              Decorate 41 RelaxedPrecision
                              Decorate 42 RelaxedPrecision
                              Decorate 46(mu16_2) RelaxedPrecision
                              Decorate 47 RelaxedPrecision
                              Decorate 49(mu16) RelaxedPrecision
                              Decorate 50 RelaxedPrecision
                              Decorate 51 RelaxedPrecision
                              Decorate 52 RelaxedPrecision
                              Decorate 64(@entryPointOutput.Color) Location 0
                              MemberDecorate 67($Global) 0 RelaxedPrecision
                              MemberDecorate 67($Global) 0 Offset 0
                              MemberDecorate 67($Global) 1 RelaxedPrecision
                              MemberDecorate 67($Global) 1 Offset 4
                              Decorate 67($Global) Block
                              Decorate 69 DescriptorSet 0
                              Decorate 69 Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4)
               9:             TypeFunction 8(PS_OUTPUT)
              12:             TypeVector 6(float) 2
              13:             TypePointer Function 12(fvec2)
              16:             TypePointer Function 6(float)
              27:             TypeInt 32 1
              28:             TypeVector 27(int) 2
              29:             TypePointer Function 28(ivec2)
              32:             TypePointer Function 27(int)
              43:             TypeInt 32 0
              44:             TypeVector 43(int) 2
              45:             TypePointer Function 44(ivec2)
              48:             TypePointer Function 43(int)
              53:             TypePointer Function 8(PS_OUTPUT)
              55:     27(int) Constant 0
              56:    6(float) Constant 0
              57:    7(fvec4) ConstantComposite 56 56 56 56
              58:             TypePointer Function 7(fvec4)
              63:             TypePointer Output 7(fvec4)
64(@entryPointOutput.Color):     63(ptr) Variable Output
     67($Global):             TypeStruct 6(float) 6(float)
              68:             TypePointer Uniform 67($Global)
              69:     68(ptr) Variable Uniform
         4(main):           2 Function None 3
               5:             Label
              65:8(PS_OUTPUT) FunctionCall 10(@main()
              66:    7(fvec4) CompositeExtract 65 0
                              Store 64(@entryPointOutput.Color) 66
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
      14(mf16_2):     13(ptr) Variable Function
        17(mf16):     16(ptr) Variable Function
      21(mf10_2):     13(ptr) Variable Function
        23(mf10):     16(ptr) Variable Function
      30(mi16_2):     29(ptr) Variable Function
        33(mi16):     32(ptr) Variable Function
      37(mi12_2):     29(ptr) Variable Function
        39(mi12):     32(ptr) Variable Function
      46(mu16_2):     45(ptr) Variable Function
        49(mu16):     48(ptr) Variable Function
       54(psout):     53(ptr) Variable Function
              15:   12(fvec2) Load 14(mf16_2)
              18:    6(float) Load 17(mf16)
              19:   12(fvec2) CompositeConstruct 18 18
              20:   12(fvec2) FAdd 15 19
              22:   12(fvec2) Load 21(mf10_2)
              24:    6(float) Load 23(mf10)
              25:   12(fvec2) CompositeConstruct 24 24
              26:   12(fvec2) FAdd 22 25
              31:   28(ivec2) Load 30(mi16_2)
              34:     27(int) Load 33(mi16)
              35:   28(ivec2) CompositeConstruct 34 34
              36:   28(ivec2) IAdd 31 35
              38:   28(ivec2) Load 37(mi12_2)
              40:     27(int) Load 39(mi12)
              41:   28(ivec2) CompositeConstruct 40 40
              42:   28(ivec2) IAdd 38 41
              47:   44(ivec2) Load 46(mu16_2)
              50:     43(int) Load 49(mu16)
              51:   44(ivec2) CompositeConstruct 50 50
              52:   44(ivec2) IAdd 47 51
              59:     58(ptr) AccessChain 54(psout) 55
                              Store 59 57
              60:8(PS_OUTPUT) Load 54(psout)
                              ReturnValue 60
                              FunctionEnd
