hlsl.w-recip2.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:13  Function Definition: @main(struct-VSOutput-vf4-vf3-vf3-vf21; ( temp 4-component vector of float)
0:13    Function Parameters: 
0:13      'VSOut' ( in structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:?     Sequence
0:14      Test condition and select ( temp void)
0:14        Condition
0:14        Compare Less Than ( temp bool)
0:14          direct index ( temp float)
0:14            PositionPS: direct index for structure ( temp 4-component vector of float)
0:14              'VSOut' ( in structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:14              Constant:
0:14                0 (const int)
0:14            Constant:
0:14              0 (const int)
0:14          Constant:
0:14            400.000000
0:14        true case
0:15        Branch: Return with expression
0:15          AmbientColor: direct index for structure ( uniform 4-component vector of float)
0:15            'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor,  uniform 4-component vector of float AmbientColor2})
0:15            Constant:
0:15              0 (const uint)
0:14        false case
0:17        Branch: Return with expression
0:17          AmbientColor2: direct index for structure ( uniform 4-component vector of float)
0:17            'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor,  uniform 4-component vector of float AmbientColor2})
0:17            Constant:
0:17              1 (const uint)
0:13  Function Definition: main( ( temp void)
0:13    Function Parameters: 
0:?     Sequence
0:13      Sequence
0:13        Sequence
0:13          move second child to first child ( temp 4-component vector of float)
0:13            '@fragcoord' ( temp 4-component vector of float)
0:?             'VSOut.PositionPS' ( in 4-component vector of float FragCoord)
0:13          move second child to first child ( temp float)
0:13            direct index ( in float FragCoord)
0:13              '@fragcoord' ( temp 4-component vector of float)
0:13              Constant:
0:13                3 (const int)
0:13            divide ( temp float)
0:13              Constant:
0:13                1.000000
0:13              direct index ( in float FragCoord)
0:13                '@fragcoord' ( temp 4-component vector of float)
0:13                Constant:
0:13                  3 (const int)
0:13          move second child to first child ( temp 4-component vector of float)
0:13            PositionPS: direct index for structure ( temp 4-component vector of float)
0:?               'VSOut' ( temp structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:13              Constant:
0:13                0 (const int)
0:13            '@fragcoord' ( temp 4-component vector of float)
0:13        move second child to first child ( temp 3-component vector of float)
0:13          PosInLightViewSpace: direct index for structure ( temp 3-component vector of float)
0:?             'VSOut' ( temp structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:13            Constant:
0:13              1 (const int)
0:?           'VSOut.PosInLightViewSpace' (layout( location=0) in 3-component vector of float)
0:13        move second child to first child ( temp 3-component vector of float)
0:13          NormalWS: direct index for structure ( temp 3-component vector of float)
0:?             'VSOut' ( temp structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:13            Constant:
0:13              2 (const int)
0:?           'VSOut.NormalWS' (layout( location=1) in 3-component vector of float)
0:13        move second child to first child ( temp 2-component vector of float)
0:13          TexCoord: direct index for structure ( temp 2-component vector of float)
0:?             'VSOut' ( temp structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:13            Constant:
0:13              3 (const int)
0:?           'VSOut.TexCoord' (layout( location=2) in 2-component vector of float)
0:13      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:13        Function Call: @main(struct-VSOutput-vf4-vf3-vf3-vf21; ( temp 4-component vector of float)
0:?           'VSOut' ( temp structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor,  uniform 4-component vector of float AmbientColor2})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'VSOut.PositionPS' ( in 4-component vector of float FragCoord)
0:?     'VSOut.PosInLightViewSpace' (layout( location=0) in 3-component vector of float)
0:?     'VSOut.NormalWS' (layout( location=1) in 3-component vector of float)
0:?     'VSOut.TexCoord' (layout( location=2) in 2-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:13  Function Definition: @main(struct-VSOutput-vf4-vf3-vf3-vf21; ( temp 4-component vector of float)
0:13    Function Parameters: 
0:13      'VSOut' ( in structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:?     Sequence
0:14      Test condition and select ( temp void)
0:14        Condition
0:14        Compare Less Than ( temp bool)
0:14          direct index ( temp float)
0:14            PositionPS: direct index for structure ( temp 4-component vector of float)
0:14              'VSOut' ( in structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:14              Constant:
0:14                0 (const int)
0:14            Constant:
0:14              0 (const int)
0:14          Constant:
0:14            400.000000
0:14        true case
0:15        Branch: Return with expression
0:15          AmbientColor: direct index for structure ( uniform 4-component vector of float)
0:15            'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor,  uniform 4-component vector of float AmbientColor2})
0:15            Constant:
0:15              0 (const uint)
0:14        false case
0:17        Branch: Return with expression
0:17          AmbientColor2: direct index for structure ( uniform 4-component vector of float)
0:17            'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor,  uniform 4-component vector of float AmbientColor2})
0:17            Constant:
0:17              1 (const uint)
0:13  Function Definition: main( ( temp void)
0:13    Function Parameters: 
0:?     Sequence
0:13      Sequence
0:13        Sequence
0:13          move second child to first child ( temp 4-component vector of float)
0:13            '@fragcoord' ( temp 4-component vector of float)
0:?             'VSOut.PositionPS' ( in 4-component vector of float FragCoord)
0:13          move second child to first child ( temp float)
0:13            direct index ( in float FragCoord)
0:13              '@fragcoord' ( temp 4-component vector of float)
0:13              Constant:
0:13                3 (const int)
0:13            divide ( temp float)
0:13              Constant:
0:13                1.000000
0:13              direct index ( in float FragCoord)
0:13                '@fragcoord' ( temp 4-component vector of float)
0:13                Constant:
0:13                  3 (const int)
0:13          move second child to first child ( temp 4-component vector of float)
0:13            PositionPS: direct index for structure ( temp 4-component vector of float)
0:?               'VSOut' ( temp structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:13              Constant:
0:13                0 (const int)
0:13            '@fragcoord' ( temp 4-component vector of float)
0:13        move second child to first child ( temp 3-component vector of float)
0:13          PosInLightViewSpace: direct index for structure ( temp 3-component vector of float)
0:?             'VSOut' ( temp structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:13            Constant:
0:13              1 (const int)
0:?           'VSOut.PosInLightViewSpace' (layout( location=0) in 3-component vector of float)
0:13        move second child to first child ( temp 3-component vector of float)
0:13          NormalWS: direct index for structure ( temp 3-component vector of float)
0:?             'VSOut' ( temp structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:13            Constant:
0:13              2 (const int)
0:?           'VSOut.NormalWS' (layout( location=1) in 3-component vector of float)
0:13        move second child to first child ( temp 2-component vector of float)
0:13          TexCoord: direct index for structure ( temp 2-component vector of float)
0:?             'VSOut' ( temp structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:13            Constant:
0:13              3 (const int)
0:?           'VSOut.TexCoord' (layout( location=2) in 2-component vector of float)
0:13      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:13        Function Call: @main(struct-VSOutput-vf4-vf3-vf3-vf21; ( temp 4-component vector of float)
0:?           'VSOut' ( temp structure{ temp 4-component vector of float PositionPS,  temp 3-component vector of float PosInLightViewSpace,  temp 3-component vector of float NormalWS,  temp 2-component vector of float TexCoord})
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 4-component vector of float AmbientColor,  uniform 4-component vector of float AmbientColor2})
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:?     'VSOut.PositionPS' ( in 4-component vector of float FragCoord)
0:?     'VSOut.PosInLightViewSpace' (layout( location=0) in 3-component vector of float)
0:?     'VSOut.NormalWS' (layout( location=1) in 3-component vector of float)
0:?     'VSOut.TexCoord' (layout( location=2) in 2-component vector of float)

// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 75

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 44 56 61 66 71
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 10  "VSOutput"
                              MemberName 10(VSOutput) 0  "PositionPS"
                              MemberName 10(VSOutput) 1  "PosInLightViewSpace"
                              MemberName 10(VSOutput) 2  "NormalWS"
                              MemberName 10(VSOutput) 3  "TexCoord"
                              Name 14  "@main(struct-VSOutput-vf4-vf3-vf3-vf21;"
                              Name 13  "VSOut"
                              Name 28  "$Global"
                              MemberName 28($Global) 0  "AmbientColor"
                              MemberName 28($Global) 1  "AmbientColor2"
                              Name 30  ""
                              Name 42  "@fragcoord"
                              Name 44  "VSOut.PositionPS"
                              Name 52  "VSOut"
                              Name 56  "VSOut.PosInLightViewSpace"
                              Name 61  "VSOut.NormalWS"
                              Name 66  "VSOut.TexCoord"
                              Name 71  "@entryPointOutput"
                              Name 72  "param"
                              MemberDecorate 28($Global) 0 Offset 0
                              MemberDecorate 28($Global) 1 Offset 16
                              Decorate 28($Global) Block
                              Decorate 30 DescriptorSet 0
                              Decorate 30 Binding 0
                              Decorate 44(VSOut.PositionPS) BuiltIn FragCoord
                              Decorate 56(VSOut.PosInLightViewSpace) Location 0
                              Decorate 61(VSOut.NormalWS) Location 1
                              Decorate 66(VSOut.TexCoord) Location 2
                              Decorate 71(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeVector 6(float) 3
               9:             TypeVector 6(float) 2
    10(VSOutput):             TypeStruct 7(fvec4) 8(fvec3) 8(fvec3) 9(fvec2)
              11:             TypePointer Function 10(VSOutput)
              12:             TypeFunction 7(fvec4) 11(ptr)
              16:             TypeInt 32 1
              17:     16(int) Constant 0
              18:             TypeInt 32 0
              19:     18(int) Constant 0
              20:             TypePointer Function 6(float)
              23:    6(float) Constant 1137180672
              24:             TypeBool
     28($Global):             TypeStruct 7(fvec4) 7(fvec4)
              29:             TypePointer Uniform 28($Global)
              30:     29(ptr) Variable Uniform
              31:             TypePointer Uniform 7(fvec4)
              36:     16(int) Constant 1
              41:             TypePointer Function 7(fvec4)
              43:             TypePointer Input 7(fvec4)
44(VSOut.PositionPS):     43(ptr) Variable Input
              46:    6(float) Constant 1065353216
              47:     18(int) Constant 3
              55:             TypePointer Input 8(fvec3)
56(VSOut.PosInLightViewSpace):     55(ptr) Variable Input
              58:             TypePointer Function 8(fvec3)
              60:     16(int) Constant 2
61(VSOut.NormalWS):     55(ptr) Variable Input
              64:     16(int) Constant 3
              65:             TypePointer Input 9(fvec2)
66(VSOut.TexCoord):     65(ptr) Variable Input
              68:             TypePointer Function 9(fvec2)
              70:             TypePointer Output 7(fvec4)
71(@entryPointOutput):     70(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
  42(@fragcoord):     41(ptr) Variable Function
       52(VSOut):     11(ptr) Variable Function
       72(param):     11(ptr) Variable Function
              45:    7(fvec4) Load 44(VSOut.PositionPS)
                              Store 42(@fragcoord) 45
              48:     20(ptr) AccessChain 42(@fragcoord) 47
              49:    6(float) Load 48
              50:    6(float) FDiv 46 49
              51:     20(ptr) AccessChain 42(@fragcoord) 47
                              Store 51 50
              53:    7(fvec4) Load 42(@fragcoord)
              54:     41(ptr) AccessChain 52(VSOut) 17
                              Store 54 53
              57:    8(fvec3) Load 56(VSOut.PosInLightViewSpace)
              59:     58(ptr) AccessChain 52(VSOut) 36
                              Store 59 57
              62:    8(fvec3) Load 61(VSOut.NormalWS)
              63:     58(ptr) AccessChain 52(VSOut) 60
                              Store 63 62
              67:    9(fvec2) Load 66(VSOut.TexCoord)
              69:     68(ptr) AccessChain 52(VSOut) 64
                              Store 69 67
              73:10(VSOutput) Load 52(VSOut)
                              Store 72(param) 73
              74:    7(fvec4) FunctionCall 14(@main(struct-VSOutput-vf4-vf3-vf3-vf21;) 72(param)
                              Store 71(@entryPointOutput) 74
                              Return
                              FunctionEnd
14(@main(struct-VSOutput-vf4-vf3-vf3-vf21;):    7(fvec4) Function None 12
       13(VSOut):     11(ptr) FunctionParameter
              15:             Label
              21:     20(ptr) AccessChain 13(VSOut) 17 19
              22:    6(float) Load 21
              25:    24(bool) FOrdLessThan 22 23
                              SelectionMerge 27 None
                              BranchConditional 25 26 35
              26:               Label
              32:     31(ptr)   AccessChain 30 17
              33:    7(fvec4)   Load 32
                                ReturnValue 33
              35:               Label
              37:     31(ptr)   AccessChain 30 36
              38:    7(fvec4)   Load 37
                                ReturnValue 38
              27:             Label
                              Unreachable
                              FunctionEnd
