Parcourir la source

GPU: Enable Metal validation in debug mode (#11691)

Caleb Cornett il y a 3 mois
Parent
commit
62124e2c28
1 fichiers modifiés avec 9 ajouts et 0 suppressions
  1. 9 0
      src/gpu/metal/SDL_gpu_metal.m

+ 9 - 0
src/gpu/metal/SDL_gpu_metal.m

@@ -4343,6 +4343,15 @@ static SDL_GPUDevice *METAL_CreateDevice(bool debugMode, bool preferLowPower, SD
         MetalRenderer *renderer;
         id<MTLDevice> 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) {