diff --git a/src/modules/graphics/metal/Buffer.mm b/src/modules/graphics/metal/Buffer.mm index f808f26a7..ab6146481 100644 --- a/src/modules/graphics/metal/Buffer.mm +++ b/src/modules/graphics/metal/Buffer.mm @@ -75,6 +75,8 @@ Buffer::Buffer(love::graphics::Graphics *gfx, id device, const Settin { if (@available(iOS 12, macOS 10.14, *)) { + // TODO: minimumTextureBufferAlignmentForPixelFormat + MTLPixelFormat pixformat = getMTLPixelFormat(getDataMember(0).decl.format); size_t width = arraylength * getDataMembers().size(); auto desc = [MTLTextureDescriptor textureBufferDescriptorWithPixelFormat:pixformat @@ -90,6 +92,12 @@ Buffer::Buffer(love::graphics::Graphics *gfx, id device, const Settin if (data != nullptr) fill(0, size, data); + else if (settings.zeroInitialize) + { + auto *mgfx = (Graphics *) gfx; + auto encoder = mgfx->useBlitEncoder(); + [encoder fillBuffer:buffer range:NSMakeRange(0, size) value:0]; + } }} Buffer::~Buffer()