#include <metal_stdlib> | |
#include <simd/simd.h> | |
using namespace metal; | |
struct SSBO | |
{ | |
float4x4 mvp; | |
float4 in_data[1]; | |
}; | |
struct SSBO2 | |
{ | |
float4 out_data[1]; | |
}; | |
kernel void main0(const device SSBO& _28 [[buffer(0)]], device SSBO2& _52 [[buffer(1)]], uint3 gl_GlobalInvocationID [[thread_position_in_grid]]) | |
{ | |
uint ident = gl_GlobalInvocationID.x; | |
int i = 0; | |
float4 idat = _28.in_data[ident]; | |
do | |
{ | |
idat = _28.mvp * idat; | |
i++; | |
} while (i < 16); | |
_52.out_data[ident] = idat; | |
} | |