[crocus] [Haswell ULT/Gen 7.5] Corruption in "New Super Mario Bros" in the Nintendo DS emulator "melonDS".
System information
System:
Host: 14-g1 Kernel: 6.6.9-arch1-1 arch: x86_64 bits: 64 compiler: gcc
v: 13.2.1 Desktop: KDE Plasma v: 5.27.10 tk: Qt v: 5.15.11 wm: kwin_x11
dm: SDDM Distro: Arch Linux
CPU:
Info: dual core model: Intel Celeron 2955U bits: 64 type: MCP arch: Haswell
rev: 1 cache: L1: 128 KiB L2: 512 KiB L3: 2 MiB
Speed (MHz): avg: 800 min/max: 800/1400 cores: 1: 800 2: 800
bogomips: 5588
Flags: ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
Device-1: Intel Haswell-ULT Integrated Graphics driver: i915 v: kernel
arch: Gen-7.5 ports: active: eDP-1 empty: HDMI-A-1 bus-ID: 00:02.0
chip-ID: 8086:0a06
Device-2: Cheng Uei Precision Industry (Foxlink) Webcam driver: uvcvideo
type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 bus-ID: 1-3:2 chip-ID: 05c8:036e
Display: x11 server: X.Org v: 21.1.10 with: Xwayland v: 23.2.3
compositor: kwin_x11 driver: X: loaded: modesetting
alternate: fbdev,intel,vesa dri: crocus gpu: i915 display-ID: :0
screens: 1
Screen-1: 0 s-res: 1366x768 s-dpi: 96
Monitor-1: eDP-1 model: BOE Display 0x05c4 res: 1366x768 dpi: 112
diag: 354mm (13.9")
API: EGL v: 1.5 platforms: device: 0 drv: crocus device: 1 drv: swrast
surfaceless: drv: crocus x11: drv: crocus inactive: gbm,wayland
API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel v: N/A glx-v: 1.4
direct-render: yes renderer: Mesa Intel HD Graphics (HSW GT1)
device-ID: 8086:0a06
API: Vulkan v: 1.3.274 surfaces: xcb,xlib device: 0 type: integrated-gpu
driver: mesa intel device-ID: 8086:0a06 device: 1 type: cpu
driver: mesa llvmpipe device-ID: 10005:0000
Since I cannot find my Mesa version listed here, glxinfo reports Mesa 24.0.0-devel (git-b6d22358e4)
. I will attach the entirety of glxinfo's output below.
Describe the issue
Upon starting the main game of "New Super Mario Bros", graphical corruption, which is very apparent, can be seen. In the main game, it may take entering a level, and leaving to the world map for the issue to appear. This can also be seen in some of the mini-games found inside the game. All of the above is reproducible every time for me, as long as the OpenGL (not software) renderer is used. One of these mini-games can be observed in the apitrace added below.
Additional information
Setting INTEL_DEBUG=no16 helps alleviate the issue, but the issue doesn't go away completely. This is shown in the videos below. I did go back a few releases (I think Mesa 23.0 is as far as I went), but the issue persisted in all versions tested. If I run the game using zink, the issue disappears. I'm not sure why this is the case, however.
Log files as attachment
Screenshots/video files (if applicable)
When ran normally, heavy corruption can be seen. Interestingly, pausing the game causes the artifacts to become black.
Using INTEL_DEBUG=no16 helps some, but it's not enough to fully erase the problem.
Using llvmpipe, it's possible to see what the game should normally look like.