QEMU Windows XP SPICE hardware acceleration

Is it possible? Software acceleration is the only big bottleneck I’m having in terms of how the VM could perform.

Esplana SPICE?

Yes you can get hardware acceleration in a vm. Look at the vfio board for more info.

SPCIE, as in the thing that allows you to see the VM if you are not passing a GPU through (SPICE and VNC are the options provided by virt-manager).

While I’m still skeptical, since using the hard drive in VirtIO mode caused glitches for me, especially with AutoCAD, might as well give that board a try. Hey moderators, can you whisk this post away to the aforementioned board?

Doesn’t anybody have any advice on this topic, even if it is merely how to make the software rendering faster?

By the way:

root@sandys-pavilion:/usr/src/linux# lspci && uname --all
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Processor Root Complex
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) I/O Memory Management Unit
00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Stoney [Radeon R2/R3/R4/R5 Graphics] (rev c1)
00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device 15b3
00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Host Bridge
00:02.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Processor Root Port
00:02.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Processor Root Port
00:02.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Processor Root Port
00:02.4 PCI bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Processor Root Port
00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Host Bridge
00:08.0 Encryption controller: Advanced Micro Devices, Inc. [AMD] Carrizo Platform Security Processor
00:09.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Carrizo Audio Dummy Host Bridge
00:09.2 Audio device: Advanced Micro Devices, Inc. [AMD] Family 15h (Models 60h-6fh) Audio Controller
00:10.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB XHCI Controller (rev 20)
00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 4b)
00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD] FCH USB EHCI Controller (rev 49)
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 4b)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 11)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Stoney HT Configuration
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Stoney Address Maps
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Stoney DRAM Configuration
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Stoney Miscellaneous Configuration
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Stoney PM Configuration
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Stoney NB Performance Monitor
01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Topaz XT [Radeon R7 M260/M265 / M340/M360 / M440/M445 / 530/535 / 620/625 Mobile] (rev 83)
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller (rev 07)
04:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter
Linux sandys-pavilion 5.4.0-gentoo #1 SMP PREEMPT Wed Nov 27 16:36:21 CET 2019 x86_64 AMD A9-9410 RADEON R5, 5 COMPUTE CORES 2C+3G AuthenticAMD GNU/Linux

sandy@sandys-pavilion:~$ glxinfo | grep OpenGL && DRI_PRIME=1 glxinfo | grep OpenGL
OpenGL vendor string: X.Org
OpenGL renderer string: AMD STONEY (DRM 3.35.0, 5.4.0-gentoo, LLVM 9.0.0)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.3.0-rc4
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.5 (Compatibility Profile) Mesa 19.3.0-rc4
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.3.0-rc4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
OpenGL vendor string: X.Org
OpenGL renderer string: AMD Radeon (TM) R7 M340 (ICELAND, DRM 3.35.0, 5.4.0-gentoo, LLVM 9.0.0)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.3.0-rc4
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.5 (Compatibility Profile) Mesa 19.3.0-rc4
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.3.0-rc4
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

One of the big limitations I’ve found with QEMU/kvm is its virtual GPU options are poor. For pure software, QXL+Spice seems to be the best in my experience. ESXI and vmware actually does a kind of paravirtual acceleration with the virtual svga card, its a very neat piece of tech they’ve had for a long time now. While you can create the same vmware vga device in kvm I don’t believe it has the hooks to the host GPU. Virtualbox has a similar virtual vga device although last I checked it still lagged behind vmware.

I’d recommend you look into virGL or a hardware based solution, either conventional passthrough to Intel GVT-g.

  1. VirGL seems to only really work on Linux guests, with there being a proof-of-concept driver for Windows 10 (as far as I can tell; somebody, please tell me that I’m wrong).
  2. I got graphical glitches with VirGL on the SeaBIOS screen, so…
  3. I want to see how far I can go without VMWare.
  4. I am on a laptop, so passthrough is not going to happen. Even if my dedicated GPU were to have an IOMMU group all to itself, I don’t think that Windows XP drivers exist for it (it’s from 2016 after all).

I think you’re right about VirGL. There’s been talk about getting Windows working but no idea how far it goes. It certainly limits its utility significantly. And it still feels really alpha with not much information about it out there to me.

We will probably need the virgl windows driver to improve greatly, the virgl vulkan project to be finished, AND DXVK to properly accelerate most programs in windows. It will be several months most likely before these are in a state where we can easily use them and they are stable. Once that day arrives, I do not expect that windows XP will be supported. It will probably be only windows 7 and up. XP used that old driver model, and probably no one would deliver a working driver for it by the end of the year, or the end of next year. However if your windows programs only use OpenGL you can start getting excited as that will come sooner. Also I have tested VIRGL with linux guest and it works very well TODAY. (UT99 higher than 1080p ~100 FPS no crashes; Unigine Valley also runs perfect with it)

I already stated which programs I am using, AutoCAD 2007 and CATIA V5R16. I don’t think that they support OpenGL and I wouldn’t be here if they could run through Wine, eliminating the “Linux guest” angle. And yes, I know that VirGL works with Linux quite well, but that doesn’t help me here.