libretro / libretro/parallel-n64

Lots of GL errors happening in mupen64.

Open
#8 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
407
Forks
151
Avg merge
11h 53m
Merged PRs (30d)
11

Description

I've noticed that many GL errors happen in mupen core. It mostly seems to be uniform location related. If errors occur, fullscreen swapping will fail (because it detects a GL error in gl_init()).

A log message I typically see (on nVidia) is:
RetroArch [ERROR] :: [GL debug (High, API, Error)]: GL_INVALID_OPERATION error generated. <location> is invalid.

To help debug this, I've pushed GL debug support in RetroArch. You can find out exactly where the bugs occur, if you build RetroArch with make GL_DEBUG=1.

If GL_KHR_debug or GL_ARB_debug_output extension is supported, RetroArch will get a callback (synchronously) every time an error occurs. It also logs minor stuff. In gdb, you can insert a breakpoint in gl_debug_cb at the line where it prints RARCH_ERR. Backtrace into mupen and see exactly which call had an error :) This helped me debug the last problem I pushed at least.

If you build in Windows, you have to download a more up-to-date glext.h header from Khronos here and replace GL/glext.h from redist: www.opengl.org/registry/oldspecs/glext.h‎

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Build RetroArch with GL_DEBUG=1 and use the gl_debug_cb breakpoint described in the issue to capture the mupen core backtrace for each uniform-related GL error. Start from the failing calls before gl_init() and check the updated redist GL/glext.h requirement on Windows. Done means the reported GL errors no longer cause fullscreen swapping to fail.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
computer-graphics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.