| #version 450 core | |
| #extension GL_EXT_shader_16bit_storage: enable | |
| #extension GL_EXT_scalar_block_layout : enable | |
| // Block memory layout | |
| struct S | |
| { | |
| float16_t a; // offset 0 | |
| f16vec2 b; // offset 2 | |
| double c; // offset 8 | |
| float16_t d; // offset 16 | |
| f16vec3 e; // offset 18 | |
| float16_t f; // offset 24 | |
| // size = 26, align = 8 | |
| }; | |
| layout(column_major, scalar) uniform B1 | |
| { | |
| float16_t a; // offset = 0 | |
| f16vec2 b; // offset = 2 | |
| f16vec3 c; // offset = 6 | |
| float16_t d[2]; // offset = 12 stride = 2 | |
| float16_t g; // offset = 16 | |
| S h; // offset = 24 (aligned to multiple of 8) | |
| S i[2]; // offset = 56 (aligned to multiple of 8) stride = 32 | |
| }; | |
| void main() | |
| { | |
| } |