1#version 450 core 2 3#extension GL_EXT_shader_16bit_storage: enable 4#extension GL_EXT_scalar_block_layout : enable 5 6// Block memory layout 7struct S 8{ 9 float16_t a; // offset 0 10 f16vec2 b; // offset 2 11 double c; // offset 8 12 float16_t d; // offset 16 13 f16vec3 e; // offset 18 14 float16_t f; // offset 24 15 // size = 26, align = 8 16}; 17 18layout(column_major, scalar) uniform B1 19{ 20 float16_t a; // offset = 0 21 f16vec2 b; // offset = 2 22 f16vec3 c; // offset = 6 23 float16_t d[2]; // offset = 12 stride = 2 24 float16_t g; // offset = 16 25 S h; // offset = 24 (aligned to multiple of 8) 26 S i[2]; // offset = 56 (aligned to multiple of 8) stride = 32 27}; 28 29void main() 30{ 31} 32