Use EGL_VENDOR instead of NV-CONTROL for Nvidia detection

The latter will still match on a hybrid system when the iGPU's EGL
implementation is in use. This scenario works properly with EGL
rendering in Qt and SDL, so we want to allow that.
This commit is contained in:
Cameron Gutman
2025-12-06 11:07:52 -06:00
parent c92dc2495e
commit 9c6d2bab19
4 changed files with 36 additions and 28 deletions

View File

@@ -476,11 +476,7 @@ int main(int argc, char *argv[])
#endif
}
// Nvidia's proprietary driver has broken EGL support on X11, so don't use it.
// This will break the EGLRenderer, but that's fine on Nvidia because they
// support both VDPAU and Vulkan renderers instead.
// https://github.com/moonlight-stream/moonlight-qt/issues/1751
if (!WMUtils::isRunningX11NvidiaProprietaryDriver()) {
if (WMUtils::isEGLSafe()) {
// Some ARM and RISC-V embedded devices don't have working GLX which can cause
// SDL to fail to find a working OpenGL implementation at all. Let's force EGL
// on all platforms for both SDL and Qt. This also avoids GLX-EGL interop issues