| #version 450 | |
| #extension GL_EXT_buffer_reference_uvec2 : enable | |
| layout(buffer_reference, std430) buffer blockType { | |
| layout(offset = 0) int a; | |
| layout(offset = 4) int b; | |
| layout(offset = 8) int c; | |
| layout(offset = 12) int d; | |
| layout(offset = 16) int e; | |
| }; | |
| layout(std430) buffer t2 { | |
| blockType f; | |
| blockType g; | |
| } t; | |
| flat in uvec2 h, i; | |
| void main() { | |
| blockType b1[2] = blockType[2](blockType(h), blockType(i)); | |
| b1[0].a = b1[1].b; | |
| blockType b2 = blockType(h); | |
| blockType b3 = blockType(i); | |
| b2.a = b3.b; | |
| uvec2 j = uvec2(b2); | |
| uint carry; | |
| j.x = uaddCarry(j.x, 256, carry); | |
| j.y += carry; | |
| b2 = blockType(j); | |
| } |