hlsl.matType.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:9  Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
0:9    Function Parameters: 
0:9      'inFloat1' (in 1-component vector of float)
0:9      'inScalar' (in float)
0:?     Sequence
0:10      Branch: Return with expression
0:10        'inFloat1' (in 1-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44})


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:9  Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
0:9    Function Parameters: 
0:9      'inFloat1' (in 1-component vector of float)
0:9      'inScalar' (in float)
0:?     Sequence
0:10      Branch: Return with expression
0:10        'inFloat1' (in 1-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44})

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

                              Capability Shader
                              Capability Float64
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction"
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "PixelShaderFunction"
                              Name 11  "ShaderFunction(vf1;f1;"
                              Name 9  "inFloat1"
                              Name 10  "inScalar"
                              Name 27  "$Global"
                              MemberName 27($Global) 0  "f1"
                              MemberName 27($Global) 1  "fmat11"
                              MemberName 27($Global) 2  "fmat41"
                              MemberName 27($Global) 3  "fmat12"
                              MemberName 27($Global) 4  "dmat23"
                              MemberName 27($Global) 5  "int44"
                              Name 29  ""
                              Decorate 27($Global) Block
                              Decorate 29 DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               8:             TypeFunction 6(float) 7(ptr) 7(ptr)
              16:             TypeVector 6(float) 1
              17:             TypeMatrix 16(fvec) 1
              18:             TypeMatrix 16(fvec) 4
              19:             TypeVector 6(float) 2
              20:             TypeMatrix 19(fvec2) 1
              21:             TypeFloat 64
              22:             TypeVector 21(float) 3
              23:             TypeMatrix 22(fvec3) 2
              24:             TypeInt 32 1
              25:             TypeVector 24(int) 4
              26:             TypeMatrix 25(ivec4) 4
     27($Global):             TypeStruct 6(float) 17 18 20 23 26
              28:             TypePointer Uniform 27($Global)
              29:     28(ptr) Variable Uniform
4(PixelShaderFunction):           2 Function None 3
               5:             Label
                              FunctionEnd
11(ShaderFunction(vf1;f1;):    6(float) Function None 8
     9(inFloat1):      7(ptr) FunctionParameter
    10(inScalar):      7(ptr) FunctionParameter
              12:             Label
              13:    6(float) Load 9(inFloat1)
                              ReturnValue 13
                              FunctionEnd
