27 lines
529 B
Plaintext
27 lines
529 B
Plaintext
|
#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)]])
|
||
|
{
|
||
|
((device SSBO*)as_type<uint64_t>(_10.b))->a1 = float3(1.0, 2.0, 3.0);
|
||
|
uint2 v2 = as_type<uint2>((uint64_t)((device SSBO*)as_type<uint64_t>(_10.b + uint2(32u))));
|
||
|
float3 v3 = float3(((device SSBO*)as_type<uint64_t>(v2))->a1);
|
||
|
((device SSBO*)as_type<uint64_t>(v2))->a1 = v3 + float3(1.0);
|
||
|
}
|
||
|
|