qemu-e2k/hw
Mark Cave-Ayland 1f11051619 artist: only render dirty scanlines on the display surface
The framebuffer_update_display() function returns the dirty scanlines that were
touched since the last display update, however artist_update_display() always calls
dpy_gfx_update() with start and end scanlines of 0 and s->height causing the
entire display surface to be rendered on every update.

Update artist_update_display() so that dpy_gfx_update() only renders the dirty
scanlines on the display surface, bypassing the display surface rendering
completely if framebuffer_update_display() indicates no changes occurred.

This noticeably improves boot performance when the framebuffer is enabled on my
rather modest laptop here, including making the GTK UI usable.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Message-Id: <20220504153708.10352-4-mark.cave-ayland@ilande.co.uk>
Reviewed-by: Helge Deller <deller@gmx.de>
Reviewed-by: Sven Schnelle <svens@stackframe.org>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
2022-05-08 18:52:37 +01:00
..
9pfs 9pfs: fix qemu_mknodat() to always return -1 on error on macOS host 2022-05-01 14:07:03 +02:00
acpi
adc aspeed/adc: Add AST1030 support 2022-05-02 17:03:02 +02:00
alpha
arm target/arm: Replace sentinels with ARRAY_SIZE in cpregs.h 2022-05-05 09:35:50 +01:00
audio pc: remove -soundhw pcspk 2022-05-07 07:46:59 +02:00
avr
block
char hw/char: fix qcode array bounds check in ESCC impl 2022-04-26 16:12:26 +01:00
core hw/core: Move the ARM sysbus-fdt to core 2022-04-29 10:48:26 +10:00
cpu
cris
display artist: only render dirty scanlines on the display surface 2022-05-08 18:52:37 +01:00
dma
gpio hw/gpio/aspeed_gpio: Fix QOM pin property 2022-05-02 17:03:04 +02:00
hppa hppa: simplify machine function names in machine.c 2022-05-08 18:52:37 +01:00
hyperv util: rename qemu_*block() socket functions 2022-05-03 15:53:20 +04:00
i2c
i386 i386: firmware parsing and sev setup for -bios loaded firmware 2022-04-27 07:51:01 +02:00
ide
input hw: replace qemu_set_nonblock() 2022-05-03 15:52:33 +04:00
intc ppc/xive: Update the state of the External interrupt signal 2022-05-05 15:36:17 -03:00
ipack
ipmi
isa
m68k
mem
microblaze
mips
misc lasi: move from hw/hppa to hw/misc 2022-05-08 18:52:37 +01:00
net meson: use have_vhost_* variables to pick sources 2022-05-07 07:46:58 +02:00
nios2 hw/nios2: Machine with a Vectored Interrupt Controller 2022-04-26 08:17:05 -07:00
nubus
nvme
nvram
openrisc
pci
pci-bridge
pci-host dino: move from hw/hppa to hw/pci-host 2022-05-08 18:52:36 +01:00
pcmcia
ppc target/ppc: Remove msr_pr macro 2022-05-05 15:36:17 -03:00
rdma hw/pvrdma: Some cosmetic fixes 2022-04-26 12:25:14 +02:00
remote
riscv hw/riscv: Enable TPM backends 2022-04-29 10:48:48 +10:00
rtc
rx
s390x target/s390x: add S390_FEAT_VECTOR_ENH2 to qemu CPU model 2022-05-04 08:47:19 +02:00
scsi build: move vhost-scsi configuration to Kconfig 2022-05-07 07:46:58 +02:00
sd
sensor
sh4
smbios
sparc
sparc64
ssi aspeed/smc: Add AST1030 support 2022-05-02 17:03:03 +02:00
timer aspeed/timer: Add AST1030 support 2022-05-02 17:03:03 +02:00
tpm
tricore
usb
vfio vfio/common: Rename VFIOGuestIOMMU::iommu into ::iommu_mr 2022-05-06 09:06:51 -06:00
virtio meson: use have_vhost_* variables to pick sources 2022-05-07 07:46:58 +02:00
watchdog aspeed/wdt: Add AST1030 support 2022-05-02 17:03:03 +02:00
xen meson: remove CONFIG_XEN_PCI_PASSTHROUGH from config-target.h 2022-04-28 08:52:22 +02:00
xenpv
xtensa hw/xtensa: fix reset value of MIROUT register of MX PIC 2022-05-06 15:27:40 -07:00
Kconfig
meson.build