diff options
| author | Scott Mansell <phiren@gmail.com> | 2026-08-02 02:57:00 +1200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-02 02:57:00 +1200 |
| commit | 5c6dcce721ee3fe3814d41aaa3e2e55f07a821e7 (patch) | |
| tree | 8ca4555835805d63a157041a850b5cb11b4e728d | |
| parent | ad7e793548684a183593326584313f7e2bdce4d9 (diff) | |
| parent | 1c2b7fbf7f4239f24d4ce60ef7c8054f75a767c9 (diff) | |
Merge pull request #14758 from JoshuaVandaele/egl-platform-nowayland
Forbid EGL_PLATFORM to be "wayland"
| -rw-r--r-- | Source/Core/Common/GL/GLInterface/EGLX11.cpp | 17 | ||||
| -rw-r--r-- | Source/Core/Common/GL/GLInterface/EGLX11.h | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/Source/Core/Common/GL/GLInterface/EGLX11.cpp b/Source/Core/Common/GL/GLInterface/EGLX11.cpp index f430898361..1795ddd2dd 100644 --- a/Source/Core/Common/GL/GLInterface/EGLX11.cpp +++ b/Source/Core/Common/GL/GLInterface/EGLX11.cpp @@ -3,6 +3,23 @@ #include "Common/GL/GLInterface/EGLX11.h" +#include <cstdlib> + +#include "Common/StringUtil.h" + +GLContextEGLX11::GLContextEGLX11() +{ + // HACK: If EGL_PLATFORM is set to "wayland", Dolphin will still use GLContextEGLX11 due to our + // lack of proper Wayland support, and crash. + // Some distros have started aggressively setting that environment variable, bypassing the usual + // runtime detection. Thus, clear that environment variable if it forces wayland. + const char* current_egl_platform = getenv("EGL_PLATFORM"); + const bool replace_egl_platform = + current_egl_platform != nullptr && + Common::CaseInsensitiveContains(current_egl_platform, "wayland"); + setenv("EGL_PLATFORM", "", replace_egl_platform); +} + GLContextEGLX11::~GLContextEGLX11() { // The context must be destroyed before the window. diff --git a/Source/Core/Common/GL/GLInterface/EGLX11.h b/Source/Core/Common/GL/GLInterface/EGLX11.h index 6f30333341..03560d8581 100644 --- a/Source/Core/Common/GL/GLInterface/EGLX11.h +++ b/Source/Core/Common/GL/GLInterface/EGLX11.h @@ -11,6 +11,7 @@ class GLContextEGLX11 final : public GLContextEGL { public: + GLContextEGLX11(); ~GLContextEGLX11() override; void Update() override; |
