libretro / mupen64plus-libretro-nx

Improved mupen64plus libretro core reimplementation
GNU General Public License v2.0
212 stars 108 forks source link

[Glitches] black boxes/squares in Mario Kart 64 around "sprites" on RK3399 using mesa panfrost #321

Open SupervisedThinking opened 3 years ago

SupervisedThinking commented 3 years ago

I guess the screenshots are self explanatory.

System:

Version: https://github.com/libretro/mupen64plus-libretro-nx/commit/9ae6f16bb9c75f2d2f2fa2fc4fd001cf7dda6d95

Package: https://github.com/SupervisedThinking/LibreELEC-RR/blob/libreelec-10.0-RR/packages/supervisedthinking/emulation/libretro/mupen64plus-nx/package.mk

Screenshots: 1 2

Log:

[INFO] RetroArch 1.9.0 (Git 5e551dd)
[INFO] [Overrides]: Redirecting save file to "/storage/.config/retroarch/saves/Mario Kart 64 (Europe) (Rev A).srm".
[INFO] [Overrides]: Redirecting save state to "/storage/.config/retroarch/states/Mario Kart 64 (Europe) (Rev A).state".
[INFO] === Build =======================================
[INFO] Capabilities:  NEON ASIMD
[INFO] Built: Mar 13 2021
[INFO] Version: 1.9.0
[INFO] Git: 5e551dd
[INFO] =================================================
[INFO] [CORE]: Loading dynamic libretro core from: "/tmp/cores/mupen64plus_next_libretro.so"
[INFO] [Overrides]: No core-specific overrides found at /storage/.config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.cfg.
[INFO] [Overrides]: No content-dir-specific overrides found at /storage/.config/retroarch/config/Mupen64Plus-Next/n64.cfg.
[INFO] [Overrides]: No game-specific overrides found at /storage/.config/retroarch/config/Mupen64Plus-Next/Mario Kart 64 (Europe) (Rev A).cfg.
[INFO] [Environ]: GET_CORE_OPTIONS_VERSION.
[INFO] [Environ]: SET_CORE_OPTIONS.
[INFO] [Environ]: SET_CONTROLLER_INFO.
[INFO] [Remaps]: remap directory: /storage/.config/retroarch/remappings
[INFO] [Overrides]: Redirecting save file to "/storage/.config/retroarch/saves/Mario Kart 64 (Europe) (Rev A).srm".
[INFO] [Overrides]: Redirecting save state to "/storage/.config/retroarch/states/Mario Kart 64 (Europe) (Rev A).state".
[INFO] [Environ]: SYSTEM_DIRECTORY: "/storage/roms/bios".
[INFO] [Environ]: SYSTEM_DIRECTORY: "/storage/roms/bios".
[INFO] [Environ]: GET_LOG_INTERFACE.
[INFO] [Environ]: GET_PERF_INTERFACE.
[INFO] [Environ]: SET_PIXEL_FORMAT: XRGB8888.
[INFO] [Environ]: GET_RUMBLE_INTERFACE.
[INFO] [CONTENT LOAD]: Loading content file: /tmp/emulation/retroarch/Mario Kart 64 (Europe) (Rev A).n64.
[INFO] Did not find a valid content patch.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: RETRO_ENVIRONMENT_SET_CORE_OPTIONS_DISPLAY.
[INFO] [Environ]: SET_HW_RENDER.
[INFO] Requesting OpenGLES3 context.
[libretro INFO] mupen64plus: Using full mem base
[INFO] [Environ]: SYSTEM_DIRECTORY: "/storage/roms/bios".
[libretro INFO] mupen64plus: Goodname: Mario Kart 64 (E) (V1.1) [!]
[libretro INFO] mupen64plus: Name: MARIOKART64         
[libretro INFO] mupen64plus: MD5: 2BB149A583FDEFEA96805F628FE42FD9
[libretro INFO] mupen64plus: CRC: 2577C7D4 D18FAAAE
[libretro INFO] mupen64plus: Imagetype: .v64 (byteswapped)
[libretro INFO] mupen64plus: Rom size: 12582912 bytes (or 12 Mb or 96 Megabits)
[libretro INFO] mupen64plus: ClockRate = F
[libretro INFO] mupen64plus: Version: 1446
[libretro INFO] mupen64plus: Manufacturer: Nintendo
[libretro INFO] mupen64plus: Cartridge_ID: 544B
[libretro INFO] mupen64plus: Country: Unknown (0x150)
[libretro INFO] mupen64plus: PC = 80000400
[libretro INFO] mupen64plus: Save type: 0
[INFO] [SRAM]: Skipping SRAM load..
[INFO] Version of libretro API: 1
[INFO] Compiled against API: 1
[INFO] [Cheats]: Load game-specific cheatfile: /tmp/database/cht/Mupen64Plus-Next/Mario Kart 64 (Europe) (Rev A).cht
[INFO] [Audio]: Set audio input rate to: 44100.00 Hz.
[INFO] [Video]: Timings deviate too much. Will not adjust. (Display = 60.00 Hz, Game = 50.00 Hz)
[INFO] [Video]: Video @ fullscreen
[INFO] [Video]: Using HW render, OpenGL driver forced.
[INFO] [Video]: Using configured "gl" driver for GL HW render.
[WARN] [DRM]: Couldn't get device resources.
[WARN] [DRM]: Couldn't get device resources.
[INFO] [DRM]: Found 1 connectors.
[INFO] [DRM]: Connector 0 connected: yes
[INFO] [DRM]: Connector 0 has 16 modes.
[INFO] [DRM]: Connector 0 assigned to monitor index: #1.
[INFO] [DRM]: Mode 0: (1920x1080) 1920 x 1080, 50 Hz
[INFO] [DRM]: Mode 1: (1920x1080) 1920 x 1080, 60 Hz
[INFO] [DRM]: Mode 2: (1920x1080) 1920 x 1080, 60 Hz
[INFO] [DRM]: Mode 3: (1920x1080) 1920 x 1080, 30 Hz
[INFO] [DRM]: Mode 4: (1920x1080) 1920 x 1080, 30 Hz
[INFO] [DRM]: Mode 5: (1920x1080) 1920 x 1080, 25 Hz
[INFO] [DRM]: Mode 6: (1920x1080) 1920 x 1080, 24 Hz
[INFO] [DRM]: Mode 7: (1920x1080) 1920 x 1080, 24 Hz
[INFO] [DRM]: Mode 8: (1280x720) 1280 x 720, 60 Hz
[INFO] [DRM]: Mode 9: (1280x720) 1280 x 720, 60 Hz
[INFO] [DRM]: Mode 10: (1280x720) 1280 x 720, 50 Hz
[INFO] [DRM]: Mode 11: (1440x576) 1440 x 576, 50 Hz
[INFO] [DRM]: Mode 12: (1024x768) 1024 x 768, 60 Hz
[INFO] [DRM]: Mode 13: (1440x480) 1440 x 480, 60 Hz
[INFO] [DRM]: Mode 14: (1440x480) 1440 x 480, 60 Hz
[INFO] [DRM]: Mode 15: (800x600) 800 x 600, 75 Hz
[INFO] [GL]: Found GL context: kms
[INFO] [GL]: Detecting screen resolution 1920x1080.
[INFO] [EGL] Found EGL_EXT_platform_base, trying eglGetPlatformDisplayEXT
[INFO] [EGL]: EGL version: 1.4
[INFO] [EGL]: Created shared context: 0x1f160f0.
[INFO] [EGL]: Current context: 0x1f17fa0.
[INFO] [KMS]: New FB: 1920x1080 (stride: 7680).
[INFO] [GL]: Vendor: Panfrost, Renderer: Mali T860 (Panfrost).
[INFO] [GL]: Version: OpenGL ES 3.0 Mesa 21.1.0-devel.
[INFO] [GL]: Using resolution 1920x1080
[INFO] [GL]: Default shader backend found: glsl.
[INFO] [Shader driver]: Using GLSL shader backend.
[WARN] [GL]: Stock GLSL shaders will be used.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] Setting up menu pipeline shaders for XMB ... 
[INFO] [GLSL]: Compiling ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling simple ribbon shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling modern snow shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling bokeh shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GLSL]: Compiling snowflake shader..
[INFO] [GLSL]: Found GLSL vertex shader.
[INFO] [GLSL]: Found GLSL fragment shader.
[INFO] [GLSL]: Linking GLSL program.
[INFO] [GL]: Using 1 textures.
[INFO] [GL]: Loaded 1 program(s).
[INFO] [GL]: Initializing HW render (1024 x 1024).
[INFO] [GL]: Max texture size: 4096 px, renderbuffer size: 4096 px.
[INFO] [GL]: Supports FBO (render-to-texture).
[INFO] [Font]: Using font rendering backend: bitmap.
[INFO] [Video]: Graphics driver did not initialize an input driver. Attempting to pick a suitable driver.
[INFO] [udev]: Pad #0 (/dev/input/event5) supports force feedback.
[INFO] [udev]: Pad #0 (/dev/input/event5) supports 16 force feedback effects.
[INFO] [Joypad]: Found joypad driver: "udev".
[WARN] [udev]: Full-screen pointer won't be available.
[INFO] [Video]: Found display server: null
[INFO] [Environ]: SET_INPUT_DESCRIPTORS:
[INFO] [PulseAudio]: Requested 24576 bytes buffer, got 18432.
[INFO] [Display]: Found display driver: "gl".
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Environ]: SET_SUBSYSTEM_INFO.
[INFO] [Display]: Found display driver: "gl".
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [Font]: Using font rendering backend: freetype.
[INFO] [MIDI]: Input disabled.
[INFO] [MIDI]: Output disabled.
[INFO] [MIDI]: Initialized "null" driver.
[INFO] Disconnecting device from port 6.
[INFO] Disconnecting device from port 7.
[INFO] Disconnecting device from port 8.
[INFO] Disconnecting device from port 9.
[INFO] Disconnecting device from port 10.
[INFO] Disconnecting device from port 11.
[INFO] Disconnecting device from port 12.
[INFO] Disconnecting device from port 13.
[INFO] Disconnecting device from port 14.
[INFO] Disconnecting device from port 15.
[INFO] Disconnecting device from port 16.
[INFO] [Playlist]: Loading history file: [/storage/.config/retroarch/content_history.lpl].
[INFO] [Playlist]: Loading history file: [/storage/.config/retroarch/content_music_history.lpl].
[INFO] [Playlist]: Loading history file: [/storage/.config/retroarch/content_video_history.lpl].
[INFO] [Playlist]: Loading history file: [/storage/.config/retroarch/content_image_history.lpl].
[INFO] [Playlist]: Loading favorites file: [/storage/.config/retroarch/content_favorites.lpl].
[INFO] [GL]: VSync => on
[INFO] [Playlist]: Written to playlist file: /storage/.config/retroarch/content_history.lpl
[INFO] [Environ]: SYSTEM_DIRECTORY: "/storage/roms/bios".
[libretro INFO] mupen64plus: Game controller 0 (Standard controller) has a Memory pak plugged in
[libretro INFO] mupen64plus: Game controller 1 (Standard controller) has nothing plugged in
[libretro INFO] mupen64plus: Game controller 2 (Standard controller) has nothing plugged in
[libretro INFO] mupen64plus: Game controller 3 (Standard controller) has nothing plugged in
[libretro INFO] mupen64plus: Using CIC type X102
[INFO] [Environ]: SYSTEM_DIRECTORY: "/storage/roms/bios".
[INFO] [Environ]: SYSTEM_DIRECTORY: "/storage/roms/bios".
[INFO] [Environ]: SYSTEM_DIRECTORY: "/storage/roms/bios".
[INFO] [Environ]: SYSTEM_DIRECTORY: "/storage/roms/bios".
[INFO] [Environ]: SYSTEM_DIRECTORY: "/storage/roms/bios".
[libretro INFO] mupen64plus: Initializing 4 RDRAM modules for a total of 8 MB
[libretro INFO] mupen64plus: Starting R4300 emulator: Dynamic Recompiler
[libretro INFO] mupen64plus: Init new dynarec
[libretro INFO] mupen64plus: ARM CPU Features:
[INFO] [KMS]: New FB: 1920x1080 (stride: 7680).
[INFO] [KMS]: New FB: 1920x1080 (stride: 7680).
[INFO] [GL]: VSync => on
[INFO] [PulseAudio]: Pausing.
[INFO] [PulseAudio]: Unpausing.
[INFO] [config] Saved new config to "/storage/.config/retroarch/retroarch.cfg".
[INFO] [Cheats]: Save game-specific cheatfile: /tmp/database/cht/Mupen64Plus-Next/Mario Kart 64 (Europe) (Rev A).cht
[INFO] [SRAM]: Saving RAM type #0 to "/storage/.config/retroarch/saves/Mario Kart 64 (Europe) (Rev A).srm".
[INFO] [SRAM]: Saved successfully to "/storage/.config/retroarch/saves/Mario Kart 64 (Europe) (Rev A).srm".
[INFO] Content ran for a total of: 00 hours, 00 minutes, 27 seconds.
[INFO] Saving runtime log file: /storage/.config/retroarch/playlists/logs/Mupen64Plus-Next/Mario Kart 64 (Europe) (Rev A).lrtl
[INFO] [CORE]: Unloading game..
[INFO] [PulseAudio]: Pausing.
[INFO] [CORE]: Unloading core..
[libretro INFO] mupen64plus: Stopping emulation.
[libretro INFO] mupen64plus: R4300 emulator finished.
[INFO] [PERF]: Performance counters (libretro):
[INFO] [CORE]: Unloading core symbols..
[INFO] [Core Options]: Saved core options file to "/storage/.config/retroarch/config/Mupen64Plus-Next/Mupen64Plus-Next.opt"
[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
[INFO] [CONTENT LOAD]: Removing temporary content file: /tmp/emulation/retroarch/Mario Kart 64 (Europe) (Rev A).n64.
[INFO] [Video]: Does not have enough samples for monitor refresh rate estimation. Requires to run for at least 4096 frames.
plugin_start_gfx
m4xw commented 3 years ago

Core options?

SupervisedThinking commented 3 years ago

Mupen64Plus-Next.opt

mupen64plus-169screensize = "640x360"
mupen64plus-43screensize = "640x480"
mupen64plus-alt-map = "False"
mupen64plus-aspect = "4:3"
mupen64plus-astick-deadzone = "15"
mupen64plus-astick-sensitivity = "100"
mupen64plus-BackgroundMode = "OnePiece"
mupen64plus-BilinearMode = "standard"
mupen64plus-CorrectTexrectCoords = "Off"
mupen64plus-CountPerOp = "0"
mupen64plus-cpucore = "dynamic_recompiler"
mupen64plus-d-cbutton = "C3"
mupen64plus-DitheringPattern = "False"
mupen64plus-DitheringQuantization = "False"
mupen64plus-EnableCopyAuxToRDRAM = "False"
mupen64plus-EnableCopyColorToRDRAM = "Sync"
mupen64plus-EnableCopyDepthToRDRAM = "Software"
mupen64plus-EnableEnhancedHighResStorage = "False"
mupen64plus-EnableEnhancedTextureStorage = "False"
mupen64plus-EnableFBEmulation = "True"
mupen64plus-EnableFragmentDepthWrite = "False"
mupen64plus-EnableHiResAltCRC = "False"
mupen64plus-EnableHWLighting = "False"
mupen64plus-EnableLegacyBlending = "True"
mupen64plus-EnableLODEmulation = "True"
mupen64plus-EnableNativeResFactor = "0"
mupen64plus-EnableNativeResTexrects = "Disabled"
mupen64plus-EnableOverscan = "Enabled"
mupen64plus-EnableTextureCache = "True"
mupen64plus-ForceDisableExtraMem = "False"
mupen64plus-FrameDuping = "False"
mupen64plus-Framerate = "Original"
mupen64plus-FXAA = "0"
mupen64plus-GLideN64IniBehaviour = "late"
mupen64plus-HybridFilter = "True"
mupen64plus-IgnoreTLBExceptions = "False"
mupen64plus-l-cbutton = "C2"
mupen64plus-MaxTxCacheSize = "8000"
mupen64plus-MultiSampling = "0"
mupen64plus-OverscanBottom = "0"
mupen64plus-OverscanLeft = "0"
mupen64plus-OverscanRight = "0"
mupen64plus-OverscanTop = "0"
mupen64plus-pak1 = "memory"
mupen64plus-pak2 = "none"
mupen64plus-pak3 = "none"
mupen64plus-pak4 = "none"
mupen64plus-r-cbutton = "C1"
mupen64plus-rdp-plugin = "gliden64"
mupen64plus-RDRAMImageDitheringMode = "False"
mupen64plus-rsp-plugin = "hle"
mupen64plus-ThreadedRenderer = "False"
mupen64plus-txCacheCompression = "True"
mupen64plus-txEnhancementMode = "None"
mupen64plus-txFilterIgnoreBG = "True"
mupen64plus-txFilterMode = "None"
mupen64plus-txHiresEnable = "False"
mupen64plus-txHiresFullAlphaChannel = "False"
mupen64plus-u-cbutton = "C4"
mupen64plus-virefresh = "Auto"
m4xw commented 3 years ago

Try each value of MaxTxCacheSize, close + open the core between tests

SupervisedThinking commented 3 years ago

I've tried both 1500/4000 as value for MaxTxCacheSize but still the black squares. A A311D (S922X) with Mali G52 & panfrost driver does not show those squares btw. so it might be a Mesa bug?

m4xw commented 3 years ago

Certainly sounds like driver shenanigans. I know MESA on Switch is fine, so either specific to the device or MESA version Probably a upstream issue

SupervisedThinking commented 3 years ago

I've opened an issue here about that https://gitlab.freedesktop.org/mesa/mesa/-/issues/4468

m4xw commented 2 years ago

Can you check again on last release? should be on the bot in ~3h worst case

SupervisedThinking commented 2 years ago

I've tried https://github.com/libretro/mupen64plus-libretro-nx/commit/ecfc77e9a49617d25b683aec7a8217bd044cfc6a + Mesa 21.2.0-RC3 + Linux 5.10.47 but still the same black boxes on my RK3399

SupervisedThinking commented 2 years ago

Btw. Super Smash Bros. has the same glitches, the powerups & other sprites have black boxes around the,

netthier commented 2 years ago

Also affected on the Pinebook Pro with mesa 21.2.4. I compiled mupen64plus with platform="rpi4" FORCE_GLES3=1

SupervisedThinking commented 2 years ago

Also affected on the Pinebook Pro with mesa 21.2.4. I compiled mupen64plus with platform="rpi4" FORCE_GLES3=1

I guess platform should be RK3399 for a Pinebook Pro? Anyway I've still the same issue with mesa 21.3-RC & latest mupen64plus-nx. The RK3288 is also affected https://gitlab.freedesktop.org/mesa/mesa/-/issues/4468#note_1107435

netthier commented 2 years ago

I guess platform should be RK3399 for a Pinebook Pro? Anyway I've still the same issue with mesa 21.3-RC & latest mupen64plus-nx. The RK3288 is also affected https://gitlab.freedesktop.org/mesa/mesa/-/issues/4468#note_1107435

You're right, I followed a different guide and didn't know mupen64plus supported that flag. Issue still present though.

This also affects way more games than just Mario Kart. Super Mario 64 and Paper Mario have gray boxes around the cursors for example.

SupervisedThinking commented 2 years ago

Yes it's a bunch of games e.g. the mentioned Super Smash Bros. is also affected. Looks like all "sprites" with transparency aren't actually transparent but black.

@gonetz maybe you've got any idea what could be the underlaying problem?

gouchi commented 2 years ago

The issue seems to occur only in game not using the apitrace replay.

m4xw commented 2 years ago

I wonder if smth in the init process changed?

m4xw commented 2 years ago

Could try yeeting https://github.com/libretro/mupen64plus-libretro-nx/blob/develop/GLideN64/src/Graphics/OpenGLContext/mupen64plus/mupen64plus_DisplayWindow.cpp#L79-L81 and check for a change in behaviour Thats there since ages tho

SupervisedThinking commented 2 years ago

I've tested it yesterday with mesa 22.0-dev and the bug is still there, works still fine with panfrost & lima on G52 / Mali 450 I'll give it a try later but have to rebuild images first.

SupervisedThinking commented 2 years ago

@m4xw I've tested

--- /GLideN64/src/Graphics/OpenGLContext/mupen64plus/mupen64plus_DisplayWindow.cpp
+++ /GLideN64/src/Graphics/OpenGLContext/mupen64plus/mupen64plus_DisplayWindow.cpp
@@ -76,10 +76,6 @@
    _getDisplaySize();
    _setBufferSize();

-#ifdef EGL
-   eglInitialize(eglGetDisplay(EGL_DEFAULT_DISPLAY), nullptr, nullptr);
-#endif // EGL
-
    LOG(LOG_VERBOSE, "[GlideN64]: Create setting videomode %dx%d", m_screenWidth, m_screenHeight);
    return true;
 }

but it doesn't changed the visual artifacts