spv.hlslOffsets.vert
Shader version: 450
0:? Sequence
0:27  Function Definition: main( ( global void)
0:27    Function Parameters: 
0:?   Linker Objects
0:?     'anon@0' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float m0, layout( column_major std430) buffer highp 3-component vector of float m4, layout( column_major std430) buffer highp float m16, layout( column_major std430 offset=20) buffer highp 3-component vector of float m20, layout( column_major std430) buffer highp 3-component vector of float m32, layout( column_major std430) buffer highp 2-component vector of float m48, layout( column_major std430) buffer highp 2-component vector of float m56, layout( column_major std430) buffer highp float m64, layout( column_major std430) buffer highp 2-component vector of float m68, layout( column_major std430) buffer highp float m76, layout( column_major std430) buffer highp float m80, layout( column_major std430 offset=88) buffer highp 2-component vector of float m88, layout( column_major std430) buffer highp 2-component vector of float m96, layout( column_major std430) buffer 2-component vector of double m112})


Linked vertex stage:


Shader version: 450
0:? Sequence
0:27  Function Definition: main( ( global void)
0:27    Function Parameters: 
0:?   Linker Objects
0:?     'anon@0' (layout( column_major std430) buffer block{layout( column_major std430) buffer highp float m0, layout( column_major std430) buffer highp 3-component vector of float m4, layout( column_major std430) buffer highp float m16, layout( column_major std430 offset=20) buffer highp 3-component vector of float m20, layout( column_major std430) buffer highp 3-component vector of float m32, layout( column_major std430) buffer highp 2-component vector of float m48, layout( column_major std430) buffer highp 2-component vector of float m56, layout( column_major std430) buffer highp float m64, layout( column_major std430) buffer highp 2-component vector of float m68, layout( column_major std430) buffer highp float m76, layout( column_major std430) buffer highp float m80, layout( column_major std430 offset=88) buffer highp 2-component vector of float m88, layout( column_major std430) buffer highp 2-component vector of float m96, layout( column_major std430) buffer 2-component vector of double m112})

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

                              Capability Shader
                              Capability Float64
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main"
                              Source GLSL 450
                              Name 4  "main"
                              Name 11  "block"
                              MemberName 11(block) 0  "m0"
                              MemberName 11(block) 1  "m4"
                              MemberName 11(block) 2  "m16"
                              MemberName 11(block) 3  "m20"
                              MemberName 11(block) 4  "m32"
                              MemberName 11(block) 5  "m48"
                              MemberName 11(block) 6  "m56"
                              MemberName 11(block) 7  "m64"
                              MemberName 11(block) 8  "m68"
                              MemberName 11(block) 9  "m76"
                              MemberName 11(block) 10  "m80"
                              MemberName 11(block) 11  "m88"
                              MemberName 11(block) 12  "m96"
                              MemberName 11(block) 13  "m112"
                              Name 13  ""
                              MemberDecorate 11(block) 0 Offset 0
                              MemberDecorate 11(block) 1 Offset 4
                              MemberDecorate 11(block) 2 Offset 16
                              MemberDecorate 11(block) 3 Offset 20
                              MemberDecorate 11(block) 4 Offset 32
                              MemberDecorate 11(block) 5 Offset 48
                              MemberDecorate 11(block) 6 Offset 56
                              MemberDecorate 11(block) 7 Offset 64
                              MemberDecorate 11(block) 8 Offset 68
                              MemberDecorate 11(block) 9 Offset 76
                              MemberDecorate 11(block) 10 Offset 80
                              MemberDecorate 11(block) 11 Offset 88
                              MemberDecorate 11(block) 12 Offset 96
                              MemberDecorate 11(block) 13 Offset 112
                              Decorate 11(block) BufferBlock
                              Decorate 13 DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 3
               8:             TypeVector 6(float) 2
               9:             TypeFloat 64
              10:             TypeVector 9(float) 2
       11(block):             TypeStruct 6(float) 7(fvec3) 6(float) 7(fvec3) 7(fvec3) 8(fvec2) 8(fvec2) 6(float) 8(fvec2) 6(float) 6(float) 8(fvec2) 8(fvec2) 10(fvec2)
              12:             TypePointer Uniform 11(block)
              13:     12(ptr) Variable Uniform
         4(main):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
