libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
9.76k stars 1.77k forks source link

[OS X Metal 1.7.6] Crashing launching content in Metal but not GL #8340

Open awkimball opened 5 years ago

awkimball commented 5 years ago

Description

When using 1.7.6 nightly for OS X with the Metal video driver, RetroArch immediately crashes upon trying to run N64 content using either Mupen64Plus or ParaLLEl. I am on 10.14 Mojave and this crash only occurs using the metal backend, OpenGL works fine.

Steps to reproduce the bug

  1. Use any recent nightly (I am on 2/21/19 OSX - Metal)
  2. Load core, either mupen64plus or parallel
  3. Load any rom
  4. Instant crash

Version/Commit

You can find this information under Information/System Information

Environment information

I have uploaded the crash report/log and attached it here:

crash.log

orbea commented 5 years ago

I think that is expected as neither mupen64plus or parallel-n64 have a metal renderer.

awkimball commented 5 years ago

@orbea Makes a lot of sense, thanks. This idea sounds a little far fetched but since the "w/Metal" build also includes the GL backend, would it be reasonably doable to implement a way to set a video backend setting per core? I would assume it wouldn't be possible to run the menu and a core using two different video drivers at the same time, so likely not

awkimball commented 5 years ago

The only reason I ask is because the Metal backend in my limited use has fewer issues with fullscreen and window resizing than the GL driver; I get lots of scaling, fullscreen and blacked out window issues when using the GL backend.

orbea commented 5 years ago

would it be reasonably doable to implement a way to set a video backend setting per core?

Gracefully switching between video drivers is a known issue which is not easy to fix, please see issue https://github.com/libretro/RetroArch/issues/4804.

The other alternative is to add a metal renderer to the cores, but that is not trivial either and honestly given that it would only be useful on osx that limits the developer interest.