Commits on Source (18)
-
In preparation for multi-backend support, add a list of backends to the weston_compositor structure. Until backends are converted, this list just contains the single weston_compositor::backend. Keep that pointer for now, until the conversion is complete. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
76372375 -
In preparation for multi-backend support, start/flush/cancel repaint on all backends by looping over the weston_compositor::backend_list. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
183c309b -
In preparation for multi-backend support, determine the presentation clocks that are supported by all backends. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
3d50069a -
Before loading a backend, clear the weston_compositor::backend pointer to check whether the backend supports multi-backend operation and adds itself to the weston_compositor::backend_list. Keep weston_compositor::backend pointing to the last loaded backend either way, to allow the calling compositor code to store it away for later, to check whether a head belongs to a given backend in the output configuration code. This workaround can be removed after all backends are converted to be multi-backend aware. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
20c5b452 -
When multiple backends are loaded simultaneously, they all have to register their own head change notification listener and output configuration callback. To avoid calling output configuration for heads created by other backends, only iterate over heads that were created from the given backend by comparing the weston_head::backend pointer to the one stored in the head change notification listener. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
69679b27 -
Add a new --backends command line option and a backends option to the configuration file that both take a comma-separated list of backends, similar to the modules option. The first backend is the primary backend and provides the renderer. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
efe9707e -
Insert the backend into the weston_compositor::backend_list instead of setting weston_compositor::backend. The compositor uses this to determine that the backend is capable of being loaded simultaneously with other backends. The DRM backend can only be loaded as primary backend. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
281aa0a4 -
Insert the backend into the weston_compositor::backend_list instead of setting weston_compositor::backend. The compositor uses this to determine whether the backend is capable of being loaded simultaneously with other backends. The headless backend can only be loaded as primary backend. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
baaef124 -
Insert the backend into the weston_compositor::backend_list instead of setting weston_compositor::backend. The compositor uses this to determine whether the backend is capable of being loaded simultaneously with other backends. To stay backwards compatible, the PipeWire backend can be loaded as primary backend. It also supports being loaded as secondary backend. Co-authored-by: Michael Tretter <m.tretter@pengutronix.de> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
308d5cf3 -
Insert the backend into the weston_compositor::backend_list instead of setting weston_compositor::backend. The compositor uses this to determine whether the backend is capable of being loaded simultaneously with other backends. To stay backwards compatible, the RDP backend can be loaded as primary backend. It also supports being loaded as secondary backend. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
f0140094 -
Insert the backend into the weston_compositor::backend_list instead of setting weston_compositor::backend. The compositor uses this to determine whether the backend is capable of being loaded simultaneously with other backends. To stay backwards compatible, the VNC backend can be loaded as primary backend. It also supports being loaded as secondary backend. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
c857042b -
Insert the backend into the weston_compositor::backend_list instead of setting weston_compositor::backend. The compositor uses this to determine whether the backend is capable of being loaded simultaneously with other backends. The Wayland backend can only be loaded as primary backend. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
bb3b9374 -
Insert the backend into the weston_compositor::backend_list instead of setting weston_compositor::backend. The compositor uses this to determine whether the backend is capable of being loaded simultaneously with other backends. The X11 backend can only be loaded as primary backend. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
14c52a94 -
All backends add themselves to weston_compositor::backend_list now. Drop the workaround that catches unconverted backends that still set weston_compositor::backend. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
6d3fa71d -
Add a paragraph describing multi-backend support to running-weston.rst and update the --backend parameter documentation in weston.man. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
0b00090f -
Releasing the buffer reference here works because the backend has seen the surface and has updated keep_buffer if necessary. With multiple backends the assumption breaks. The same surface may be visible (now or later) on an output from another backend. This backend has not seen the buffer yet so it cannot update keep_buffer. As a result, the reference is released to early. A surface that is rendered on a secondary backend first can no longer be placed on a plane on a DRM backend. To avoid this, always keep the buffer reference until it is replaced when multiple backends are involved. Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
44f36b9b -
Let weston_compositor_load_backend() return a backend pointer and remove the backend pointer from struct weston_compositor. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
a4f06666 -
This avoids spreading around the knowledge that the primary backend is the first backend on weston_compositor::backend:list. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
c93a54ec
This diff is collapsed.