Wayland driver development - December 2021 update and next steps
Giovanni Mascellani
gmascellani at codeweavers.com
Wed Dec 15 02:55:39 CST 2021
Hi,
first of all, thanks for your work on this.
On 10/12/21 18:56, Alexandros Frantzis wrote:
> The first is when applications try to render to window created by
> another process. Although this not a typical scenario, it's how
> Chrome/Chromium and thus applications using CEF, including some game
> store apps, work. For now, the workaround is to instruct the application
> to use "in-process" GPU handling (with the "--in-process-gpu"
> command-line) or turn-off GPU rendering completely (typically with
> "--disable-gpu --disable-software-rasterizer"). For example, one can run
> GOG Galaxy with: "GalaxyClient.exe --in-process-gpu [--use-angle=d3d11]"
Could you expand a little bit on what is the problem here? My
(admittedly, limited) understanding of Wayland's general philosophy is
that it doesn't care about how the process computes what should appear
in a window. It just expects a buffer with the pixel data in it, and it
has some efficient way to move that buffer from the client to the
compositor, which then does compositing and brings the result to the
screen. But if you can efficiently move a buffer from a client to a
compositor, it doesn't sound that much harder to move it from a client
to another client and then to a compositor, thus basically allowing a
process to draw on another process' window. What am I missing?
One problem commonly mentioned about windowing drivers is that they are
hard to test. My understanding of the reason is that they have to
interact with external systems (X11, Wayland, native Windows, ...) that
are hard to mock (especially, hard to mock in a way that preserves all
the quirks we have to care about) and hard to configure so that their
behavior is predictable and testable. Does a Wayland driver has a hope
to make things any easier here?
Thanks, Giovanni.
More information about the wine-devel
mailing list