Performance is indistinguishable from native, e.g. I can easily drive the screen at the max 144 Hz refresh rate, G-sync works, etc. I did put some effort in figuring out how to pin CPU threads to cores, optimize for the CPU core topology so Windows only gets cores on the same CCX (it's an AMD Zen 3, before that it was Zen 2), etc. But all of this is documented in many places.
Do note that depending on your motherboard not all of this is possible if the chipset & BIOS do not provide enough MMIO isolation, you might not be able to isolate a USB controller or a separate NVME drive, or you might get only half the PCIe lanes for the passthrough GPU if you need to use the other full-lane slot for something like a second GPU.
I know I had to jump through a lot of hoops to make it work though, my X470 motherboard didn't isolate the USB controller without a BIOS update for example, and after that the USB controller exhibited USB FLR (function level reset) problems causing it to hang the VM. This required blacklisting it's PCI ID from the Linux kernel and patching the kernel to disable FLR (fortunately these changes were later merged into the mainline kernel). I also had problems with the second GPU, if I plugged it into any slot other than the bottom x1 slot, the motherboard BIOS would reshuffle the IOMMU groups making it impossible to pass through the NVME and USB controller, or (if I put it in the second x16 slot) it would halve the PCIe bandwidth to the RTX3080.
All in all it took me the better part of a weekend to get everything working, but if I had to do it again from scratch and did some research into (in particular) the motherboard and BIOS, I would be able to set it everything up again in less than an hour.
Similar approach: https://matthewdeporter.com/proxmox/proxmox-pci-passthrough/
However, there is some pretty awesome, cutting edge work done in that regard: Some great people very recently released a method for unlocking the vGPU stuff on consumer grade nVidia GPUs. When that was posted on HN[0], it only supported some 10xx GPUs; but with a merge from only 13h ago, most {9,10,20,30}xx should now work.
Just make sure you go into fullscreen + (what they call) "exclusive mode", and maybe even increase the VM's priority when input is grabbed. That fixed any microstutters I had on my older CPU.
0: https://www.playonlinux.com/en/
1: It isolates the Windows program to a certain point, but I have no idea if it's technically a sandbox built for security which would protect the system against a Windows program willing to do any damage to or data exfiltration from the home directory.
The Proxmox wiki has great resources on GPU passthrough, but you may have to install a kernel mod for the AMD gpu not to take the host down when the guest powers off.
I haven't been able to do this with VMware ESXi (I've tried); I forgot if it worked in unRaid or not (But it should, in theory).
Though I would want to upgrade my hardware (ha, as if anyone can buy chips right now) before I made a setup like that my daily driver.