The good new is: I got it working!
The bad news is: I have no idea why.
I tested if I can safely reproduce the result and yes, it is consistent!
What I did:
- Flash BIOS to older version (I updated again later, so far no difference so might not have helped at all, but got me started with fresh, stock settings)
- Completely started from scratch with Unraid, reflash USB, deleted all drive partitions, only kept key file
- Only add one drive to the array at first
- Did not install any apps or plugins
The above might or might not have helped, I don't know.
- Activate IOMMU group for GPU and respective Audio
- Setup new VM with Q35, vDisk qcow2, Virtual GPU
- Install Windows, install all VirtIO drivers and update OS
- Shutdown VM
- Delete VM
- Setup VM again, choosing the already set up vDisk, Q35 and this time with the physical GPU and respective audio device
- Connected a physical monitor, keyboard and mouse, attaching them to the VM
- Switching to XML view and added
<domain type='kvm' id='1' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
And just before </domain> tag:
<qemu:commandline>
<qemu:arg value='-fw_cfg'/>
<qemu:arg value='opt/ovmf/X-PciMmio64Mb,string=65536'/>
</qemu:commandline>
After starting the VM everything worked. I have no idea why but it does.
Deleting the VM after having used a virtual GPU might have had the biggest impact.
Important: I need to use a monitor or a HDMI dummy dongle to start up my card!
Today I added a second GPU (4060ti) and the same steps brought the same success. But I didn't need the XML part.
TL;DR for what I think is absolutely necessary for the 4090:
- Activate IOMMU group
- HDMI Dummy dongle or physical monitor
- XML additions
I hope this helps someone who runs into the same trouble!