diff --git a/docs/env_vars.md b/docs/env_vars.md index 06e47ac59..59c8f078f 100644 --- a/docs/env_vars.md +++ b/docs/env_vars.md @@ -14,6 +14,8 @@ wlroots reads these environment variables hardware-accelerated renderers. * *WLR_RENDER_NO_EXPLICIT_SYNC*: set to 1 to disable explicit synchronization support in renderers. +* *WLR_RENDERER_FORCE_SOFTWARE*: set to 1 to force software rendering for GLES2 + and Vulkan * *WLR_EGL_NO_MODIFIERS*: set to 1 to disable format modifiers in EGL, this can be used to understand and work around driver bugs. diff --git a/render/wlr_renderer.c b/render/wlr_renderer.c index bb7bbbeb9..a4cea9384 100644 --- a/render/wlr_renderer.c +++ b/render/wlr_renderer.c @@ -143,6 +143,12 @@ static bool open_preferred_drm_fd(struct wlr_backend *backend, int *drm_fd_ptr, return true; } + if (env_parse_bool("WLR_RENDERER_FORCE_SOFTWARE")) { + *drm_fd_ptr = -1; + *own_drm_fd = false; + return true; + } + // Allow the user to override the render node const char *render_name = getenv("WLR_RENDER_DRM_DEVICE"); if (render_name != NULL) {