浏览代码

SDL_test: add --gpu option

Anonymous Maarten 1 年之前
父节点
当前提交
88fe52df7b
共有 3 个文件被更改,包括 13 次插入2 次删除
  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");