include/ui/console.h | 3 +++ include/ui/egl-helpers.h | 3 +++ include/ui/gtk.h | 5 ++-- hw/display/qxl.c | 2 +- hw/display/virtio-gpu-udmabuf.c | 1 + hw/display/virtio-gpu.c | 32 ++++++++++++++++++++++-- ui/egl-helpers.c | 26 ++++++++++++++++++++ ui/gtk-egl.c | 43 +++++++++++++++++++++++++++------ ui/gtk-gl-area.c | 20 +++++++++++++++ ui/gtk.c | 26 ++++++++++++++++++-- 10 files changed, 146 insertions(+), 15 deletions(-)
The following changes since commit bd662023e683850c085e98c8ff8297142c2dd9f2: Merge remote-tracking branch 'remotes/mcayland/tags/qemu-openbios-20210908' into staging (2021-09-08 11:06:17 +0100) are available in the Git repository at: git://git.kraxel.org/qemu tags/vga-20210910-pull-request for you to fetch changes up to 6335c0b56819a5d1219ea84a11a732d0861542db: qxl: fix pre-save logic (2021-09-10 12:23:12 +0200) ---------------------------------------------------------------- virtio-gpu + ui: fence syncronization. qxl: unbreak live migration. ---------------------------------------------------------------- Gerd Hoffmann (1): qxl: fix pre-save logic Vivek Kasireddy (5): ui/gtk: Create a common release_dmabuf helper ui/egl: Add egl helpers to help with synchronization ui: Create sync objects and fences only for blobs ui/gtk-egl: Wait for the draw signal for dmabuf blobs virtio-gpu: Add gl_flushed callback include/ui/console.h | 3 +++ include/ui/egl-helpers.h | 3 +++ include/ui/gtk.h | 5 ++-- hw/display/qxl.c | 2 +- hw/display/virtio-gpu-udmabuf.c | 1 + hw/display/virtio-gpu.c | 32 ++++++++++++++++++++++-- ui/egl-helpers.c | 26 ++++++++++++++++++++ ui/gtk-egl.c | 43 +++++++++++++++++++++++++++------ ui/gtk-gl-area.c | 20 +++++++++++++++ ui/gtk.c | 26 ++++++++++++++++++-- 10 files changed, 146 insertions(+), 15 deletions(-) -- 2.31.1
On Fri, 10 Sept 2021 at 14:19, Gerd Hoffmann <kraxel@redhat.com> wrote: > > The following changes since commit bd662023e683850c085e98c8ff8297142c2dd9f2: > > Merge remote-tracking branch 'remotes/mcayland/tags/qemu-openbios-20210908' into staging (2021-09-08 11:06:17 +0100) > > are available in the Git repository at: > > git://git.kraxel.org/qemu tags/vga-20210910-pull-request > > for you to fetch changes up to 6335c0b56819a5d1219ea84a11a732d0861542db: > > qxl: fix pre-save logic (2021-09-10 12:23:12 +0200) > > ---------------------------------------------------------------- > virtio-gpu + ui: fence syncronization. > qxl: unbreak live migration. > > ---------------------------------------------------------------- Hi; this fails to build on the ppc64 system: ../../ui/egl-helpers.c:79:6: error: no previous prototype for 'egl_dmabuf_create_sync' [-Werror=missing-prototypes] 79 | void egl_dmabuf_create_sync(QemuDmaBuf *dmabuf) | ^~~~~~~~~~~~~~~~~~~~~~ ../../ui/egl-helpers.c:95:6: error: no previous prototype for 'egl_dmabuf_create_fence' [-Werror=missing-prototypes] 95 | void egl_dmabuf_create_fence(QemuDmaBuf *dmabuf) | ^~~~~~~~~~~~~~~~~~~~~~~ The prototype is hidden behind CONFIG_GBM, but the definition is not. Then the callsites fail: ../../ui/gtk-gl-area.c: In function 'gd_gl_area_draw': ../../ui/gtk-gl-area.c:77:9: error: implicit declaration of function 'egl_dmabuf_create_sync' [-Werror=implicit-function-declaration] 77 | egl_dmabuf_create_sync(dmabuf); | ^~~~~~~~~~~~~~~~~~~~~~ ../../ui/gtk-gl-area.c:77:9: error: nested extern declaration of 'egl_dmabuf_create_sync' [-Werror=nested-externs] ../../ui/gtk-gl-area.c:81:9: error: implicit declaration of function 'egl_dmabuf_create_fence' [-Werror=implicit-function-declaration] 81 | egl_dmabuf_create_fence(dmabuf); | ^~~~~~~~~~~~~~~~~~~~~~~ ../../ui/gtk-gl-area.c:81:9: error: nested extern declaration of 'egl_dmabuf_create_fence' [-Werror=nested-externs] ../../ui/gtk-egl.c: In function 'gd_egl_draw': ../../ui/gtk-egl.c:100:9: error: implicit declaration of function 'egl_dmabuf_create_fence' [-Werror=implicit-function-declaration] 100 | egl_dmabuf_create_fence(dmabuf); | ^~~~~~~~~~~~~~~~~~~~~~~ ../../ui/gtk-egl.c:100:9: error: nested extern declaration of 'egl_dmabuf_create_fence' [-Werror=nested-externs] ../../ui/gtk-egl.c: In function 'gd_egl_scanout_flush': ../../ui/gtk-egl.c:301:9: error: implicit declaration of function 'egl_dmabuf_create_sync' [-Werror=implicit-function-declaration] 301 | egl_dmabuf_create_sync(vc->gfx.guest_fb.dmabuf); | ^~~~~~~~~~~~~~~~~~~~~~ ../../ui/gtk-egl.c:301:9: error: nested extern declaration of 'egl_dmabuf_create_sync' [-Werror=nested-externs] You can probably repro this on any system which has the opengl libraries installed but not libgbm. -- PMM
On Fri, Sep 10, 2021 at 05:52:55PM +0100, Peter Maydell wrote: > On Fri, 10 Sept 2021 at 14:19, Gerd Hoffmann <kraxel@redhat.com> wrote: > > > > The following changes since commit bd662023e683850c085e98c8ff8297142c2dd9f2: > > > > Merge remote-tracking branch 'remotes/mcayland/tags/qemu-openbios-20210908' into staging (2021-09-08 11:06:17 +0100) > > > > are available in the Git repository at: > > > > git://git.kraxel.org/qemu tags/vga-20210910-pull-request > > > > for you to fetch changes up to 6335c0b56819a5d1219ea84a11a732d0861542db: > > > > qxl: fix pre-save logic (2021-09-10 12:23:12 +0200) > > > > ---------------------------------------------------------------- > > virtio-gpu + ui: fence syncronization. > > qxl: unbreak live migration. > > > > ---------------------------------------------------------------- > > Hi; this fails to build on the ppc64 system: > > ../../ui/egl-helpers.c:79:6: error: no previous prototype for > 'egl_dmabuf_create_sync' [-Werror=missing-prototypes] > 79 | void egl_dmabuf_create_sync(QemuDmaBuf *dmabuf) > | ^~~~~~~~~~~~~~~~~~~~~~ > ../../ui/egl-helpers.c:95:6: error: no previous prototype for > 'egl_dmabuf_create_fence' [-Werror=missing-prototypes] > 95 | void egl_dmabuf_create_fence(QemuDmaBuf *dmabuf) > | ^~~~~~~~~~~~~~~~~~~~~~~ > > > The prototype is hidden behind CONFIG_GBM, but the definition is not. > > Then the callsites fail: > > ../../ui/gtk-gl-area.c: In function 'gd_gl_area_draw': > ../../ui/gtk-gl-area.c:77:9: error: implicit declaration of function > 'egl_dmabuf_create_sync' [-Werror=implicit-function-declaration] > 77 | egl_dmabuf_create_sync(dmabuf); > | ^~~~~~~~~~~~~~~~~~~~~~ > ../../ui/gtk-gl-area.c:77:9: error: nested extern declaration of > 'egl_dmabuf_create_sync' [-Werror=nested-externs] > ../../ui/gtk-gl-area.c:81:9: error: implicit declaration of function > 'egl_dmabuf_create_fence' [-Werror=implicit-function-declaration] > 81 | egl_dmabuf_create_fence(dmabuf); > | ^~~~~~~~~~~~~~~~~~~~~~~ > ../../ui/gtk-gl-area.c:81:9: error: nested extern declaration of > 'egl_dmabuf_create_fence' [-Werror=nested-externs] > > > ../../ui/gtk-egl.c: In function 'gd_egl_draw': > ../../ui/gtk-egl.c:100:9: error: implicit declaration of function > 'egl_dmabuf_create_fence' [-Werror=implicit-function-declaration] > 100 | egl_dmabuf_create_fence(dmabuf); > | ^~~~~~~~~~~~~~~~~~~~~~~ > ../../ui/gtk-egl.c:100:9: error: nested extern declaration of > 'egl_dmabuf_create_fence' [-Werror=nested-externs] > ../../ui/gtk-egl.c: In function 'gd_egl_scanout_flush': > ../../ui/gtk-egl.c:301:9: error: implicit declaration of function > 'egl_dmabuf_create_sync' [-Werror=implicit-function-declaration] > 301 | egl_dmabuf_create_sync(vc->gfx.guest_fb.dmabuf); > | ^~~~~~~~~~~~~~~~~~~~~~ > ../../ui/gtk-egl.c:301:9: error: nested extern declaration of > 'egl_dmabuf_create_sync' [-Werror=nested-externs] > > > You can probably repro this on any system which has the opengl > libraries installed but not libgbm. Vivek? Can you have a look please? thanks, Gerd
Hi Gerd, Peter, > > On Fri, Sep 10, 2021 at 05:52:55PM +0100, Peter Maydell wrote: > > On Fri, 10 Sept 2021 at 14:19, Gerd Hoffmann <kraxel@redhat.com> wrote: > > > > > > The following changes since commit bd662023e683850c085e98c8ff8297142c2dd9f2: > > > > > > Merge remote-tracking branch > > > 'remotes/mcayland/tags/qemu-openbios-20210908' into staging > > > (2021-09-08 11:06:17 +0100) > > > > > > are available in the Git repository at: > > > > > > git://git.kraxel.org/qemu tags/vga-20210910-pull-request > > > > > > for you to fetch changes up to 6335c0b56819a5d1219ea84a11a732d0861542db: > > > > > > qxl: fix pre-save logic (2021-09-10 12:23:12 +0200) > > > > > > ---------------------------------------------------------------- > > > virtio-gpu + ui: fence syncronization. > > > qxl: unbreak live migration. > > > > > > ---------------------------------------------------------------- > > > > Hi; this fails to build on the ppc64 system: > > > > ../../ui/egl-helpers.c:79:6: error: no previous prototype for > > 'egl_dmabuf_create_sync' [-Werror=missing-prototypes] > > 79 | void egl_dmabuf_create_sync(QemuDmaBuf *dmabuf) > > | ^~~~~~~~~~~~~~~~~~~~~~ > > ../../ui/egl-helpers.c:95:6: error: no previous prototype for > > 'egl_dmabuf_create_fence' [-Werror=missing-prototypes] > > 95 | void egl_dmabuf_create_fence(QemuDmaBuf *dmabuf) > > | ^~~~~~~~~~~~~~~~~~~~~~~ > > > > > > The prototype is hidden behind CONFIG_GBM, but the definition is not. > > > > Then the callsites fail: > > > > ../../ui/gtk-gl-area.c: In function 'gd_gl_area_draw': > > ../../ui/gtk-gl-area.c:77:9: error: implicit declaration of function > > 'egl_dmabuf_create_sync' [-Werror=implicit-function-declaration] > > 77 | egl_dmabuf_create_sync(dmabuf); > > | ^~~~~~~~~~~~~~~~~~~~~~ > > ../../ui/gtk-gl-area.c:77:9: error: nested extern declaration of > > 'egl_dmabuf_create_sync' [-Werror=nested-externs] > > ../../ui/gtk-gl-area.c:81:9: error: implicit declaration of function > > 'egl_dmabuf_create_fence' [-Werror=implicit-function-declaration] > > 81 | egl_dmabuf_create_fence(dmabuf); > > | ^~~~~~~~~~~~~~~~~~~~~~~ > > ../../ui/gtk-gl-area.c:81:9: error: nested extern declaration of > > 'egl_dmabuf_create_fence' [-Werror=nested-externs] > > > > > > ../../ui/gtk-egl.c: In function 'gd_egl_draw': > > ../../ui/gtk-egl.c:100:9: error: implicit declaration of function > > 'egl_dmabuf_create_fence' [-Werror=implicit-function-declaration] > > 100 | egl_dmabuf_create_fence(dmabuf); > > | ^~~~~~~~~~~~~~~~~~~~~~~ > > ../../ui/gtk-egl.c:100:9: error: nested extern declaration of > > 'egl_dmabuf_create_fence' [-Werror=nested-externs] > > ../../ui/gtk-egl.c: In function 'gd_egl_scanout_flush': > > ../../ui/gtk-egl.c:301:9: error: implicit declaration of function > > 'egl_dmabuf_create_sync' [-Werror=implicit-function-declaration] > > 301 | egl_dmabuf_create_sync(vc->gfx.guest_fb.dmabuf); > > | ^~~~~~~~~~~~~~~~~~~~~~ > > ../../ui/gtk-egl.c:301:9: error: nested extern declaration of > > 'egl_dmabuf_create_sync' [-Werror=nested-externs] > > > > > > You can probably repro this on any system which has the opengl > > libraries installed but not libgbm. > > Vivek? Can you have a look please? [Kasireddy, Vivek] I sent a v6 that fixes these compilation errors: https://lists.nongnu.org/archive/html/qemu-devel/2021-09/msg03859.html Compile tested the patches with and without GBM. Thanks, Vivek
© 2016 - 2024 Red Hat, Inc.