Debugging
scenefx inherits wlroots' debugging tools and adds a few of its own.
| Variable | Effect |
|---|---|
| WLR_RENDERER_ALLOW_SOFTWARE=1 | Use software rendering |
| WLR_SCENE_DEBUG_DAMAGE=rerender | Re-render the whole display on each commit, ignoring damage |
| WLR_SCENE_DEBUG_DAMAGE=highlight | Highlights where damage has occurred on each re-render |
| WLR_SCENE_DISABLE_DIRECT_SCANOUT=1 | Always composite, even for fullscreen windows |
| WLR_SCENE_DISABLE_VISIBILITY=1 | Disable culling of non-visible regions of a window or buffer |
| WLR_SCENE_HIGHLIGHT_TRANSPARENT_REGION=1 | Highlights the transparent areas of a window or buffer |
| WLR_EGL_NO_MODIFIERS=1 | Disable modifiers for EGL |
Tracy profiling
Optional Tracy profiling can be enabled for a detailed view of when and what is happening:
- Add scenefx as a subproject to your compositor
- Import it as a subproject dependency
- Run
meson subprojects downloadto download the Tracy project into the subproject directory - Compile scenefx with
-Dtracy_enable=true(and--buildtype=debugoptimizedif using meson) - Start your compositor, then start
tracy-profilerand 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.