1#include <metal_stdlib> 2#include <simd/simd.h> 3#ifdef __clang__ 4#pragma clang diagnostic ignored "-Wall" 5#endif 6using namespace metal; 7struct Inputs { 8 uint3 sk_GlobalInvocationID; 9}; 10struct inputBlock { 11 uint offset; 12 int src[1]; 13}; 14struct outputBlock { 15 int dest[1]; 16}; 17struct Globals { 18 const device inputBlock* _anonInterface0; 19 device outputBlock* _anonInterface1; 20}; 21kernel void computeMain(uint3 sk_GlobalInvocationID [[thread_position_in_grid]], const device inputBlock& _anonInterface0 [[buffer(0)]], device outputBlock& _anonInterface1 [[buffer(1)]]) { 22 Globals _globals{&_anonInterface0, &_anonInterface1}; 23 (void)_globals; 24 Inputs _in = { sk_GlobalInvocationID }; 25 _globals._anonInterface1->dest[_in.sk_GlobalInvocationID.x] = _globals._anonInterface0->src[_in.sk_GlobalInvocationID.x] + _globals._anonInterface0->src[_in.sk_GlobalInvocationID.x + _globals._anonInterface0->offset]; 26 return; 27} 28