diff --git a/include/SDL3/SDL_test_common.h b/include/SDL3/SDL_test_common.h index dcc0c7bc7..8bef92955 100644 --- a/include/SDL3/SDL_test_common.h +++ b/include/SDL3/SDL_test_common.h @@ -91,6 +91,7 @@ typedef struct SDL_DisplayMode fullscreen_mode; int num_windows; SDL_Window **windows; + const char *gpudriver; /* Renderer info */ const char *renderdriver; diff --git a/src/test/SDL_test_common.c b/src/test/SDL_test_common.c index 4805fd9a9..71e360957 100644 --- a/src/test/SDL_test_common.c +++ b/src/test/SDL_test_common.c @@ -72,6 +72,7 @@ static const char *video_usage[] = { "[--usable-bounds]", "[--utility]", "[--video driver]", + "[--gpu driver]", "[--vsync]" }; @@ -615,6 +616,15 @@ int SDLTest_CommonArg(SDLTest_CommonState *state, int index) state->hide_cursor = SDL_TRUE; 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 { if (SDL_strcasecmp(argv[index], "--info") == 0) { ++index; diff --git a/test/testgpu_spinning_cube.c b/test/testgpu_spinning_cube.c index eb4b5491e..4aed3aff2 100644 --- a/test/testgpu_spinning_cube.c +++ b/test/testgpu_spinning_cube.c @@ -1,5 +1,5 @@ /* - Copyright (C) 1997-2022 Sam Lantinga + Copyright (C) 1997-2024 Sam Lantinga This software is provided 'as-is', without any express or implied 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( TESTGPU_SUPPORTED_FORMATS, SDL_TRUE, - NULL + state->gpudriver ); CHECK_CREATE(gpu_device, "GPU device");