#include <metal_stdlib> | |
#include <simd/simd.h> | |
using namespace metal; | |
struct Foo | |
{ | |
float4x4 m; | |
}; | |
struct SSBO2 | |
{ | |
Foo out_data[1]; | |
}; | |
struct SSBO | |
{ | |
Foo in_data[1]; | |
}; | |
kernel void main0(const device SSBO& _30 [[buffer(0)]], device SSBO2& _23 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) | |
{ | |
uint ident = gl_GlobalInvocationID.x; | |
_23.out_data[ident].m = _30.in_data[ident].m * _30.in_data[ident].m; | |
} | |