#include #include using namespace metal; typedef packed_float3 packed_rm_float3x3[3]; struct SSBOScalar { packed_float3 a; packed_rm_float3x3 b; packed_rm_float3x3 c; }; kernel void main0(device SSBOScalar& _6 [[buffer(0)]]) { float3x3 _24 = transpose(float3x3(float3(_6.b[0]), float3(_6.b[1]), float3(_6.b[2]))); _6.b[0] = float3x3(float3(_6.c[0]), float3(_6.c[1]), float3(_6.c[2]))[0]; _6.b[1] = float3x3(float3(_6.c[0]), float3(_6.c[1]), float3(_6.c[2]))[1]; _6.b[2] = float3x3(float3(_6.c[0]), float3(_6.c[1]), float3(_6.c[2]))[2]; _6.a = _24 * float3(_6.a); }