mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-26 02:11:36 -04:00
fff384da0c
The GL native-wide present (Option B) did glFinish + glReadPixels of the whole wide FBO to the CPU and re-uploaded it EVERY frame — a hard GPU pipeline stall + round-trip that made OpenGL 16:9 run far slower than the software renderer (whose wide path is pure CPU, no GPU sync). Confirmed by isolation: GL 4:3 smooth, GL 16:9 slow, independent of SS/AA. Add gl_renderer_present_wide_fbo: blit the displayed buffer's wide FBO straight to the window with glBlitFramebuffer (GPU-side, V-flipped, into the letterbox), exactly like the canonical gl_renderer_present_vram — no readback, no glFinish, no re-upload. main.cpp routes wide GL frames here (falling back to the CPU readout only if the wide surface doesn't exist yet). USER-VALIDATED smooth. The CPU readback path (glb_render_wide_display) stays as the fallback + the wide_shot probe. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>