metal: fix incorrect _free on interpreter exit (#11158)

This commit is contained in:
Pyry Kovanen
2025-07-10 14:01:30 +03:00
committed by GitHub
parent 3d610f6d2b
commit 32117402dd
+2 -1
View File
@@ -198,7 +198,8 @@ class MetalAllocator(LRUAllocator[MetalDevice]):
ret = msg("newBufferWithLength:options:", objc_id)(self.dev.sysdevice, ctypes.c_ulong(size), MTLResourceOptions.MTLResourceStorageModeShared)
if ret.value is None: raise MemoryError(f"Metal OOM while allocating {size=}")
return MetalBuffer(ret, size)
def _free(self, opaque:MetalBuffer, options): msg("release")(opaque.buf)
def _free(self, opaque:MetalBuffer, options):
if msg is not None and libobjc is not None: msg("release")(opaque.buf)
def _transfer(self, dest:MetalBuffer, src:MetalBuffer, sz:int, src_dev:MetalDevice, dest_dev:MetalDevice):
dest_dev.synchronize()
src_command_buffer = msg("commandBuffer", objc_instance)(src_dev.mtl_queue)