When the Guest and Host are using Blob resources, there is a chance that they may use the underlying storage associated with a Blob at the same time leading to glitches such as flickering or tearing. To prevent these from happening, the Host needs to ensure that it waits until its Blit is completed by the Host GPU before returning control back to the Guest from resource_flush().
This should be the default behavior regardless of the type of Guest that is using Blob resources but would be particularly useful for Guests that are using frontbuffer rendering such as Linux with X or Windows 10, etc. Cc: Gerd Hoffmann <kra...@redhat.com> Cc: Dongwon Kim <dongwon....@intel.com> Cc: Tina Zhang <tina.zh...@intel.com> Vivek Kasireddy (5): ui/gtk: Create a common release_dmabuf helper ui: Add a helper to wait on a dmabuf sync object ui/egl: Add egl helpers to help with synchronization ui: Create sync objects only for blobs virtio-gpu: Make resource_flush wait on the sync object for blobs hw/display/virtio-gpu-udmabuf.c | 30 ++++++++++++++++++++++ hw/display/virtio-gpu.c | 1 + include/hw/virtio/virtio-gpu.h | 2 ++ include/ui/console.h | 8 ++++++ include/ui/egl-helpers.h | 4 +++ include/ui/gtk.h | 2 -- ui/console.c | 10 ++++++++ ui/egl-helpers.c | 44 +++++++++++++++++++++++++++++++++ ui/gtk-egl.c | 18 ++++++++------ ui/gtk-gl-area.c | 8 ++++++ ui/gtk.c | 26 ++++++++++++++++++- 11 files changed, 142 insertions(+), 11 deletions(-) -- 2.30.2