#include #include using namespace metal; struct myBlock { int a; float b; }; // Support GLSL mod(), which is slightly different than Metal fmod() template Tx mod(Tx x, Ty y) { return x - y * floor(x / y); } kernel void main0(device myBlock& myStorage [[buffer(0)]]) { myStorage.a = (myStorage.a + 1) % 256; myStorage.b = mod(myStorage.b + 0.0199999995529651641845703125, 1.0); }