>
> cairo declared as optional dep, ...
>

I don't see where cairo is marked as an optional dependency, the `cairo =
not_found` part could probably be dropped to make it clearer.

On Tue, May 9, 2023 at 4:34 PM Philippe Mathieu-Daudé <phi...@linaro.org>
wrote:

> Hi,
>
> On 9/5/23 13:59, Bilal Elmoussaoui wrote:
> > From: Christian Hergert <cherg...@redhat.com>
> >
> > Currently, when using `-display dbus,gl=on` all updates to the client
> > become "full scanout" updates, meaning there is no way for the client to
> > limit damage regions to the display server.
> >
> > Instead of using an "update count", this patch tracks the damage region
> > and propagates it to the client.
> >
> > This was less of an issue when clients were using GtkGLArea for
> > rendering,
> > as you'd be doing full-surface redraw. To be efficient, the client needs
> > both a DMA-BUF and the damage region to be updated.
> >
> > In the future, when additional methods are allowed on the D-Bus
> > interface,
> > this should likely be updated to send damage regions as a single RPC to
> > avoid additional message processing.
> >
> > Currently, Linux does not propagate damage rectangles when using the
> > virtio-gpu drm driver. That means compositors such as Mutter which
> > utilize
> > drmModePageFlip() will be sending full or near-full surface damages.
> >
> > https://lists.freedesktop.org/archives/dri-devel/2023-March/395164.html
> > contains a patch to fix that too.
> >
> > Signed-off-by: Bilal Elmoussaoui <belmo...@redhat.com>
> > ---
> >   meson.build        |  8 ++++++++
> >   ui/dbus-listener.c | 25 +++++++++++++++++++------
> >   ui/meson.build     |  2 +-
> >   3 files changed, 28 insertions(+), 7 deletions(-)
> >
> > diff --git a/meson.build b/meson.build
> > index 229eb585f7..72678ef78e 100644
> > --- a/meson.build
> > +++ b/meson.build
> > @@ -1761,6 +1761,14 @@ dbus_display = get_option('dbus_display') \
> >              error_message: '-display dbus is not available on Windows')
> \
> >     .allowed()
>
> ^ dbus strictly required deps, ...
>
> > +cairo = not_found
> > +if dbus_display
> > +  cairo = dependency('cairo',
> > +                     kwargs: static_kwargs,
> > +                     method: 'pkg-config',
> > +                    )
>
> cairo declared as optional dep, ...
>
> > +endif
> > +
> >   have_virtfs = get_option('virtfs') \
> >       .require(targetos == 'linux' or targetos == 'darwin',
> >                error_message: 'virtio-9p (virtfs) requires Linux or
> macOS') \
> > diff --git a/ui/dbus-listener.c b/ui/dbus-listener.c
> > index 911acdc529..047be5cb3a 100644
> > --- a/ui/dbus-listener.c
> > +++ b/ui/dbus-listener.c
> > @@ -25,6 +25,7 @@
> >   #include "qemu/error-report.h"
> >   #include "sysemu/sysemu.h"
> >   #include "dbus.h"
> > +#include <cairo.h>
>
> cairo used unconditionally.
>
> Shouldn't we now declared it as a strict dependency in meson?
>
> >   #include <gio/gunixfdlist.h>
> >
> >   #ifdef CONFIG_OPENGL
>
>

Reply via email to