91 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #version 450 core
 | |
| 
 | |
| #extension GL_EXT_shader_8bit_storage : enable
 | |
| 
 | |
| struct S
 | |
| {
 | |
|     uint8_t  x;
 | |
|     u8vec2    y;
 | |
|     u8vec3    z;
 | |
| };
 | |
| 
 | |
| layout(column_major, std140) uniform B1
 | |
| {
 | |
|     uint8_t  a;
 | |
|     u8vec2    b;
 | |
|     u8vec3    c;
 | |
|     uint8_t  d[2];
 | |
|     S          g;
 | |
|     S          h[2];
 | |
|     uint        j;
 | |
| } b1;
 | |
| 
 | |
| layout(row_major, std430) buffer B2
 | |
| {
 | |
|     uint8_t  o;
 | |
|     u8vec2    p;
 | |
|     u8vec3    q;
 | |
|     uint8_t  r[2];
 | |
|     S          u;
 | |
|     S          v[2];
 | |
|     u8vec2    x[100];
 | |
|     uint8_t  w[];
 | |
| } b2;
 | |
| 
 | |
| layout(row_major, std140) uniform B5
 | |
| {
 | |
|     uint8_t  o;
 | |
|     u8vec2    p;
 | |
|     u8vec3    q;
 | |
|     uint8_t  r[2];
 | |
|     S          u;
 | |
|     S          v[2];
 | |
|     u8vec2    x[100];
 | |
|     uint8_t  w[100];
 | |
| } b5;
 | |
| 
 | |
| struct S2 {
 | |
|     mat4x4 x;
 | |
|     uint8_t y;
 | |
|     uint z;
 | |
| };
 | |
| 
 | |
| struct S3 {
 | |
|     S2 x;
 | |
| };
 | |
| 
 | |
| layout(row_major, std430) buffer B3
 | |
| {
 | |
|     S2 x;
 | |
| } b3;
 | |
| 
 | |
| layout(column_major, std430) buffer B4
 | |
| {
 | |
|     S2 x;
 | |
|     S3 y;
 | |
| } b4;
 | |
| 
 | |
| void main()
 | |
| {
 | |
|     b2.o = b1.a;
 | |
|     b2.p = u8vec2(uvec3(b2.q).xy);
 | |
|     b2.p = u8vec2(uvec3(b5.q).xy);
 | |
|     b2.r[0] = b2.r[0];
 | |
|     b2.r[1] = b5.r[1];
 | |
|     b2.p = b2.p;
 | |
|     uint x0 = uint(b1.a);
 | |
|     uvec4 x1 = uvec4(b1.a, b2.p, 1);
 | |
|     b4.x.x = b3.x.x;
 | |
|     b2.o = uint8_t(uvec2(b2.p).x);
 | |
|     b2.p = b2.v[1].y;
 | |
|     uvec3 v3 = uvec3(b2.w[b1.j], b2.w[b1.j+1], b2.w[b1.j+2]);
 | |
|     uvec3 u3 = uvec3(b5.w[b1.j], b5.w[b1.j+1], b5.w[b1.j+2]);
 | |
|     b2.x[0] = b2.x[0];
 | |
|     b2.x[1] = b5.x[1];
 | |
|     b2.p.x = b1.a;
 | |
|     b2.o = b2.p.x;
 | |
|     b2.p = u8vec2(uvec2(1, 2));
 | |
|     b2.o = uint8_t(3u);
 | |
| }
 | |
| 
 | 
