From 49b853f28723bbf7b28f7ce6ec9e2bce72a45a8a Mon Sep 17 00:00:00 2001
From: Simon McVittie <smcv@collabora.com>
Date: Wed, 27 Jan 2021 13:42:35 +0000
Subject: [PATCH] system-info: Record environment variables that influence SDL,
 Wine, Steam

Inspired by <https://github.com/ValveSoftware/steam-runtime/issues/357>
which turned out to be a distro patch from a version of Slackware that
didn't support PulseAudio, forcing SDL to use ALSA even though the user
had upgraded to a version of Slackware that *does* support PulseAudio.

Various environment variables set by the Steam package on Flathub are
also included.

Signed-off-by: Simon McVittie <smcv@collabora.com>
---
 steam-runtime-tools/system-info.c | 73 ++++++++++++++++++++++++++++++-
 1 file changed, 72 insertions(+), 1 deletion(-)

diff --git a/steam-runtime-tools/system-info.c b/steam-runtime-tools/system-info.c
index d340bd6ff..6d287dac0 100644
--- a/steam-runtime-tools/system-info.c
+++ b/steam-runtime-tools/system-info.c
@@ -3369,19 +3369,90 @@ ensure_driver_environment (SrtSystemInfo *self)
       GRegex *regex;
       gchar **env_list = self->env;
       /* This is the list of well-known driver-selection environment variables,
-       * plus __GLX_FORCE_VENDOR_LIBRARY_%d that will be searched with a regex */
+       * plus __GLX_FORCE_VENDOR_LIBRARY_%d that will be searched with a regex.
+       * Please keep in LC_ALL=C alphabetical order. */
       static const gchar * const drivers_env[] =
       {
+        "ALSA_CONFIG_PATH",
+        "AUDIODEV",
+        "DISPLAY",
         "DRI_PRIME",
         "EGL_PLATFORM",
+        "GST_PLUGIN_SYSTEM_PATH",
         "LD_LIBRARY_PATH",
         "LD_PRELOAD",
         "LIBVA_DRIVER_NAME",
+        "MESA_GLSL_CACHE_DIR",
         "MESA_LOADER_DRIVER_OVERRIDE",
         "MESA_VK_DEVICE_SELECT",
+        "MIDIDEV",
+        "SDL_ACCELEROMETER_AS_JOYSTICK",
+        "SDL_AUDIODRIVER",
+        "SDL_AUDIO_CHANNELS",
+        "SDL_AUDIO_DEVICE_NAME",
+        "SDL_AUDIO_FORMAT",
+        "SDL_AUDIO_FREQUENCY",
+        "SDL_AUDIO_SAMPLES",
+        "SDL_AUTO_UPDATE_JOYSTICKS",
+        "SDL_DYNAMIC_API",
+        "SDL_ENABLE_STEAM_CONTROLLERS",
+        "SDL_FRAMEBUFFER_ACCELERATION",
+        "SDL_GAMECONTROLLERCONFIG",
+        "SDL_GAMECONTROLLERCONFIG_FILE",
+        "SDL_GAMECONTROLLERTYPE",
+        "SDL_GAMECONTROLLER_ALLOW_STEAM_VIRTUAL_GAMEPAD",
+        "SDL_GAMECONTROLLER_IGNORE_DEVICES",
+        "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT",
+        "SDL_JOYSTICK_DEVICE",
+        "SDL_JOYSTICK_DISABLE_UDEV",
+        "SDL_JOYSTICK_HIDAPI",
+        "SDL_JOYSTICK_HIDAPI_PS4",
+        "SDL_JOYSTICK_HIDAPI_PS5",
+        "SDL_JOYSTICK_HIDAPI_STEAM",
+        "SDL_JOYSTICK_HIDAPI_SWITCH",
+        "SDL_JOYSTICK_HIDAPI_XBOX",
+        "SDL_OPENGLES_LIBRARY",
+        "SDL_OPENGL_ES_DRIVER",
+        "SDL_OPENGL_LIBRARY",
+        "SDL_PATH_DSP",
+        "SDL_RENDER_DRIVER",
+        "SDL_RENDER_LOGICAL_SIZE_MODE",
+        "SDL_RENDER_OPENGL_SHADERS",
+        "SDL_RENDER_SCALE_QUALITY",
+        "SDL_RENDER_VSYNC",
+        "SDL_VIDEODRIVER",
+        "SDL_VIDEO_ALLOW_SCREENSAVER",
+        "SDL_VIDEO_DOUBLE_BUFFER",
+        "SDL_VIDEO_EGL_DRIVER",
+        "SDL_VIDEO_EXTERNAL_CONTEXT",
+        "SDL_VIDEO_GL_DRIVER",
+        "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS",
+        "SDL_VIDEO_WAYLAND_WMCLASS",
+        "SDL_VIDEO_X11_FORCE_EGL",
+        "SDL_VIDEO_X11_LEGACY_FULLSCREEN",
+        "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR",
+        "SDL_VIDEO_X11_NET_WM_PING",
+        "SDL_VIDEO_X11_VISUALID",
+        "SDL_VIDEO_X11_WINDOW_VISUALID",
+        "SDL_VIDEO_X11_WMCLASS",
+        "SDL_VIDEO_X11_XINERAMA",
+        "SDL_VIDEO_X11_XRANDR",
+        "SDL_VIDEO_X11_XVIDMODE",
+        "SDL_VULKAN_DISPLAY",
+        "SDL_VULKAN_LIBRARY",
+        "SDL_X11_XCB_LIBRARY",
+        "SDL_XINPUT_ENABLED",
+        "SSL_CERT_DIR",
+        "STEAM_RUNTIME_PREFER_HOST_LIBRARIES",
         "VDPAU_DRIVER",
         "VK_ICD_FILENAMES",
         "VK_LAYER_PATH",
+        "WAYLAND_DISPLAY",
+        "WINEESYNC",
+        "WINEFSYNC",
+        "WINE_FULLSCREEN_INTEGER_SCALING",
+        "WINE_HIDE_NVIDIA_GPU",
+        "XDG_RUNTIME_DIR",
         "__EGL_VENDOR_LIBRARY_DIRS",
         "__EGL_VENDOR_LIBRARY_FILENAMES",
         "__GLX_VENDOR_LIBRARY_NAME",
-- 
GitLab