Explorar el Código

SDL_test: add --gpu option

Anonymous Maarten hace 1 año
padre
commit
88fe52df7b
Se han modificado 3 ficheros con 13 adiciones y 2 borrados
  1. 1 0
      include/SDL3/SDL_test_common.h
  2. 10 0
      src/test/SDL_test_common.c
  3. 2 2
      test/testgpu_spinning_cube.c

+ 1 - 0
include/SDL3/SDL_test_common.h

@@ -91,6 +91,7 @@ typedef struct
     SDL_DisplayMode fullscreen_mode;
     SDL_DisplayMode fullscreen_mode;
     int num_windows;
     int num_windows;
     SDL_Window **windows;
     SDL_Window **windows;
+    const char *gpudriver;
 
 
     /* Renderer info */
     /* Renderer info */
     const char *renderdriver;
     const char *renderdriver;

+ 10 - 0
src/test/SDL_test_common.c

@@ -72,6 +72,7 @@ static const char *video_usage[] = {
     "[--usable-bounds]",
     "[--usable-bounds]",
     "[--utility]",
     "[--utility]",
     "[--video driver]",
     "[--video driver]",
+    "[--gpu driver]",
     "[--vsync]"
     "[--vsync]"
 };
 };
 
 
@@ -615,6 +616,15 @@ int SDLTest_CommonArg(SDLTest_CommonState *state, int index)
             state->hide_cursor = SDL_TRUE;
             state->hide_cursor = SDL_TRUE;
             return 1;
             return 1;
         }
         }
+        if (SDL_strcasecmp(argv[index], "--gpu") == 0) {
+            ++index;
+            if (!argv[index]) {
+                return -1;
+            }
+            state->gpudriver = argv[index];
+            SDL_SetHint(SDL_HINT_GPU_DRIVER, state->gpudriver);
+            return 2;
+        }
     } else {
     } else {
         if (SDL_strcasecmp(argv[index], "--info") == 0) {
         if (SDL_strcasecmp(argv[index], "--info") == 0) {
             ++index;
             ++index;

+ 2 - 2
test/testgpu_spinning_cube.c

@@ -1,5 +1,5 @@
 /*
 /*
-  Copyright (C) 1997-2022 Sam Lantinga <slouken@libsdl.org>
+  Copyright (C) 1997-2024 Sam Lantinga <slouken@libsdl.org>
 
 
   This software is provided 'as-is', without any express or implied
   This software is provided 'as-is', without any express or implied
   warranty.  In no event will the authors be held liable for any damages
   warranty.  In no event will the authors be held liable for any damages
@@ -470,7 +470,7 @@ init_render_state(int msaa)
     gpu_device = SDL_CreateGPUDevice(
     gpu_device = SDL_CreateGPUDevice(
         TESTGPU_SUPPORTED_FORMATS,
         TESTGPU_SUPPORTED_FORMATS,
         SDL_TRUE,
         SDL_TRUE,
-        NULL
+        state->gpudriver
     );
     );
     CHECK_CREATE(gpu_device, "GPU device");
     CHECK_CREATE(gpu_device, "GPU device");