23 lines
582 B
Plaintext
23 lines
582 B
Plaintext
#version 450
|
|
#extension GL_EXT_buffer_reference : require
|
|
#extension GL_EXT_buffer_reference_uvec2 : require
|
|
|
|
layout(buffer_reference, buffer_reference_align = 4) buffer SSBO
|
|
{
|
|
vec3 a1; // Will be 12-byte packed
|
|
float a2;
|
|
};
|
|
|
|
layout(push_constant) uniform UBO
|
|
{
|
|
uvec2 b;
|
|
};
|
|
|
|
void main()
|
|
{
|
|
SSBO(b).a1 = vec3(1.0, 2.0, 3.0); // uvec2 -> buff ref and assign to packed
|
|
uvec2 v2 = uvec2(SSBO(b + 32)); // uvec2 -> buff ref -> uvec2
|
|
vec3 v3 = SSBO(v2).a1; // uvec2 -> buff ref and assign from packed
|
|
SSBO(v2).a1 = v3 + 1.0; // uvec2 -> buff ref and assign to packed
|
|
}
|