#include <metal_stdlib> | |
#include <simd/simd.h> | |
using namespace metal; | |
struct Foo | |
{ | |
packed_float4 a; | |
}; | |
struct Bar | |
{ | |
Foo a; | |
}; | |
struct Baz | |
{ | |
Bar a; | |
}; | |
struct SSBOScalar | |
{ | |
float v; | |
Baz baz; | |
}; | |
constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); | |
kernel void main0(device SSBOScalar& buffer_scalar [[buffer(0)]]) | |
{ | |
buffer_scalar.baz.a.a.a[3u] = 10.0; | |
} | |