wlrfx/scenefx/Debugging GitHub Discord

← scenefx

Debugging

scenefx inherits wlroots' debugging tools and adds a few of its own.

VariableEffect
WLR_RENDERER_ALLOW_SOFTWARE=1Use software rendering
WLR_SCENE_DEBUG_DAMAGE=rerenderRe-render the whole display on each commit, ignoring damage
WLR_SCENE_DEBUG_DAMAGE=highlightHighlights where damage has occurred on each re-render
WLR_SCENE_DISABLE_DIRECT_SCANOUT=1Always composite, even for fullscreen windows
WLR_SCENE_DISABLE_VISIBILITY=1Disable culling of non-visible regions of a window or buffer
WLR_SCENE_HIGHLIGHT_TRANSPARENT_REGION=1Highlights the transparent areas of a window or buffer
WLR_EGL_NO_MODIFIERS=1Disable modifiers for EGL

Tracy profiling

Optional Tracy profiling can be enabled for a detailed view of when and what is happening:

  1. Add scenefx as a subproject to your compositor
  2. Import it as a subproject dependency
  3. Run meson subprojects download to download the Tracy project into the subproject directory
  4. Compile scenefx with -Dtracy_enable=true (and --buildtype=debugoptimized if using meson)
  5. Start your compositor, then start tracy-profiler and connect to it

For advanced profiling, the compositor needs to run as root, which comes with its own drawbacks (like DBus not working out of the box) — a common workaround is running with sudo -E, e.g. sudo -E sway.