Hi,

The commit below could change the timing of drawing by making the drawing
done at refresh cycle instead of via drawing event. So it looks like either 
dmabuf
or client's framebuffer is being written and read at the same time. Hey, can you
describe how the corruption looks like? Is it just garbage image with random 
noise
or the actual frame with some defects like tearing...?  

> Subject: Re: [PATCH v6 00/10] Support virtio-gpu DRM native context
> 
> Dmitry Osipenko <dmitry.osipe...@collabora.com> writes:
> 
> > On 1/27/25 19:17, Alex Bennée wrote:
> > ...
> >> I'm still seeing corruption with -display gtk,gl=on on my x86 system
> >> BTW. I would like to understand if that is a problem with QEMU, GTK
> >> or something else in the stack before we merge.
> >
> > I reproduced the display mirroring/corruption issue and bisected it to
> > the following commit. The problem only happens when QEMU/GTK uses
> > Wayland display directly, while previously I was running QEMU with
> > XWayland that doesn't have the problem. Why this change breaks dmabuf
> > displaying with Wayland/GTK is unclear.
> 
> Ahh that makes sense - I obviously forgot to mention I'm running sway/wayland
> across both machines.
> 
> > Reverting commit fixes the bug.
> >
> > +Dongwon Kim +Vivek Kasireddy
> >
> > commit 77bf310084dad38b3a2badf01766c659056f1cf2
> > Author: Dongwon Kim <dongwon....@intel.com>
> > Date:   Fri Apr 26 15:50:59 2024 -0700
> >
> >     ui/gtk: Draw guest frame at refresh cycle
> >
> >     Draw routine needs to be manually invoked in the next refresh
> >     if there is a scanout blob from the guest. This is to prevent
> >     a situation where there is a scheduled draw event but it won't
> >     happen bacause the window is currently in inactive state
> >     (minimized or tabified). If draw is not done for a long time,
> >     gl_block timeout and/or fence timeout (on the guest) will happen
> >     eventually.
> >
> >     v2: Use gd_gl_area_draw(vc) in gtk-gl-area.c
> >
> >     Suggested-by: Vivek Kasireddy <vivek.kasire...@intel.com>
> >     Cc: Gerd Hoffmann <kra...@redhat.com>
> >     Cc: Marc-André Lureau <marcandre.lur...@redhat.com>
> >     Cc: Daniel P. Berrangé <berra...@redhat.com>
> >     Signed-off-by: Dongwon Kim <dongwon....@intel.com>
> >     Acked-by: Marc-André Lureau <marcandre.lur...@redhat.com>
> >     Message-Id: <20240426225059.3871283-1-dongwon....@intel.com>
> 
> 
> Maybe a race on:
> 
>     QemuDmaBuf *dmabuf = vc->gfx.guest_fb.dmabuf; ?
> 
> --
> Alex Bennée
> Virtualisation Tech Lead @ Linaro

Reply via email to