From 4a1d1896b7c31a54aaae9311b2226c4a881d990b Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 13 Nov 2023 11:32:50 +0000 Subject: [PATCH] Try to avoid being forced onto unsupported wayland path. Refs #3124 --- qrenderdoc/Code/qrenderdoc.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/qrenderdoc/Code/qrenderdoc.cpp b/qrenderdoc/Code/qrenderdoc.cpp index 5745b0a61..b187b09ef 100644 --- a/qrenderdoc/Code/qrenderdoc.cpp +++ b/qrenderdoc/Code/qrenderdoc.cpp @@ -198,6 +198,20 @@ int main(int argc, char *argv[]) if(IsRunningAsAdmin()) qInfo() << "Running as administrator"; +#if defined(RENDERDOC_PLATFORM_LINUX) && !defined(RENDERDOC_WINDOWING_WAYLAND) + bool envChanged = false; + { + const char *qpa_plat = getenv("QT_QPA_PLATFORM"); + // if not set or empty, force non-wayland to help go through backwards compatibility path on wayland. + char env_set[] = "QT_QPA_PLATFORM=xcb\0"; + if(!qpa_plat || qpa_plat[0] == 0) + { + putenv(env_set); + envChanged = true; + } + } +#endif + QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); @@ -569,6 +583,11 @@ int main(int argc, char *argv[]) RENDERDOC_InitialiseReplay(env, coreargs); } +#if defined(RENDERDOC_PLATFORM_LINUX) && !defined(RENDERDOC_WINDOWING_WAYLAND) + if(envChanged) + unsetenv("QT_QPA_PLATFORM"); +#endif + if(!crashReportPath.isEmpty()) { QVariantMap json;