From 62124e2c283dc6a5d411df0612e197155f5b299a Mon Sep 17 00:00:00 2001 From: Caleb Cornett Date: Mon, 23 Dec 2024 18:08:14 -0500 Subject: [PATCH] GPU: Enable Metal validation in debug mode (#11691) --- src/gpu/metal/SDL_gpu_metal.m | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/gpu/metal/SDL_gpu_metal.m b/src/gpu/metal/SDL_gpu_metal.m index be64b366ff..028e18a438 100644 --- a/src/gpu/metal/SDL_gpu_metal.m +++ b/src/gpu/metal/SDL_gpu_metal.m @@ -4343,6 +4343,15 @@ static SDL_GPUDevice *METAL_CreateDevice(bool debugMode, bool preferLowPower, SD MetalRenderer *renderer; id device = NULL; + if (debugMode) { + /* Due to a Metal driver quirk, once a MTLDevice has been created + * with this environment variable set, the Metal validation layers + * will remain enabled for the rest of the application's lifespan, + * even if the device is destroyed and recreated. + */ + SDL_setenv_unsafe("MTL_DEBUG_LAYER", "1", 0); + } + // Create the Metal device and command queue #ifdef SDL_PLATFORM_MACOS if (preferLowPower) {