#include <metal_stdlib> | |
#include <simd/simd.h> | |
using namespace metal; | |
struct S0 | |
{ | |
float4 a; | |
}; | |
struct SSBO0 | |
{ | |
S0 s0s[1]; | |
}; | |
struct S1 | |
{ | |
float4 a; | |
}; | |
struct SSBO1 | |
{ | |
S1 s1s[1]; | |
}; | |
struct SSBO2 | |
{ | |
float4 outputs[1]; | |
}; | |
constant uint3 gl_WorkGroupSize [[maybe_unused]] = uint3(1u); | |
kernel void main0(device SSBO0& _36 [[buffer(0)]], device SSBO1& _55 [[buffer(1)]], device SSBO2& _66 [[buffer(2)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) | |
{ | |
_66.outputs[gl_GlobalInvocationID.x] = _36.s0s[gl_GlobalInvocationID.x].a + _55.s1s[gl_GlobalInvocationID.x].a; | |
} | |