mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-07-11 01:25:07 +02:00
libretro: call SetGLCoreContext(true) in LibretroGLCoreContext
LibretroGLCoreContext is the backend for RETRO_HW_CONTEXT_OPENGL_CORE, so the frontend hands us a desktop GL Core profile context. But CreateDrawContext() never told GLFeatures about it — useCoreContext stayed at its default false and gl_extensions.IsCoreContext stayed false, so the macOS Core-profile workaround at GLFeatures.cpp:532 (which force-enables ARB_framebuffer_object because Apple's Core driver doesn't list it as an extension) never fired. Every glBindFramebuffer(GL_FRAMEBUFFER, g_defaultFBO) in GLQueueRunner::fbo_unbind then fell through both branches and silently no-op'd, so the BackBuffer present pass rendered into nothing and GL_INVALID_OPERATION accumulated. End result: black screen on macOS, audio and game logic still working. One-line fix: call SetGLCoreContext(true) before CheckGLExtensions().
This commit is contained in:
@@ -24,6 +24,13 @@ void LibretroGLCoreContext::CreateDrawContext() {
|
||||
}
|
||||
#endif
|
||||
glewInitDone = true;
|
||||
// We requested RETRO_HW_CONTEXT_OPENGL_CORE; tell GLFeatures so the
|
||||
// Core-profile workaround in CheckGLExtensions (which force-enables
|
||||
// ARB_framebuffer_object / ARB_vertex_array_object) fires. Apple's
|
||||
// Core driver doesn't list these as extensions, so without this both
|
||||
// stay false and glBindFramebuffer(default) silently no-ops in
|
||||
// GLQueueRunner::fbo_unbind on macOS → black screen.
|
||||
SetGLCoreContext(true);
|
||||
CheckGLExtensions();
|
||||
}
|
||||
draw_ = Draw::T3DCreateGLContext(false);
|
||||
|
||||
Reference in New Issue
Block a user