mgba-emu / mgba

mGBA Game Boy Advance Emulator
https://mgba.io/
Mozilla Public License 2.0
5.66k stars 775 forks source link

[OpenGL] Renders mode 4 second row twice, last row cut off #1661

Open crawfxrd opened 4 years ago

crawfxrd commented 4 years ago

mgba-qt renders the second row twice, and the last row is cut off from the display.

Doesn't happen in: 0.7.2 (c2b6692ce), 0.7.3 (7cd7a4165). Happens in: f455650f0, 9886bce15, 0.8-b1 (13893803c), 0.8.0 (2368391f3), 7c0f3842a.

SDL: mgba-sdl Qt: mgba-qt

endrift commented 4 years ago

Which display driver?

crawfxrd commented 4 years ago

I'm on an X11 session using amdgpu.

endrift commented 4 years ago

No, I mean the Display driver setting in mGBA, under Audio/Video

crawfxrd commented 4 years ago

OpenGL driver. I just retested with Qt software rendering on 7c0f3842a and that works.

endrift commented 4 years ago

I can't reproduce. Can you track down when it started failing?

crawfxrd commented 4 years ago

Important piece of info for this is I'm drawing in mode 4.

I played with the settings and found both of these are required to produce the issue:

Audio/Video > Display driver: OpenGL Enhancements > Video renderer: OpenGL

So going off that second settings, I went all the way back. It happens since 20ea552d1. It doesn't appear on the same rows, but there's definitely still distortions. (Between 845041708 and that, drawing in mode 4 just shows a black screen.)

The behavior I originally reported seems to start with cc71f7f96.

endrift commented 4 years ago

This has nothing to do with Qt then, and everything to do with the new OpenGL renderer that's not even in 0.7

endrift commented 3 years ago

I have a work in progress fix for this, however it causes the interpolation of the first few scanlines to become noisy so it won't be ready for 0.9.1.