Browse Source

SDL_test: add --gpu option

Anonymous Maarten 11 tháng trước cách đây
mục cha
commit
88fe52df7b

+ 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 <[email protected]>
+  Copyright (C) 1997-2024 Sam Lantinga <[email protected]>
 
 
   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");