diff --git a/src/gpu/metal/SDL_gpu_metal.m b/src/gpu/metal/SDL_gpu_metal.m index c8713885d0..a057eab7bb 100644 --- a/src/gpu/metal/SDL_gpu_metal.m +++ b/src/gpu/metal/SDL_gpu_metal.m @@ -3545,6 +3545,8 @@ static void METAL_INTERNAL_PerformPendingDestroys( Sint32 i; Uint32 j; + SDL_LockMutex(renderer->disposeLock); + for (i = renderer->bufferContainersToDestroyCount - 1; i >= 0; i -= 1) { referenceCount = 0; for (j = 0; j < renderer->bufferContainersToDestroy[i]->bufferCount; j += 1) { @@ -3574,6 +3576,8 @@ static void METAL_INTERNAL_PerformPendingDestroys( renderer->textureContainersToDestroyCount -= 1; } } + + SDL_UnlockMutex(renderer->disposeLock); } // Fences