#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); | |
} |