From 0c57e99b4a47a48f1110764252247d024a4f5abd Mon Sep 17 00:00:00 2001
From: Ethan Lee <[EMAIL REDACTED]>
Date: Sat, 7 Mar 2026 10:36:19 -0500
Subject: [PATCH] gpu: Fix swapchain texture cycling.
This is actually a 1:1 copy of a patch we wrote for GPU PS5 some time ago!
---
src/gpu/d3d12/SDL_gpu_d3d12.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/gpu/d3d12/SDL_gpu_d3d12.c b/src/gpu/d3d12/SDL_gpu_d3d12.c
index 7a722caeab297..42bb634c53337 100644
--- a/src/gpu/d3d12/SDL_gpu_d3d12.c
+++ b/src/gpu/d3d12/SDL_gpu_d3d12.c
@@ -8107,7 +8107,10 @@ static bool D3D12_Submit(
windowData->inFlightFences[windowData->frameCounter] = (SDL_GPUFence *)d3d12CommandBuffer->inFlightFence;
(void)SDL_AtomicIncRef(&d3d12CommandBuffer->inFlightFence->referenceCount);
- windowData->frameCounter = (windowData->frameCounter + 1) % renderer->allowedFramesInFlight;
+
+ // Normally this is '% allowedFramesInFlight', but the value gets clamped
+ // at swapchain creation time, so use swapchainTextureCount instead
+ windowData->frameCounter = (windowData->frameCounter + 1) % windowData->swapchainTextureCount;
}
// Check for cleanups