hlsl.shapeConv.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: PixelShaderFunction(vf4;f1; (temp 4-component vector of float)
0:2    Function Parameters: 
0:2      'input' (in 4-component vector of float)
0:2      'f' (in float)
0:?     Sequence
0:4      move second child to first child (temp 4-component vector of float)
0:4        'v' (temp 4-component vector of float)
0:4        Constant:
0:4          1.000000
0:4          1.000000
0:4          1.000000
0:4          1.000000
0:5      move second child to first child (temp 4-component vector of float)
0:5        'v' (temp 4-component vector of float)
0:5        Constant:
0:5          2.000000
0:5          2.000000
0:5          2.000000
0:5          2.000000
0:6      move second child to first child (temp 4-component vector of float)
0:6        'v' (temp 4-component vector of float)
0:6        Construct vec4 (temp 4-component vector of float)
0:6          'f' (in float)
0:8      move second child to first child (temp 3-component vector of float)
0:8        'u' (temp 3-component vector of float)
0:8        Constant:
0:8          1.000000
0:8          1.000000
0:8          1.000000
0:9      move second child to first child (temp 3-component vector of float)
0:9        'u' (temp 3-component vector of float)
0:9        Constant:
0:9          2.000000
0:9          2.000000
0:9          2.000000
0:10      move second child to first child (temp 3-component vector of float)
0:10        'u' (temp 3-component vector of float)
0:10        Construct vec3 (temp 3-component vector of float)
0:10          Construct float (temp float)
0:10            'f' (in float)
0:11      Sequence
0:11        move second child to first child (temp 2-component vector of float)
0:11          'w' (temp 2-component vector of float)
0:11          Constant:
0:11            2.000000
0:11            2.000000
0:12      Sequence
0:12        move second child to first child (temp float)
0:12          'V' (temp float)
0:12          Constant:
0:12            1.000000
0:13      Sequence
0:13        move second child to first child (temp 3-component vector of float)
0:13          'MyVal' (temp 3-component vector of float)
0:13          Construct vec3 (temp 3-component vector of float)
0:13            'V' (temp float)
0:16      Compare Greater Than (temp 3-component vector of bool)
0:16        'foo' (temp 3-component vector of float)
0:16        Constant:
0:16          4.000000
0:16          4.000000
0:16          4.000000
0:17      Compare Greater Than or Equal (temp 3-component vector of bool)
0:17        'foo' (temp 3-component vector of float)
0:17        Constant:
0:17          5.000000
0:17          5.000000
0:17          5.000000
0:18      Compare Less Than (temp 3-component vector of bool)
0:18        Constant:
0:18          6.000000
0:18          6.000000
0:18          6.000000
0:18        'foo' (temp 3-component vector of float)
0:19      Compare Less Than or Equal (temp 3-component vector of bool)
0:19        Constant:
0:19          7.000000
0:19          7.000000
0:19          7.000000
0:19        'foo' (temp 3-component vector of float)
0:21      all (temp bool)
0:21        Equal (temp 4-component vector of bool)
0:21          Construct vec4 (temp 4-component vector of float)
0:21            direct index (temp float)
0:21              'v' (temp 4-component vector of float)
0:21              Constant:
0:21                0 (const int)
0:21          'v' (temp 4-component vector of float)
0:22      any (temp bool)
0:22        NotEqual (temp 4-component vector of bool)
0:22          Construct vec4 (temp 4-component vector of float)
0:22            'f' (in float)
0:22          'v' (temp 4-component vector of float)
0:26      Compare Equal (temp bool)
0:26        'f1' (temp 1-component vector of float)
0:26        Construct float (temp 1-component vector of float)
0:26          'v' (temp 4-component vector of float)
0:27      Compare Less Than (temp bool)
0:27        Construct float (temp 1-component vector of float)
0:27          'v' (temp 4-component vector of float)
0:27        'f1' (temp 1-component vector of float)
0:28      Construct float (temp float)
0:28        'f1' (temp 1-component vector of float)
0:29      Construct vec3 (temp 3-component vector of float)
0:29        Construct float (temp float)
0:29          'f1' (temp 1-component vector of float)
0:31      Branch: Return with expression
0:31        'input' (in 4-component vector of float)
0:?   Linker Objects


Linked fragment stage:

WARNING: Linking fragment stage: Entry point not found

Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: PixelShaderFunction(vf4;f1; (temp 4-component vector of float)
0:2    Function Parameters: 
0:2      'input' (in 4-component vector of float)
0:2      'f' (in float)
0:?     Sequence
0:4      move second child to first child (temp 4-component vector of float)
0:4        'v' (temp 4-component vector of float)
0:4        Constant:
0:4          1.000000
0:4          1.000000
0:4          1.000000
0:4          1.000000
0:5      move second child to first child (temp 4-component vector of float)
0:5        'v' (temp 4-component vector of float)
0:5        Constant:
0:5          2.000000
0:5          2.000000
0:5          2.000000
0:5          2.000000
0:6      move second child to first child (temp 4-component vector of float)
0:6        'v' (temp 4-component vector of float)
0:6        Construct vec4 (temp 4-component vector of float)
0:6          'f' (in float)
0:8      move second child to first child (temp 3-component vector of float)
0:8        'u' (temp 3-component vector of float)
0:8        Constant:
0:8          1.000000
0:8          1.000000
0:8          1.000000
0:9      move second child to first child (temp 3-component vector of float)
0:9        'u' (temp 3-component vector of float)
0:9        Constant:
0:9          2.000000
0:9          2.000000
0:9          2.000000
0:10      move second child to first child (temp 3-component vector of float)
0:10        'u' (temp 3-component vector of float)
0:10        Construct vec3 (temp 3-component vector of float)
0:10          Construct float (temp float)
0:10            'f' (in float)
0:11      Sequence
0:11        move second child to first child (temp 2-component vector of float)
0:11          'w' (temp 2-component vector of float)
0:11          Constant:
0:11            2.000000
0:11            2.000000
0:12      Sequence
0:12        move second child to first child (temp float)
0:12          'V' (temp float)
0:12          Constant:
0:12            1.000000
0:13      Sequence
0:13        move second child to first child (temp 3-component vector of float)
0:13          'MyVal' (temp 3-component vector of float)
0:13          Construct vec3 (temp 3-component vector of float)
0:13            'V' (temp float)
0:16      Compare Greater Than (temp 3-component vector of bool)
0:16        'foo' (temp 3-component vector of float)
0:16        Constant:
0:16          4.000000
0:16          4.000000
0:16          4.000000
0:17      Compare Greater Than or Equal (temp 3-component vector of bool)
0:17        'foo' (temp 3-component vector of float)
0:17        Constant:
0:17          5.000000
0:17          5.000000
0:17          5.000000
0:18      Compare Less Than (temp 3-component vector of bool)
0:18        Constant:
0:18          6.000000
0:18          6.000000
0:18          6.000000
0:18        'foo' (temp 3-component vector of float)
0:19      Compare Less Than or Equal (temp 3-component vector of bool)
0:19        Constant:
0:19          7.000000
0:19          7.000000
0:19          7.000000
0:19        'foo' (temp 3-component vector of float)
0:21      all (temp bool)
0:21        Equal (temp 4-component vector of bool)
0:21          Construct vec4 (temp 4-component vector of float)
0:21            direct index (temp float)
0:21              'v' (temp 4-component vector of float)
0:21              Constant:
0:21                0 (const int)
0:21          'v' (temp 4-component vector of float)
0:22      any (temp bool)
0:22        NotEqual (temp 4-component vector of bool)
0:22          Construct vec4 (temp 4-component vector of float)
0:22            'f' (in float)
0:22          'v' (temp 4-component vector of float)
0:26      Compare Equal (temp bool)
0:26        'f1' (temp 1-component vector of float)
0:26        Construct float (temp 1-component vector of float)
0:26          'v' (temp 4-component vector of float)
0:27      Compare Less Than (temp bool)
0:27        Construct float (temp 1-component vector of float)
0:27          'v' (temp 4-component vector of float)
0:27        'f1' (temp 1-component vector of float)
0:28      Construct float (temp float)
0:28        'f1' (temp 1-component vector of float)
0:29      Construct vec3 (temp 3-component vector of float)
0:29        Construct float (temp float)
0:29          'f1' (temp 1-component vector of float)
0:31      Branch: Return with expression
0:31        'input' (in 4-component vector of float)
0:?   Linker Objects

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 13  "PixelShaderFunction(vf4;f1;"
                              Name 11  "input"
                              Name 12  "f"
                              Name 15  "v"
                              Name 24  "u"
                              Name 31  "w"
                              Name 33  "V"
                              Name 34  "MyVal"
                              Name 37  "foo"
                              Name 70  "f1"
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
               9:             TypePointer Function 6(float)
              10:             TypeFunction 7(fvec4) 8(ptr) 9(ptr)
              16:    6(float) Constant 1065353216
              17:    7(fvec4) ConstantComposite 16 16 16 16
              18:    6(float) Constant 1073741824
              19:    7(fvec4) ConstantComposite 18 18 18 18
              22:             TypeVector 6(float) 3
              23:             TypePointer Function 22(fvec3)
              25:   22(fvec3) ConstantComposite 16 16 16
              26:   22(fvec3) ConstantComposite 18 18 18
              29:             TypeVector 6(float) 2
              30:             TypePointer Function 29(fvec2)
              32:   29(fvec2) ConstantComposite 18 18
              39:    6(float) Constant 1082130432
              40:   22(fvec3) ConstantComposite 39 39 39
              41:             TypeBool
              42:             TypeVector 41(bool) 3
              45:    6(float) Constant 1084227584
              46:   22(fvec3) ConstantComposite 45 45 45
              48:    6(float) Constant 1086324736
              49:   22(fvec3) ConstantComposite 48 48 48
              52:    6(float) Constant 1088421888
              53:   22(fvec3) ConstantComposite 52 52 52
              56:             TypeInt 32 0
              57:     56(int) Constant 0
              62:             TypeVector 41(bool) 4
         4(main):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
13(PixelShaderFunction(vf4;f1;):    7(fvec4) Function None 10
       11(input):      8(ptr) FunctionParameter
           12(f):      9(ptr) FunctionParameter
              14:             Label
           15(v):      8(ptr) Variable Function
           24(u):     23(ptr) Variable Function
           31(w):     30(ptr) Variable Function
           33(V):      9(ptr) Variable Function
       34(MyVal):     23(ptr) Variable Function
         37(foo):     23(ptr) Variable Function
          70(f1):      9(ptr) Variable Function
                              Store 15(v) 17
                              Store 15(v) 19
              20:    6(float) Load 12(f)
              21:    7(fvec4) CompositeConstruct 20 20 20 20
                              Store 15(v) 21
                              Store 24(u) 25
                              Store 24(u) 26
              27:    6(float) Load 12(f)
              28:   22(fvec3) CompositeConstruct 27 27 27
                              Store 24(u) 28
                              Store 31(w) 32
                              Store 33(V) 16
              35:    6(float) Load 33(V)
              36:   22(fvec3) CompositeConstruct 35 35 35
                              Store 34(MyVal) 36
              38:   22(fvec3) Load 37(foo)
              43:   42(bvec3) FOrdGreaterThan 38 40
              44:   22(fvec3) Load 37(foo)
              47:   42(bvec3) FOrdGreaterThanEqual 44 46
              50:   22(fvec3) Load 37(foo)
              51:   42(bvec3) FOrdLessThan 49 50
              54:   22(fvec3) Load 37(foo)
              55:   42(bvec3) FOrdLessThanEqual 53 54
              58:      9(ptr) AccessChain 15(v) 57
              59:    6(float) Load 58
              60:    7(fvec4) CompositeConstruct 59 59 59 59
              61:    7(fvec4) Load 15(v)
              63:   62(bvec4) FOrdEqual 60 61
              64:    41(bool) All 63
              65:    6(float) Load 12(f)
              66:    7(fvec4) CompositeConstruct 65 65 65 65
              67:    7(fvec4) Load 15(v)
              68:   62(bvec4) FOrdNotEqual 66 67
              69:    41(bool) Any 68
              71:    6(float) Load 70(f1)
              72:    7(fvec4) Load 15(v)
              73:    6(float) CompositeExtract 72 0
              74:    41(bool) FOrdEqual 71 73
              75:    7(fvec4) Load 15(v)
              76:    6(float) CompositeExtract 75 0
              77:    6(float) Load 70(f1)
              78:    41(bool) FOrdLessThan 76 77
              79:    6(float) Load 70(f1)
              80:    6(float) Load 70(f1)
              81:   22(fvec3) CompositeConstruct 80 80 80
              82:    7(fvec4) Load 11(input)
                              ReturnValue 82
                              FunctionEnd
