hlsl.matType.frag
Shader version: 500
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' (layout( row_major std140) uniform block{ uniform 1-component vector of float f1,  uniform 1X1 matrix of float fmat11,  uniform 4X1 matrix of float fmat41,  uniform 1X2 matrix of float fmat12,  uniform 2X3 matrix of double dmat23,  uniform 4X4 matrix of int int44})


Linked fragment stage:

WARNING: Linking fragment stage: Entry point not found

Shader version: 500
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' (layout( row_major std140) uniform block{ uniform 1-component vector of float f1,  uniform 1X1 matrix of float fmat11,  uniform 4X1 matrix of float fmat41,  uniform 1X2 matrix of float fmat12,  uniform 2X3 matrix of double dmat23,  uniform 4X4 matrix of int int44})

// Module Version 10000
// Generated by (magic number): 80002
// 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
                              Source HLSL 500
                              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  ""
                              MemberDecorate 27($Global) 0 Offset 0
                              MemberDecorate 27($Global) 1 RowMajor
                              MemberDecorate 27($Global) 1 Offset 16
                              MemberDecorate 27($Global) 1 MatrixStride 16
                              MemberDecorate 27($Global) 2 RowMajor
                              MemberDecorate 27($Global) 2 Offset 32
                              MemberDecorate 27($Global) 2 MatrixStride 16
                              MemberDecorate 27($Global) 3 RowMajor
                              MemberDecorate 27($Global) 3 Offset 48
                              MemberDecorate 27($Global) 3 MatrixStride 16
                              MemberDecorate 27($Global) 4 RowMajor
                              MemberDecorate 27($Global) 4 Offset 80
                              MemberDecorate 27($Global) 4 MatrixStride 16
                              MemberDecorate 27($Global) 5 RowMajor
                              MemberDecorate 27($Global) 5 Offset 128
                              MemberDecorate 27($Global) 5 MatrixStride 16
                              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
                              Return
                              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
