diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp --- a/Source/Core/VideoBackends/OGL/Render.cpp +++ b/Source/Core/VideoBackends/OGL/Render.cpp @@ -674,8 +674,14 @@ Renderer::Renderer(std::unique_ptr main_gl_context, float backbuffer_ g_Config.backend_info.bSupportsComputeShaders && g_ogl_config.bSupportsImageLoadStore; // Background compiling is supported only when shared contexts aren't broken. +#ifdef __LIBRETRO__ + // Libretro cannot create shared GL contexts via CreateSharedContext(), + // so disable background shader compilation entirely. + g_Config.backend_info.bSupportsBackgroundCompiling = false; +#else g_Config.backend_info.bSupportsBackgroundCompiling = !DriverDetails::HasBug(DriverDetails::BUG_SHARED_CONTEXT_SHADER_COMPILATION); +#endif // Program binaries are supported on GL4.1+, ARB_get_program_binary, or ES3. if (supports_glsl_cache)