32 lines
		
	
	
		
			853 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			853 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #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()
 | |
| {
 | |
| }
 | 
