hlsl.cbuffer-identifier.vert
WARNING: 0:29: '' : mul() matrix size mismatch 

Shader version: 500
0:? Sequence
0:22  Function Definition: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22    Function Parameters: 
0:22      'input' ( in structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:?     Sequence
0:23      Sequence
0:23        move second child to first child ( temp int)
0:23          'ConstantBuffer' ( temp int)
0:23          Constant:
0:23            42 (const int)
0:25      Sequence
0:25        move second child to first child ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:25          'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:25          Constant:
0:25            0.000000
0:25            0.000000
0:25            0.000000
0:25            0.000000
0:25            0.000000
0:25            0.000000
0:25            0.000000
0:26      move second child to first child ( temp 4-component vector of float)
0:26        Pos: direct index for structure ( temp 4-component vector of float)
0:26          'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:26          Constant:
0:26            0 (const int)
0:26        matrix-times-vector ( temp 4-component vector of float)
0:26          World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:26            'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:26            Constant:
0:26              0 (const uint)
0:26          Pos: direct index for structure ( temp 4-component vector of float)
0:26            'input' ( in structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:26            Constant:
0:26              0 (const int)
0:27      move second child to first child ( temp 4-component vector of float)
0:27        Pos: direct index for structure ( temp 4-component vector of float)
0:27          'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:27          Constant:
0:27            0 (const int)
0:27        matrix-times-vector ( temp 4-component vector of float)
0:27          View: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:27            'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:27            Constant:
0:27              1 (const uint)
0:27          Pos: direct index for structure ( temp 4-component vector of float)
0:27            'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:27            Constant:
0:27              0 (const int)
0:28      move second child to first child ( temp 4-component vector of float)
0:28        Pos: direct index for structure ( temp 4-component vector of float)
0:28          'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:28          Constant:
0:28            0 (const int)
0:28        matrix-times-vector ( temp 4-component vector of float)
0:28          Projection: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:28            'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:28            Constant:
0:28              2 (const uint)
0:28          Pos: direct index for structure ( temp 4-component vector of float)
0:28            'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:28            Constant:
0:28              0 (const int)
0:29      move second child to first child ( temp 3-component vector of float)
0:29        Norm: direct index for structure ( temp 3-component vector of float)
0:29          'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:29          Constant:
0:29            1 (const int)
0:29        Construct vec3 ( temp 3-component vector of float)
0:29          matrix-times-vector ( temp 4-component vector of float)
0:29            Construct mat3x4 ( uniform 3X4 matrix of float)
0:29              World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:29                'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:29                Constant:
0:29                  0 (const uint)
0:29            Norm: direct index for structure ( temp 3-component vector of float)
0:29              'input' ( in structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:29              Constant:
0:29                1 (const int)
0:31      Branch: Return with expression
0:31        'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22  Function Definition: main( ( temp void)
0:22    Function Parameters: 
0:?     Sequence
0:22      Sequence
0:22        move second child to first child ( temp 4-component vector of float)
0:22          Pos: direct index for structure ( temp 4-component vector of float)
0:?             'input' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22            Constant:
0:22              0 (const int)
0:?           'input.Pos' (layout( location=0) in 4-component vector of float)
0:22        move second child to first child ( temp 3-component vector of float)
0:22          Norm: direct index for structure ( temp 3-component vector of float)
0:?             'input' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22            Constant:
0:22              1 (const int)
0:?           'input.Norm' (layout( location=1) in 3-component vector of float)
0:22      Sequence
0:22        move second child to first child ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22          'flattenTemp' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22          Function Call: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:?             'input' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:22          Pos: direct index for structure ( temp 4-component vector of float)
0:22            'flattenTemp' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22            Constant:
0:22              0 (const int)
0:22        move second child to first child ( temp 3-component vector of float)
0:?           '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float)
0:22          Norm: direct index for structure ( temp 3-component vector of float)
0:22            'flattenTemp' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22            Constant:
0:22              1 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:?     '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:?     '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float)
0:?     'input.Pos' (layout( location=0) in 4-component vector of float)
0:?     'input.Norm' (layout( location=1) in 3-component vector of float)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:22  Function Definition: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22    Function Parameters: 
0:22      'input' ( in structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:?     Sequence
0:23      Sequence
0:23        move second child to first child ( temp int)
0:23          'ConstantBuffer' ( temp int)
0:23          Constant:
0:23            42 (const int)
0:25      Sequence
0:25        move second child to first child ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:25          'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:25          Constant:
0:25            0.000000
0:25            0.000000
0:25            0.000000
0:25            0.000000
0:25            0.000000
0:25            0.000000
0:25            0.000000
0:26      move second child to first child ( temp 4-component vector of float)
0:26        Pos: direct index for structure ( temp 4-component vector of float)
0:26          'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:26          Constant:
0:26            0 (const int)
0:26        matrix-times-vector ( temp 4-component vector of float)
0:26          World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:26            'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:26            Constant:
0:26              0 (const uint)
0:26          Pos: direct index for structure ( temp 4-component vector of float)
0:26            'input' ( in structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:26            Constant:
0:26              0 (const int)
0:27      move second child to first child ( temp 4-component vector of float)
0:27        Pos: direct index for structure ( temp 4-component vector of float)
0:27          'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:27          Constant:
0:27            0 (const int)
0:27        matrix-times-vector ( temp 4-component vector of float)
0:27          View: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:27            'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:27            Constant:
0:27              1 (const uint)
0:27          Pos: direct index for structure ( temp 4-component vector of float)
0:27            'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:27            Constant:
0:27              0 (const int)
0:28      move second child to first child ( temp 4-component vector of float)
0:28        Pos: direct index for structure ( temp 4-component vector of float)
0:28          'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:28          Constant:
0:28            0 (const int)
0:28        matrix-times-vector ( temp 4-component vector of float)
0:28          Projection: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:28            'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:28            Constant:
0:28              2 (const uint)
0:28          Pos: direct index for structure ( temp 4-component vector of float)
0:28            'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:28            Constant:
0:28              0 (const int)
0:29      move second child to first child ( temp 3-component vector of float)
0:29        Norm: direct index for structure ( temp 3-component vector of float)
0:29          'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:29          Constant:
0:29            1 (const int)
0:29        Construct vec3 ( temp 3-component vector of float)
0:29          matrix-times-vector ( temp 4-component vector of float)
0:29            Construct mat3x4 ( uniform 3X4 matrix of float)
0:29              World: direct index for structure (layout( row_major std140) uniform 4X4 matrix of float)
0:29                'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:29                Constant:
0:29                  0 (const uint)
0:29            Norm: direct index for structure ( temp 3-component vector of float)
0:29              'input' ( in structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:29              Constant:
0:29                1 (const int)
0:31      Branch: Return with expression
0:31        'output' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22  Function Definition: main( ( temp void)
0:22    Function Parameters: 
0:?     Sequence
0:22      Sequence
0:22        move second child to first child ( temp 4-component vector of float)
0:22          Pos: direct index for structure ( temp 4-component vector of float)
0:?             'input' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22            Constant:
0:22              0 (const int)
0:?           'input.Pos' (layout( location=0) in 4-component vector of float)
0:22        move second child to first child ( temp 3-component vector of float)
0:22          Norm: direct index for structure ( temp 3-component vector of float)
0:?             'input' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22            Constant:
0:22              1 (const int)
0:?           'input.Norm' (layout( location=1) in 3-component vector of float)
0:22      Sequence
0:22        move second child to first child ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22          'flattenTemp' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22          Function Call: @main(struct-VS_INPUT-vf4-vf31; ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:?             'input' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:22          Pos: direct index for structure ( temp 4-component vector of float)
0:22            'flattenTemp' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22            Constant:
0:22              0 (const int)
0:22        move second child to first child ( temp 3-component vector of float)
0:?           '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float)
0:22          Norm: direct index for structure ( temp 3-component vector of float)
0:22            'flattenTemp' ( temp structure{ temp 4-component vector of float Pos,  temp 3-component vector of float Norm})
0:22            Constant:
0:22              1 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( binding=0 row_major std140) uniform block{layout( row_major std140) uniform 4X4 matrix of float World, layout( row_major std140) uniform 4X4 matrix of float View, layout( row_major std140) uniform 4X4 matrix of float Projection})
0:?     '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:?     '@entryPointOutput.Norm' (layout( location=0) out 3-component vector of float)
0:?     'input.Pos' (layout( location=0) in 4-component vector of float)
0:?     'input.Norm' (layout( location=1) in 3-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 87 91 99 103
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "VS_INPUT"
                              MemberName 9(VS_INPUT) 0  "Pos"
                              MemberName 9(VS_INPUT) 1  "Norm"
                              Name 11  "PS_INPUT"
                              MemberName 11(PS_INPUT) 0  "Pos"
                              MemberName 11(PS_INPUT) 1  "Norm"
                              Name 14  "@main(struct-VS_INPUT-vf4-vf31;"
                              Name 13  "input"
                              Name 18  "ConstantBuffer"
                              Name 21  "output"
                              Name 28  "C"
                              MemberName 28(C) 0  "World"
                              MemberName 28(C) 1  "View"
                              MemberName 28(C) 2  "Projection"
                              Name 30  ""
                              Name 85  "input"
                              Name 87  "input.Pos"
                              Name 91  "input.Norm"
                              Name 94  "flattenTemp"
                              Name 95  "param"
                              Name 99  "@entryPointOutput.Pos"
                              Name 103  "@entryPointOutput.Norm"
                              MemberDecorate 28(C) 0 RowMajor
                              MemberDecorate 28(C) 0 Offset 0
                              MemberDecorate 28(C) 0 MatrixStride 16
                              MemberDecorate 28(C) 1 RowMajor
                              MemberDecorate 28(C) 1 Offset 64
                              MemberDecorate 28(C) 1 MatrixStride 16
                              MemberDecorate 28(C) 2 RowMajor
                              MemberDecorate 28(C) 2 Offset 128
                              MemberDecorate 28(C) 2 MatrixStride 16
                              Decorate 28(C) Block
                              Decorate 30 DescriptorSet 0
                              Decorate 30 Binding 0
                              Decorate 87(input.Pos) Location 0
                              Decorate 91(input.Norm) Location 1
                              Decorate 99(@entryPointOutput.Pos) BuiltIn Position
                              Decorate 103(@entryPointOutput.Norm) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeVector 6(float) 3
     9(VS_INPUT):             TypeStruct 7(fvec4) 8(fvec3)
              10:             TypePointer Function 9(VS_INPUT)
    11(PS_INPUT):             TypeStruct 7(fvec4) 8(fvec3)
              12:             TypeFunction 11(PS_INPUT) 10(ptr)
              16:             TypeInt 32 1
              17:             TypePointer Function 16(int)
              19:     16(int) Constant 42
              20:             TypePointer Function 11(PS_INPUT)
              22:    6(float) Constant 0
              23:    7(fvec4) ConstantComposite 22 22 22 22
              24:    8(fvec3) ConstantComposite 22 22 22
              25:11(PS_INPUT) ConstantComposite 23 24
              26:     16(int) Constant 0
              27:             TypeMatrix 7(fvec4) 4
           28(C):             TypeStruct 27 27 27
              29:             TypePointer Uniform 28(C)
              30:     29(ptr) Variable Uniform
              31:             TypePointer Uniform 27
              34:             TypePointer Function 7(fvec4)
              39:     16(int) Constant 1
              46:     16(int) Constant 2
              55:             TypeMatrix 7(fvec4) 3
              56:    6(float) Constant 1065353216
              73:             TypePointer Function 8(fvec3)
              86:             TypePointer Input 7(fvec4)
   87(input.Pos):     86(ptr) Variable Input
              90:             TypePointer Input 8(fvec3)
  91(input.Norm):     90(ptr) Variable Input
              98:             TypePointer Output 7(fvec4)
99(@entryPointOutput.Pos):     98(ptr) Variable Output
             102:             TypePointer Output 8(fvec3)
103(@entryPointOutput.Norm):    102(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
       85(input):     10(ptr) Variable Function
 94(flattenTemp):     20(ptr) Variable Function
       95(param):     10(ptr) Variable Function
              88:    7(fvec4) Load 87(input.Pos)
              89:     34(ptr) AccessChain 85(input) 26
                              Store 89 88
              92:    8(fvec3) Load 91(input.Norm)
              93:     73(ptr) AccessChain 85(input) 39
                              Store 93 92
              96: 9(VS_INPUT) Load 85(input)
                              Store 95(param) 96
              97:11(PS_INPUT) FunctionCall 14(@main(struct-VS_INPUT-vf4-vf31;) 95(param)
                              Store 94(flattenTemp) 97
             100:     34(ptr) AccessChain 94(flattenTemp) 26
             101:    7(fvec4) Load 100
                              Store 99(@entryPointOutput.Pos) 101
             104:     73(ptr) AccessChain 94(flattenTemp) 39
             105:    8(fvec3) Load 104
                              Store 103(@entryPointOutput.Norm) 105
                              Return
                              FunctionEnd
14(@main(struct-VS_INPUT-vf4-vf31;):11(PS_INPUT) Function None 12
       13(input):     10(ptr) FunctionParameter
              15:             Label
18(ConstantBuffer):     17(ptr) Variable Function
      21(output):     20(ptr) Variable Function
                              Store 18(ConstantBuffer) 19
                              Store 21(output) 25
              32:     31(ptr) AccessChain 30 26
              33:          27 Load 32
              35:     34(ptr) AccessChain 13(input) 26
              36:    7(fvec4) Load 35
              37:    7(fvec4) MatrixTimesVector 33 36
              38:     34(ptr) AccessChain 21(output) 26
                              Store 38 37
              40:     31(ptr) AccessChain 30 39
              41:          27 Load 40
              42:     34(ptr) AccessChain 21(output) 26
              43:    7(fvec4) Load 42
              44:    7(fvec4) MatrixTimesVector 41 43
              45:     34(ptr) AccessChain 21(output) 26
                              Store 45 44
              47:     31(ptr) AccessChain 30 46
              48:          27 Load 47
              49:     34(ptr) AccessChain 21(output) 26
              50:    7(fvec4) Load 49
              51:    7(fvec4) MatrixTimesVector 48 50
              52:     34(ptr) AccessChain 21(output) 26
                              Store 52 51
              53:     31(ptr) AccessChain 30 26
              54:          27 Load 53
              57:    6(float) CompositeExtract 54 0 0
              58:    6(float) CompositeExtract 54 0 1
              59:    6(float) CompositeExtract 54 0 2
              60:    6(float) CompositeExtract 54 0 3
              61:    6(float) CompositeExtract 54 1 0
              62:    6(float) CompositeExtract 54 1 1
              63:    6(float) CompositeExtract 54 1 2
              64:    6(float) CompositeExtract 54 1 3
              65:    6(float) CompositeExtract 54 2 0
              66:    6(float) CompositeExtract 54 2 1
              67:    6(float) CompositeExtract 54 2 2
              68:    6(float) CompositeExtract 54 2 3
              69:    7(fvec4) CompositeConstruct 57 58 59 60
              70:    7(fvec4) CompositeConstruct 61 62 63 64
              71:    7(fvec4) CompositeConstruct 65 66 67 68
              72:          55 CompositeConstruct 69 70 71
              74:     73(ptr) AccessChain 13(input) 39
              75:    8(fvec3) Load 74
              76:    7(fvec4) MatrixTimesVector 72 75
              77:    6(float) CompositeExtract 76 0
              78:    6(float) CompositeExtract 76 1
              79:    6(float) CompositeExtract 76 2
              80:    8(fvec3) CompositeConstruct 77 78 79
              81:     73(ptr) AccessChain 21(output) 39
                              Store 81 80
              82:11(PS_INPUT) Load 21(output)
                              ReturnValue 82
                              FunctionEnd
