qemu/hw/display
Marc-André Lureau 3cddb8b9e0 display/ui: add a callback to indicate GL state is flushed
Displaying rendered resources requires blocking qemu GPU to avoid extra
framebuffer copies. For an external display, via Spice currently, there
is a callback to block/unblock the rendering in the same thread.

But with the vhost-user-gpu backend, the qemu process doesn't handle
the rendering itself, and the blocking callback isn't effective.
Instead, the backend must be notified when the display code is done.

Fix this by adding a new GraphicHwOps callback to indicate the GL state
is flushed, and we are done manipulating the shared GL resources. Call
it from gtk and spice display.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20210204105232.834642-19-marcandre.lureau@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2021-02-04 15:58:54 +01:00
..
artist.c Clean up includes 2020-12-10 17:16:44 +01:00
ati_2d.c ati: check x y display parameter values 2020-11-04 08:25:17 +01:00
ati_dbg.c ati-vga: Add dummy MEM_SDRAM_MODE_REG 2020-06-30 22:54:24 +02:00
ati_int.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
ati_regs.h ati-vga: Add dummy MEM_SDRAM_MODE_REG 2020-06-30 22:54:24 +02:00
ati.c ati-vga: Add dummy MEM_SDRAM_MODE_REG 2020-06-30 22:54:24 +02:00
bcm2835_fb.c nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
blizzard.c display/blizzard: use extract16() for fix clang analyzer warning in blizzard_draw_line16_32() 2020-05-04 11:17:27 +02:00
bochs-display.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
cg3.c vl: extract softmmu/datadir.c 2020-12-10 12:15:18 -05:00
cirrus_vga_internal.h hw/display/cirrus_vga: Move "isa-cirrus-vga" device into a separate file 2018-10-15 09:57:33 +02:00
cirrus_vga_isa.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
cirrus_vga_rop2.h cirrus: fix PUTPIXEL macro 2017-03-27 12:14:45 +02:00
cirrus_vga_rop.h cirrus: fix off-by-one in cirrus_bitblt_rop_bkwd_transp_*_16 2017-03-17 10:23:44 +01:00
cirrus_vga.c hw/display/cirrus_vga: Fix hexadecimal format string specifier 2020-11-13 07:36:33 +01:00
dpcd.c hw/display/dpcd: Convert debug printf()s to trace events 2020-05-28 11:38:57 +02:00
edid-generate.c edid: use physical dimensions if available 2020-09-29 10:08:25 +02:00
edid-region.c Include exec/memory.h slightly less 2019-08-16 13:31:52 +02:00
exynos4210_fimd.c hw/display/exynos4210_fimd: Fix potential NULL pointer dereference 2020-11-02 16:52:17 +00:00
framebuffer.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
framebuffer.h framebuffer: set DIRTY_MEMORY_VGA on RAM that is used for the framebuffer 2015-07-24 13:57:45 +02:00
g364fb.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
i2c-ddc.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
jazz_led.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
Kconfig ads7846: moves from the hw/display folder to the hw/input folder. 2020-12-13 17:54:55 +01:00
macfb.c nubus: Rename class type checking macros 2020-08-27 14:04:55 -04:00
meson.build ads7846: moves from the hw/display folder to the hw/input folder. 2020-12-13 17:54:55 +01:00
milkymist-tmu2.c nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
milkymist-vgafb_template.h nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
milkymist-vgafb.c nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
next-fb.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
omap_dss.c hw/display/omap_dss: Replace fprintf() call by qemu_log_mask(LOG_UNIMP) 2020-05-28 11:38:57 +02:00
omap_lcd_template.h omap_lcdc: Remove support for DEPTH != 32 2016-05-12 13:22:24 +01:00
omap_lcdc.c hw/display/omap_lcdc: Fix potential NULL pointer dereference 2020-11-02 16:52:17 +00:00
pl110_template.h display: avoid multi-statement macro 2014-01-31 14:47:33 +00:00
pl110.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
pxa2xx_lcd.c arm: do not use ram_size global 2020-12-10 12:15:07 -05:00
pxa2xx_template.h display: avoid multi-statement macro 2014-01-31 14:47:33 +00:00
qxl-logger.c hw/display/qxl: Fix bad printf format specifiers 2021-02-04 14:32:40 +01:00
qxl-render.c qxl: also notify the rendering is done when skipping it 2021-02-04 14:32:40 +01:00
qxl.c qxl: set qxl.ssd.dcl.con on secondary devices 2021-02-04 14:32:40 +01:00
qxl.h Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
ramfb-standalone.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
ramfb.c ramfb: fix size calculation 2020-05-18 15:43:51 +02:00
sii9022.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
sm501_template.h sm501: Misc clean ups 2017-04-24 12:32:12 +01:00
sm501.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
ssd0303.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
ssd0323.c hw/ssi: Rename SSI 'slave' as 'peripheral' 2020-12-10 12:15:03 -05:00
tc6393xb_template.h display: avoid multi-statement macro 2014-01-31 14:47:33 +00:00
tc6393xb.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
tcx.c vl: extract softmmu/datadir.c 2020-12-10 12:15:18 -05:00
trace-events trace-events: Fix attribution of trace points to source 2020-09-09 17:17:58 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vga_int.h vga: cleanup mapping of VRAM for non-PCI VGA 2019-12-18 02:34:13 +01:00
vga_regs.h Clean up header guards that don't match their file name 2019-05-13 08:58:55 +02:00
vga-access.h vga: move access helpers to separate include file 2019-09-19 10:37:46 +02:00
vga-helpers.h vga: move access helpers to separate include file 2019-09-19 10:37:46 +02:00
vga-isa-mm.c vga: cleanup mapping of VRAM for non-PCI VGA 2019-12-18 02:34:13 +01:00
vga-isa.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
vga-pci.c vga-pci: Register "big-endian-framebuffer" as class property 2020-10-13 15:56:30 -04:00
vga.c hw/display/vga:Remove redundant statement in vga_draw_graphic() 2020-09-01 12:06:15 +02:00
vhost-user-gpu-pci.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
vhost-user-gpu.c display/ui: add a callback to indicate GL state is flushed 2021-02-04 15:58:54 +01:00
vhost-user-vga.c vhost-user-vga: Use typedef name for instance_size 2020-09-09 13:20:22 -04:00
virtio-gpu-3d.c virtio-gpu: only compile virtio-gpu-3d.c for CONFIG_VIRGL=y 2020-10-29 06:37:24 +01:00
virtio-gpu-base.c display/ui: add a callback to indicate GL state is flushed 2021-02-04 15:58:54 +01:00
virtio-gpu-pci.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
virtio-gpu.c display/ui: add a callback to indicate GL state is flushed 2021-02-04 15:58:54 +01:00
virtio-vga.c display/ui: add a callback to indicate GL state is flushed 2021-02-04 15:58:54 +01:00
virtio-vga.h qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
vmware_vga.c hw/display/vmware_vga: Remove dependency on VNC header 2021-01-27 09:48:04 +01:00
xenfb.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
xlnx_dp.c auxbus: Eliminate aux_create_slave() 2020-06-15 22:05:28 +02:00