1#version 450 2 3#extension GL_EXT_buffer_reference_uvec2 : enable 4 5layout(buffer_reference, std430) buffer blockType { 6 layout(offset = 0) int a; 7 layout(offset = 4) int b; 8 layout(offset = 8) int c; 9 layout(offset = 12) int d; 10 layout(offset = 16) int e; 11}; 12 13layout(std430) buffer t2 { 14 blockType f; 15 blockType g; 16} t; 17 18flat in uvec2 h, i; 19 20void main() { 21 22 blockType b1[2] = blockType[2](blockType(h), blockType(i)); 23 b1[0].a = b1[1].b; 24 blockType b2 = blockType(h); 25 blockType b3 = blockType(i); 26 b2.a = b3.b; 27 uvec2 j = uvec2(b2); 28 uint carry; 29 j.x = uaddCarry(j.x, 256, carry); 30 j.y += carry; 31 b2 = blockType(j); 32} 33