hlsl.pp.line.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:4  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:4    Function Parameters: 
0:?     Sequence
0:124      Sequence
0:124        move second child to first child (temp int)
0:124          'thisLineIs' (temp int)
0:124          Constant:
0:124            124 (const int)
0:126      move second child to first child (temp 4-component vector of float)
0:126        Color: direct index for structure (temp 4-component vector of float)
0:126          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:126          Constant:
0:126            0 (const int)
0:?         Construct vec4 (temp 4-component vector of float)
0:126          Convert int to float (temp float)
0:126            'thisLineIs' (temp int)
0:126          Constant:
0:126            0.000000
0:126          Constant:
0:126            0.000000
0:126          Constant:
0:126            1.000000
0:127      move second child to first child (temp float)
0:127        Depth: direct index for structure (temp float)
0:127          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:127          Constant:
0:127            1 (const int)
0:127        Constant:
0:127          1.000000
0:129      Sequence
0:129        Sequence
0:129          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:129            Color: direct index for structure (temp 4-component vector of float)
0:129              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:129              Constant:
0:129                0 (const int)
0:129          move second child to first child (temp float)
0:?             'Depth' (out float FragDepth)
0:129            Depth: direct index for structure (temp float)
0:129              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:129              Constant:
0:129                1 (const int)
0:129        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'Depth' (out float FragDepth)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:4  Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth})
0:4    Function Parameters: 
0:?     Sequence
0:124      Sequence
0:124        move second child to first child (temp int)
0:124          'thisLineIs' (temp int)
0:124          Constant:
0:124            124 (const int)
0:126      move second child to first child (temp 4-component vector of float)
0:126        Color: direct index for structure (temp 4-component vector of float)
0:126          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:126          Constant:
0:126            0 (const int)
0:?         Construct vec4 (temp 4-component vector of float)
0:126          Convert int to float (temp float)
0:126            'thisLineIs' (temp int)
0:126          Constant:
0:126            0.000000
0:126          Constant:
0:126            0.000000
0:126          Constant:
0:126            1.000000
0:127      move second child to first child (temp float)
0:127        Depth: direct index for structure (temp float)
0:127          'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:127          Constant:
0:127            1 (const int)
0:127        Constant:
0:127          1.000000
0:129      Sequence
0:129        Sequence
0:129          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:129            Color: direct index for structure (temp 4-component vector of float)
0:129              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:129              Constant:
0:129                0 (const int)
0:129          move second child to first child (temp float)
0:?             'Depth' (out float FragDepth)
0:129            Depth: direct index for structure (temp float)
0:129              'psout' (temp structure{temp 4-component vector of float Color, temp float Depth})
0:129              Constant:
0:129                1 (const int)
0:129        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'Depth' (out float FragDepth)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 27 31
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 8  "thisLineIs"
                              Name 12  "PS_OUTPUT"
                              MemberName 12(PS_OUTPUT) 0  "Color"
                              MemberName 12(PS_OUTPUT) 1  "Depth"
                              Name 14  "psout"
                              Name 27  "Color"
                              Name 31  "Depth"
                              Decorate 27(Color) Location 0
                              Decorate 31(Depth) BuiltIn FragDepth
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Function 6(int)
               9:      6(int) Constant 124
              10:             TypeFloat 32
              11:             TypeVector 10(float) 4
   12(PS_OUTPUT):             TypeStruct 11(fvec4) 10(float)
              13:             TypePointer Function 12(PS_OUTPUT)
              15:      6(int) Constant 0
              18:   10(float) Constant 0
              19:   10(float) Constant 1065353216
              21:             TypePointer Function 11(fvec4)
              23:      6(int) Constant 1
              24:             TypePointer Function 10(float)
              26:             TypePointer Output 11(fvec4)
       27(Color):     26(ptr) Variable Output
              30:             TypePointer Output 10(float)
       31(Depth):     30(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
   8(thisLineIs):      7(ptr) Variable Function
       14(psout):     13(ptr) Variable Function
                              Store 8(thisLineIs) 9
              16:      6(int) Load 8(thisLineIs)
              17:   10(float) ConvertSToF 16
              20:   11(fvec4) CompositeConstruct 17 18 18 19
              22:     21(ptr) AccessChain 14(psout) 15
                              Store 22 20
              25:     24(ptr) AccessChain 14(psout) 23
                              Store 25 19
              28:     21(ptr) AccessChain 14(psout) 15
              29:   11(fvec4) Load 28
                              Store 27(Color) 29
              32:     24(ptr) AccessChain 14(psout) 23
              33:   10(float) Load 32
                              Store 31(Depth) 33
                              Return
                              FunctionEnd
