28 lines
500 B
Plaintext
28 lines
500 B
Plaintext
#version 450
|
|
#extension GL_EXT_scalar_block_layout : require
|
|
layout(local_size_x = 1) in;
|
|
|
|
// Foo will be marked packed_float3 because offset of bar is just 12 bytes after foo.
|
|
struct Foo
|
|
{
|
|
vec3 a;
|
|
};
|
|
|
|
// Bar will be marked as packed due to alignment of the struct itself cannot work without packed.
|
|
struct Bar
|
|
{
|
|
vec3 a;
|
|
};
|
|
|
|
layout(scalar, set = 0, binding = 0) buffer SSBOScalar
|
|
{
|
|
Foo foo;
|
|
Bar bar;
|
|
} buffer_scalar;
|
|
|
|
void main()
|
|
{
|
|
buffer_scalar.foo.a.x = 10.0;
|
|
buffer_scalar.bar.a.x = 20.0;
|
|
}
|