spv.scalarlayoutfloat16.frag
error: SPIRV-Tools Validation Errors
error: Structure id 15 decorated as Block for variable in Uniform storage class must follow standard uniform buffer layout rules: member 1 at offset 2 is not aligned to 4
  %B1 = OpTypeStruct %half %v2half %v3half %_arr_half_uint_2 %half %S %_arr_S_uint_2

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

                              Capability Shader
                              Capability Float64
                              Capability StorageUniform16
                              Extension  "SPV_KHR_16bit_storage"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_EXT_scalar_block_layout"
                              SourceExtension  "GL_EXT_shader_16bit_storage"
                              Name 4  "main"
                              Name 13  "S"
                              MemberName 13(S) 0  "a"
                              MemberName 13(S) 1  "b"
                              MemberName 13(S) 2  "c"
                              MemberName 13(S) 3  "d"
                              MemberName 13(S) 4  "e"
                              MemberName 13(S) 5  "f"
                              Name 15  "B1"
                              MemberName 15(B1) 0  "a"
                              MemberName 15(B1) 1  "b"
                              MemberName 15(B1) 2  "c"
                              MemberName 15(B1) 3  "d"
                              MemberName 15(B1) 4  "g"
                              MemberName 15(B1) 5  "h"
                              MemberName 15(B1) 6  "i"
                              Name 17  ""
                              Decorate 11 ArrayStride 2
                              MemberDecorate 13(S) 0 Offset 0
                              MemberDecorate 13(S) 1 Offset 2
                              MemberDecorate 13(S) 2 Offset 8
                              MemberDecorate 13(S) 3 Offset 16
                              MemberDecorate 13(S) 4 Offset 18
                              MemberDecorate 13(S) 5 Offset 24
                              Decorate 14 ArrayStride 32
                              MemberDecorate 15(B1) 0 Offset 0
                              MemberDecorate 15(B1) 1 Offset 2
                              MemberDecorate 15(B1) 2 Offset 6
                              MemberDecorate 15(B1) 3 Offset 12
                              MemberDecorate 15(B1) 4 Offset 16
                              MemberDecorate 15(B1) 5 Offset 24
                              MemberDecorate 15(B1) 6 Offset 56
                              Decorate 15(B1) Block
                              Decorate 17 DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 16
               7:             TypeVector 6(float16_t) 2
               8:             TypeVector 6(float16_t) 3
               9:             TypeInt 32 0
              10:      9(int) Constant 2
              11:             TypeArray 6(float16_t) 10
              12:             TypeFloat 64
           13(S):             TypeStruct 6(float16_t) 7(f16vec2) 12(float64_t) 6(float16_t) 8(f16vec3) 6(float16_t)
              14:             TypeArray 13(S) 10
          15(B1):             TypeStruct 6(float16_t) 7(f16vec2) 8(f16vec3) 11 6(float16_t) 13(S) 14
              16:             TypePointer Uniform 15(B1)
              17:     16(ptr) Variable Uniform
         4(main):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
