96492648d4
MSL generally emits the aliases, which means we cannot always place the master type first, unlike GLSL and HLSL. The logic fix is just to reorder after we have tagged types with packing information, rather than doing it in the parser fixup.
38 lines
357 B
Plaintext
38 lines
357 B
Plaintext
#include <metal_stdlib>
|
|
#include <simd/simd.h>
|
|
|
|
using namespace metal;
|
|
|
|
struct s1
|
|
{
|
|
int a;
|
|
};
|
|
|
|
struct s2
|
|
{
|
|
s1 b;
|
|
};
|
|
|
|
struct s1_1
|
|
{
|
|
int a;
|
|
};
|
|
|
|
struct s2_1
|
|
{
|
|
s1_1 b;
|
|
};
|
|
|
|
struct dstbuffer
|
|
{
|
|
s2_1 test[1];
|
|
};
|
|
|
|
kernel void main0(device dstbuffer& _19 [[buffer(1)]])
|
|
{
|
|
s2 testVal;
|
|
testVal.b.a = 0;
|
|
_19.test[0].b.a = testVal.b.a;
|
|
}
|
|
|