| #include <metal_stdlib> |
| #include <simd/simd.h> |
| |
| using namespace metal; |
| |
| struct SSBO; |
| |
| struct UBO |
| { |
| uint2 b; |
| }; |
| |
| struct SSBO |
| { |
| packed_float3 a1; |
| float a2; |
| }; |
| |
| kernel void main0(constant UBO& _10 [[buffer(0)]]) |
| { |
| (reinterpret_cast<device SSBO*>(as_type<ulong>(_10.b)))->a1 = float3(1.0, 2.0, 3.0); |
| uint2 _35 = as_type<uint2>(reinterpret_cast<ulong>(reinterpret_cast<device SSBO*>(as_type<ulong>(_10.b + uint2(32u))))); |
| uint2 v2 = _35; |
| device SSBO* _39 = reinterpret_cast<device SSBO*>(as_type<ulong>(_35)); |
| float3 v3 = float3(_39->a1); |
| _39->a1 = float3(_39->a1) + float3(1.0); |
| } |
| |