libretro / libretro/parallel-n64
mupen64plus-libretro: crash on Mali GPU (Android)
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 407
- Forks
- 151
- Avg merge
- 11h 53m
- Merged PRs (30d)
- 11
Description
Hi,
I found mupen64plus core run ok on GPU Adreno, but crash on GPU Mali-450, Mali-400, Mali-300.
Here is a error log from a Mali-450 device:
11-15 18:34:59.933: I/RetroArch(23778): Environ GET_VARIABLE mupen64-filtering:
11-15 18:34:59.933: I/RetroArch(23778): automatic
11-15 18:34:59.933: I/RetroArch(23778): Environ GET_VARIABLE mupen64-filtering:
11-15 18:34:59.933: I/RetroArch(23778): automatic
11-15 18:34:59.943: I/RetroArch[libretro INFO] ::(23778): Detected RDRAM size: 007fffff
11-15 18:34:59.943: I/RetroArch(23778): Environ GET_VARIABLE mupen64-screensize:
11-15 18:34:59.943: I/RetroArch(23778): 640x480
11-15 18:34:59.943: I/RetroArch[libretro INFO] ::(23778): GL_RENDERER: Mali-450 MP
11-15 18:34:59.943: E/RetroArch[libretro ERROR] ::(23778): 0:20: P0004: High precision not supported, instead compiling high precision as medium precision
11-15 18:34:59.943: E/RetroArch[libretro ERROR] ::(23778): 0:30: L0002: Undeclared variable 'gl_FragDepth'
11-15 18:34:59.943: A/libc(23778): Fatal signal 11 (SIGSEGV) at 0x0000004a (code=1), thread 23855 (com.retroarch)
For comparison, here is a ok log from a Adreno-320 device:
11-15 18:02:01.119: I/RetroArch:(28458): Environ GET_VARIABLE mupen64-filtering:
11-15 18:02:01.119: I/RetroArch:(28458): automatic
11-15 18:02:01.119: I/RetroArch:(28458): Environ GET_VARIABLE mupen64-filtering:
11-15 18:02:01.119: I/RetroArch:(28458): automatic
11-15 18:02:01.119: I/RetroArch: [libretro INFO] ::(28458): Detected RDRAM size: 007fffff
11-15 18:02:01.119: I/RetroArch:(28458): Environ GET_VARIABLE mupen64-screensize:
11-15 18:02:01.119: I/RetroArch:(28458): 640x480
11-15 18:02:01.119: I/RetroArch: [libretro INFO] ::(28458): GL_RENDERER: Adreno (TM) 320
11-15 18:02:01.159: I/RetroArch: [libretro INFO] ::(28458): mupen64plus: Starting R4300 emulator: Dynamic Recompiler
11-15 18:02:01.159: I/RetroArch: [libretro INFO] ::(28458): mupen64plus: Init new dynarec
11-15 18:02:01.159: I/RetroArch: [libretro INFO] ::(28458): mupen64plus: 32MB cache initialised at: 7B335000
11-15 18:02:01.199: I/RetroArch:(28458): Environ GET_VARIABLE mupen64-disableexpmem:
11-15 18:02:01.199: I/RetroArch:(28458): no
It seems that the crash happen on GL_RENDERER.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the crash on a Mali-450, Mali-400, or Mali-300 Android device and compare the provided logs with the Adreno-320 log. Investigate the shader compilation errors, especially the undeclared gl_FragDepth message, and the point where execution stops after GL_RENDERER is reported. Done means the cause is identified and the core no longer crashes on the affected Mali GPUs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, c
- Domain
- computer-graphics, mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100