mirror of
https://github.com/RetroPortingToolKit/psxrecomp
synced 2026-10-28 02:56:36 -04:00
b592447136
The FBO-present crop shader sampled a sub-region of the 1024x512 VRAM texture with vertex-interpolated UVs; sub-texel precision over the fullscreen triangle produced a vertical seam and text smearing on screen (the GPU render itself was correct — forcing the software present path showed a clean image, which localized the bug to the present sampling). Replace the crop shader with glBlitFramebuffer: an exact integer-rect copy of the display region from the FBO to the window, with the vertical flip folded into the dst rect. No per-fragment UV math, no sub-texel error. linear=GL_LINEAR (AA) else GL_NEAREST. Also: - screenshot now calls gl_renderer_sync_cpu() first, so captures reflect the on-screen frame under the FBO-present path (was reading stale CPU VRAM). Safe: the debug server is pumped on the main GL-context thread. - PSX_GL_FORCE_CPU_PRESENT=1 forces the software readout present path — a fallback/diagnostic that also keeps CPU VRAM current every frame. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>