SDL: gpu: validate transfer buffer usage (#15923)

From 095e8999737419a82df7e321a33fd2d2141722a0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zana=20Dom=C3=A1n?=
 <88244790+zanadoman@users.noreply.github.com>
Date: Sat, 4 Jul 2026 02:11:35 +0200
Subject: [PATCH] gpu: validate transfer buffer usage (#15923)

---
 src/gpu/SDL_gpu.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/gpu/SDL_gpu.c b/src/gpu/SDL_gpu.c
index d326ca1fc7f8d..1c41f5ed299e4 100644
--- a/src/gpu/SDL_gpu.c
+++ b/src/gpu/SDL_gpu.c
@@ -1430,6 +1430,13 @@ SDL_GPUTransferBuffer *SDL_CreateGPUTransferBuffer(
         return NULL;
     }
 
+    if (device->debug_mode) {
+        if (createinfo->usage != SDL_GPU_TRANSFERBUFFERUSAGE_UPLOAD &&
+            createinfo->usage != SDL_GPU_TRANSFERBUFFERUSAGE_DOWNLOAD) {
+            SDL_assert_release(!"Invalid transfer buffer usage!");
+        }
+    }
+
     const char *debugName = SDL_GetStringProperty(createinfo->props, SDL_PROP_GPU_TRANSFERBUFFER_CREATE_NAME_STRING, NULL);
 
     return device->CreateTransferBuffer(