mirror of
https://github.com/libretro/RetroArch
synced 2025-01-31 15:32:59 +00:00
64dc3dde40
On the 3DS, for some cores, the screen will flicker if OSD is enabled, and sometimes when going in and out of the menu. As far as I can tell, this happens when a frame is dup'd, and we send 0x0 as the frame to the gfx driver. When that happens, we still draw the OSD, using a vertex shader to transform and render it at the right size. When the frame is 0x0, though, the vertex shader uniforms are never _reset_ to redraw the previous frame, so it's drawn with different params, and gets drawn the wrong size. It will draw as the correct size when the correct vertex shader uniforms are set, and the incorrect size when the incorrect uniforms are set, causing flickering. At least, that's what I think is happening. Forcing the vertex shader to be set regardless of whether the frame data is set fixes it, at least during some light testing with PCSX.