"Kim, Dongwon" <dongwon....@intel.com> writes:

> 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...?

The terminal gets mirrored upside down and the mouse creates damage as
it moves about.

>
>> 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

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro

Reply via email to