Debug protocol
This MR adds a debug protocol to Weston.
The debug protocol provides compositor -> client streams of no fixed structure, intended for providing debugging information which would not be suitable for ordinary logging. This includes an example client which can bind to the streams and send their content to a particular file or stdout.
Several debug streams are provided:
-
log
: the log output which would ordinarily be provided through the--log
argument to Weston on startup -
proto
: output similar to starting Weston withWAYLAND_DEBUG=server
, annotated with client arguments -
scene-graph
: a dump of how Weston output is painted, including each output and the status of its repaint loop, and a walk through layers/views/surfaces/buffers dumping information about how they were painted -
xwm-wm-x11
: information about the built-in XWayland X11 window manager, previously available by compiling with theWM_DEBUG
define -
drm-backend
: information from a patch previously available as 'drm debug', providing information about assignment of views to planes, application of output status (atomic commits ordrmModeSetCrtc
/drmModePageFlip
), which is not suitable for the main log due to sheer volume
This is v6 of a previous patchset; v5 was on wayland-devel@. Changes from v5 include:
- add description argument to protocol to provide human-readable descriptions of each scope
- tighten up
weston-debug
option handling, particularly when requesting non-existent scope names - take d117f33d into account by changing
__version__
to@version@
in weston-debug manpage - make libweston debug internals safe against NULL scopes
- cosmetic fixes to scene-graph printing
- signedness fixes for DRM backend prints
- mystery crash fix, by not reusing varargs
Fixes #133 (closed)