SPIRV-Cross/shaders-msl-no-opt/packing/struct-packing.comp
2019-07-23 12:04:15 +02:00

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