From a689a8a3fa2569dffbbb629dde34fb470cb8343e Mon Sep 17 00:00:00 2001 From: John Cranston Date: Thu, 22 Oct 2026 01:54:05 -0700 Subject: [PATCH] Unbind the read framebuffer before the swap, for OBS's game capture. The renderer left the back buffer's render target bound as the read framebuffer after the display blit. OBS's game capture copies the window from the read framebuffer bound in the context at SwapBuffers, so it copied that render target, which is drawn top row first, and the recording was upside down. Recorded with OBS 32.2.2 before and after: upside down, then upright. Co-Authored-By: Claude Fable 5.1 --- port/linux/src/d3d8_gl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/port/linux/src/d3d8_gl.c b/port/linux/src/d3d8_gl.c index 5c9e26c2..5f29c74a 100644 --- a/port/linux/src/d3d8_gl.c +++ b/port/linux/src/d3d8_gl.c @@ -6808,6 +6808,7 @@ void WINAPI D3DDevice_Present(CONST RECT *source_rectangle, CONST RECT *destinat x, y + height, x + width, y, GL_COLOR_BUFFER_BIT, GL_LINEAR); } glBindVertexArray(device.vertex_array); + glBindFramebuffer(GL_READ_FRAMEBUFFER, 0); platform_video_swap(); #ifndef HALO_GLES visibility_read_batch();