qemu/hw
Marc-André Lureau a41e2d97f9 virtio-gpu: reset gfx resources in main thread
Calling OpenGL from different threads can have bad consequences if not
carefully reviewed. It's not generally supported. In my case, I was
debugging a crash in glDeleteTextures from OPENGL32.DLL, where I asked
qemu for gl=es, and thus ANGLE implementation was expected. libepoxy did
resolution of the global pointer for glGenTexture to the GLES version
from the main thread. But it resolved glDeleteTextures to the GL
version, because it was done from a different thread without correct
context. Oops.

Let's stick to the main thread for GL calls by using a BH.

Note: I didn't use atomics for reset_finished check, assuming the BQL
will provide enough of sync, but I might be wrong.

Acked-by: Dongwon Kim <dongwon.kim@intel.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20230726173929.690601-3-marcandre.lureau@redhat.com>
2023-08-07 15:45:45 +04:00
..
9pfs hw/9pfs: spelling fixes 2023-07-25 17:15:47 +03:00
acpi
adc
alpha
arm xen: Don't pass MemoryListener around by value 2023-08-01 10:22:33 +01:00
audio
avr
block xen-block: Avoid leaks on new error path 2023-08-01 10:22:33 +01:00
char hw/char/escc: Implement loopback mode 2023-07-25 14:40:49 +02:00
core misc: Fix some typos in documentation and comments 2023-08-01 23:52:23 +02:00
cpu
cris
cxl
display virtio-gpu: reset gfx resources in main thread 2023-08-07 15:45:45 +04:00
dma
gpio
hppa
hyperv
i2c
i386 hw/i386/x86-iommu: Fix endianness issue in x86_iommu_irq_to_msi_message() 2023-08-03 16:16:17 -04:00
ide hw/ide/piix: properly initialize the BMIBA register 2023-07-14 11:10:57 +02:00
input
intc arm: spelling fixes 2023-07-25 17:13:53 +03:00
ipack
ipmi
isa
loongarch hw/loongarch/virt: Use machine_memory_devices_init() 2023-07-12 09:25:37 +02:00
m68k other architectures: spelling fixes 2023-07-25 17:14:07 +03:00
mem memory-device: Track used region size in DeviceMemoryState 2023-07-12 09:25:37 +02:00
microblaze other architectures: spelling fixes 2023-07-25 17:14:07 +03:00
mips hw/mips: Improve the default USB settings in the loongson3-virt machine 2023-07-25 14:40:49 +02:00
misc arm: spelling fixes 2023-07-25 17:13:53 +03:00
net kconfig: Add PCIe devices to s390x machines 2023-07-14 11:10:57 +02:00
nios2
nubus
nvme hw/nvme: use stl/ldl pci dma api 2023-07-30 20:09:54 +02:00
nvram hw/nvram: Avoid unnecessary Xilinx eFuse backstore write 2023-07-17 11:05:52 +01:00
openrisc
pci pci: do not respond config requests after PCI device eject 2023-08-03 16:06:49 -04:00
pci-bridge hw/pci-bridge/cxl_upstream.c: Use g_new0() in build_cdat_table() 2023-08-03 16:06:49 -04:00
pci-host
pcmcia
ppc ppc/pegasos2: Fix reg property of 64 bit BARs in device tree 2023-08-04 10:50:19 -03:00
rdma
remote
riscv hw/riscv: Fix typo field in error_report 2023-07-19 14:31:41 +10:00
rtc
rx
s390x s390x: Fix QEMU abort by selecting S390_FLIC_KVM 2023-07-18 09:36:27 +02:00
scsi scsi: clear unit attention only for REPORT LUNS commands 2023-07-14 11:10:58 +02:00
sd hw/sd/sdhci: Do not force sdhci_mmio_*_ops onto all SD controllers 2023-07-25 14:40:49 +02:00
sensor
sh4
smbios
sparc other architectures: spelling fixes 2023-07-25 17:14:07 +03:00
sparc64
ssi
timer
tpm hw/tpm: TIS on sysbus: Remove unsupport ppi command line option 2023-07-14 11:31:54 -04:00
tricore
usb hw/usb/canokey: change license to GPLv2+ 2023-07-25 17:24:12 +01:00
vfio
virtio virtio-crypto: verify src&dst buffer length for sym request 2023-08-03 16:16:17 -04:00
watchdog
xen xen: Don't pass MemoryListener around by value 2023-08-01 10:22:33 +01:00
xenpv
xtensa
Kconfig
meson.build