GPU Passthrough Ryzen 4600G APU

DracoTomes

New Member
Dec 28, 2022
7
4
3
Hi all,

like a couple of others I have been trying to get GPU passthrough working with a Ryzen APU but now I'm stuck.

First things first - I have no idea what I'm doing. I'm fueled by the naivety of the young and 500 open browser tabs so please go easy on me.

I think I have the basic passthrough working but I'm having trouble getting the amdgpu driver to load on the guest system.

My host is:
Ryzen 5 4600G
Asus ROG B550-A Gaming
32GB Samsung M391A4G43MB1-CTDQ

This is my vm.conf file:

Code:
agent: 1
bios: ovmf
boot: order=scsi0;net0
cores: 6
efidisk0: local:102/vm-102-disk-1.qcow2,efitype=4m,pre-enrolled-keys=1,size=528K
hostpci0: 0000:0b:00.0,pcie=1
machine: q35
memory: 6144
meta: creation-qemu=6.1.1,ctime=1668423230
name: ornn
net0: virtio=7E:16:4E:A6:67:30,bridge=vmbr0,firewall=1
numa: 0
onboot: 1
ostype: l26
parent: install
scsi0: local:102/vm-102-disk-0.qcow2,size=32G
scsihw: virtio-scsi-pci
smbios1: uuid=b28abe58-882e-475e-ae88-1460a426df3d
sockets: 1
vmgenid: 4c6b53bd-e771-4011-8997-6a86a3911754

lspci -nnk on the host looks like this:
Code:
0b:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [1002:1636] (rev c9)
        Subsystem: ASUSTeK Computer Inc. Renoir [1043:87e1]
        Kernel driver in use: vfio-pci
        Kernel modules: amdgpu

So the host ignores the driver successfully.

lspci -nnk on the guest looks like this:
Code:
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [1002:1636] (rev c9)
        Subsystem: ASUSTeK Computer Inc. Renoir [1043:87e1]
        Kernel modules: amdgpu

So the passthrough looks good to me, except the driver is not getting used.

This is an error I got before enabling pcie on the device I'm leaving here in case anyone else is stuck here:
Code:
[    2.423230] amdgpu 0000:01:00.0: BAR 6: can't assign [??? 0x00000000 flags 0x20000000] (bogus alignment)
[    2.426412] amdgpu 0000:01:00.0: amdgpu: Unable to locate a BIOS ROM
[    2.426417] amdgpu 0000:01:00.0: amdgpu: Fatal error during GPU init
[    2.426420] amdgpu 0000:01:00.0: amdgpu: amdgpu: finishing device.
[    2.427239] amdgpu: probe of 0000:01:00.0 failed with error -22

I also had to disable secureboot on the host as well as on the guest to get this far.

Now I get the following output for sudo dmesg | grep amdgpu
Code:
[    3.163064] [drm] amdgpu kernel modesetting enabled.
[    3.163086] [drm] amdgpu version: 5.18.13
[    3.163931] amdgpu: CRAT table not found
[    3.163961] amdgpu: Virtual CRAT table created for CPU
[    3.163984] amdgpu: Topology: Add CPU node
[    3.184178] amdgpu: PeerDirect support was initialized successfully
[    3.228494] amdgpu 0000:01:00.0: amdgpu: Fetched VBIOS from ROM BAR
[    3.229023] amdgpu: ATOM BIOS: 113-RENOIR-034
[    3.230660] amdgpu 0000:01:00.0: amdgpu: Trusted Memory Zone (TMZ) feature enabled
[    3.231094] amdgpu 0000:01:00.0: amdgpu: PCIE atomic ops is not supported
[    3.231516] amdgpu 0000:01:00.0: amdgpu: MODE2 reset
[    7.514970] amdgpu 0000:01:00.0: amdgpu: SMU: I'm not done with your previous command: SMN_C2PMSG_66:0x0000001E SMN_C2PMSG_82:0x00000002
[    7.515358] amdgpu 0000:01:00.0: amdgpu: Mode2 reset failed!
[    7.515652] amdgpu 0000:01:00.0: amdgpu: asic reset on init failed
[    7.515908] amdgpu 0000:01:00.0: amdgpu: Fatal error during GPU init
[    7.516396] amdgpu 0000:01:00.0: amdgpu: amdgpu: finishing device.
[    7.517976] amdgpu: probe of 0000:01:00.0 failed with error -62

From what I've gathered the MODE2 thing seems to be an APU thing. But I've seen people come further than this so at this point I'm not sure whether to continue troubleshooting the host or the guest.
In this thread they seem to get past the MODE2 reset fine, and the amdgpu driver gets shown as in use: https://gitlab.freedesktop.org/drm/amd/-/issues/2046
I've also seen the driver getting loaded for some other people, but there is conflicting as to which kernel options are needed on the host such as nomodset, whether amd_iommu and other options are needed at all and so on. For completion sake here are my settings on the host:
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on pcie_acs_override=downstream,multifunction video=efifb:off"

My guest is running Ubuntu 22.10 with the 5.19.0-26 kernel. I've also tried 22.04 with the 5.15 kernel before without success.
I've also tried the default amdgpu driver and the one installed using the amdgpu-install script from the AMD website.

Now I'm kind of stuck as to where to troubleshoot... The device seems to pass through ok so I'm suspecting it's an issue with the guest but also some people seemed to get farther than me so it could still be a setting on the host.

Any advice is appreciated.
 
Ok I figured it out, it was a bootloader option. I was missing initcall_blacklist=sysfb_init on the host.
 
Can you write step by step what you do get passthrough? On Intel iGPU no problem at all.
 
I mainly followed the official guides for PCI(e) and PCI.

Edit /etc/default/grub and add the following options to the GRUB_CMDLINE_LINUX_DEFAULT line:
amd_iommu=on initcall_blacklist=sysfb_init video=efifb:off

Run update-grub afterwards

Add the following to /etc/modules:
Code:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

Optionally install vendor-reset as described here.
After that update your initramfs with update-initramfs -u -k all

Run lspci -nn |grep VGA, you should receive an output like this:
0b:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [1002:1636] (rev c9)
Take note of the IOMMU group of the GPU in this case 0b:00 although this might differ on your machine.
Run lspci -nn | grep 0b:00 with your IOMMU group and you should get an output like this:
Code:
0b:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [1002:1636] (rev c9)
0b:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:1637]
0b:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor [1022:15df]
0b:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir USB 3.1 [1022:1639]
0b:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir USB 3.1 [1022:1639]
0b:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) HD Audio Controller [1022:15e3]

Write down the Vendor IDs in the braces at the end like [1022:1639]

Create a file in /etc/modprobe.d/ called for example blacklist-amd.conf and add the following to it, replacing your IDs:
Code:
blacklist radeon
blacklist amdgpu
options vfio-pci ids=1002:1636,1002:1637,1022:15df,1022:1639,1022:15e3

After this reboot your host, enter the BIOS and disable secure boot. This will depend on your motherboard BIOS. For my ASUS board I followed this tutorial.

After this run lspci -nnk | grep -A 2 0b:00.0, replacing your IOMMU group and check that it says Kernel driver in use: vfio-pci. If it says Kernel driver in use: amdgpu the host is still initializing the GPU and it will not pass through.

If everything looks right you can create a VM. Machine type needs to be q35 and BIOS OMVF.
Pass through your PCI device either using the GUI or the console command qm set VMID -hostpci0 IOMMU,pcie=1, make sure you have PCI-Express enabled. I only pass through the 0b:00.0 device, if you need the other functions as well pass through the whole device.

I think I also had to disable secure boot in the VM deleting the Platform Keys in the VM BIOS which you can enter using F2 during boot.

Install your guest OS.
On the guest run lspci -nnk | grep -A 2 VGA, you should see your GPUs like:
Code:
00:01.0 VGA compatible controller [0300]: Device [1234:1111] (rev 02)
        Subsystem: Red Hat, Inc. Device [1af4:1100]
        Kernel driver in use: bochs-drm
--
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [1002:1636] (rev c9)
        Subsystem: ASUSTeK Computer Inc. Renoir [1043:87e1]
        Kernel driver in use: amdgpu
If it says Kernel driver in use: amdgpu you should have a working GPU in the VM. If it only says Kernel modules: amdgpu the driver is not loading correctly. Check the output of sudo dmesg | grep amdgpu to see why it fails.

Your Guest should have at least Kernel 5.11.32.21.40 for the amdgpu module to be included. My guest is on Ubuntu 22.10 with the 5.19.0-26 Kernel but earlier should work too.

You can also check whether everything works successfully by running ls /dev/dri which should show card1 and renderD128

I don't remember anything else you should need to do.
 
Last edited:
Thank you for your tenacity on this.

I'm just about through this rabbit hole, but I'm stuck on one part. Everything looks good on the host, it shows Kernel driver in use: vfio-pci. But as soon as I start up my VM with the PCI device attached, it adds Kernel modules: amdgpu to the output of lspci -nnk | grep -A 2 04:00.0 and the GPU doesn't show up in my guest.

I did try to do the optional vendor-reset install, but no avail. My guest is also 22.10, kernel 5.19.0-31.

Any input would be appreciated, thanks.
 
Last edited:
Thank you for your tenacity on this.

I'm just about through this rabbit hole, but I'm stuck on one part. Everything looks good on the host, it shows Kernel driver in use: vfio-pci. But as soon as I start up my VM with the PCI device attached, it adds Kernel modules: amdgpu to the output of lspci -nnk | grep -A 2 04:00.0 and the GPU doesn't show up in my guest.

I did try to do the optional vendor-reset install, but no avail. My guest is also 22.10, kernel 5.19.0-31.

Any input would be appreciated, thanks.
Hm, haven't had that one before.
I think the output of sudo dmesg | grep amdgpu is where you want to look. Maybe you can get information on what initializes the driver.
In theory the driver should not be loaded because of the blacklist in /etc/modprobe.d/.

Did you update you initramfs again?
I noticed they mention it in the PCI(e) Wiki after the modprobe configuration but I didn't specifiy it in my post.
For both methods you need to update the initramfs again and reboot after that.
 
Really strange. I thought maybe my Proxmox kernel needed to be updated, tried 5.19 and same thing. Kernel modules: amdgpu just won't go away now, even with it in modprobe.

I did try updating initramfs, same thing.
 
I mainly followed the official guides for PCI(e) and PCI.

Edit /etc/default/grub and add the following options to the GRUB_CMDLINE_LINUX_DEFAULT line:
amd_iommu=on initcall_blacklist=sysfb_init video=efifb:off

Run update-grub afterwards

Add the following to /etc/modules:
Code:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

Optionally install vendor-reset as described here.
After that update your initramfs with update-initramfs -u -k all

Run lspci -nn |grep VGA, you should receive an output like this:
0b:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [1002:1636] (rev c9)
Take note of the IOMMU group of the GPU in this case 0b:00 although this might differ on your machine.
Run lspci -nn | grep 0b:00 with your IOMMU group and you should get an output like this:
Code:
0b:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [1002:1636] (rev c9)
0b:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Device [1002:1637]
0b:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor [1022:15df]
0b:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir USB 3.1 [1022:1639]
0b:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Renoir USB 3.1 [1022:1639]
0b:00.6 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) HD Audio Controller [1022:15e3]

Write down the Vendor IDs in the braces at the end like [1022:1639]

Create a file in /etc/modprobe.d/ called for example blacklist-amd.conf and add the following to it, replacing your IDs:
Code:
blacklist radeon
blacklist amdgpu
options vfio-pci ids=1002:1636,1002:1637,1022:15df,1022:1639,1022:15e3

After this reboot your host, enter the BIOS and disable secure boot. This will depend on your motherboard BIOS. For my ASUS board I followed this tutorial.

After this run lspci -nnk | grep -A 2 0b:00.0, replacing your IOMMU group and check that it says Kernel driver in use: vfio-pci. If it says Kernel driver in use: amdgpu the host is still initializing the GPU and it will not pass through.

If everything looks right you can create a VM. Machine type needs to be q35 and BIOS OMVF.
Pass through your PCI device either using the GUI or the console command qm set VMID -hostpci0 IOMMU,pcie=1, make sure you have PCI-Express enabled. I only pass through the 0b:00.0 device, if you need the other functions as well pass through the whole device.

I think I also had to disable secure boot in the VM deleting the Platform Keys in the VM BIOS which you can enter using F2 during boot.

Install your guest OS.
On the guest run lspci -nnk | grep -A 2 VGA, you should see your GPUs like:
Code:
00:01.0 VGA compatible controller [0300]: Device [1234:1111] (rev 02)
        Subsystem: Red Hat, Inc. Device [1af4:1100]
        Kernel driver in use: bochs-drm
--
01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [1002:1636] (rev c9)
        Subsystem: ASUSTeK Computer Inc. Renoir [1043:87e1]
        Kernel driver in use: amdgpu
If it says Kernel driver in use: amdgpu you should have a working GPU in the VM. If it only says Kernel modules: amdgpu the driver is not loading correctly. Check the output of sudo dmesg | grep amdgpu to see why it fails.

Your Guest should have at least Kernel 5.11.32.21.40 for the amdgpu module to be included. My guest is on Ubuntu 22.10 with the 5.19.0-26 Kernel but earlier should work too.

You can also check whether everything works successfully by running ls /dev/dri which should show card1 and renderD128

I don't remember anything else you should need to do.

Hello,
i followed all the instructions and mostly i had success but something is broken on guest driver:

sudo dmesg | grep amdgpu [ 3.448523] [drm] amdgpu kernel modesetting enabled. [ 3.448529] [drm] amdgpu version: 6.2.4 [ 3.449254] amdgpu: CRAT table not found [ 3.449258] amdgpu: Virtual CRAT table created for CPU [ 3.449269] amdgpu: Topology: Add CPU node [ 3.466645] amdgpu: PeerDirect support was initialized successfully [ 3.507238] amdgpu 0000:01:00.0: amdgpu: Fetched VBIOS from ROM BAR [ 3.507241] amdgpu: ATOM BIOS: 113-RENOIR-034 [ 3.507459] amdgpu 0000:01:00.0: amdgpu: Trusted Memory Zone (TMZ) feature enabled [ 3.507465] amdgpu 0000:01:00.0: amdgpu: MODE2 reset [ 7.793948] amdgpu 0000:01:00.0: amdgpu: SMU: I'm not done with your previous command: SMN_C2PMSG_66:0x0000001E SMN_C2PMSG_82:0x00000002 [ 7.794012] amdgpu 0000:01:00.0: amdgpu: Mode2 reset failed! [ 7.794041] amdgpu 0000:01:00.0: amdgpu: asic reset on init failed [ 7.794071] amdgpu 0000:01:00.0: amdgpu: Fatal error during GPU init [ 7.794366] amdgpu 0000:01:00.0: amdgpu: amdgpu: finishing dev

Any ideas?
 
Last edited:
AsRock X300 with a 4650G.
I gave it a shot but couldnt get it to recognize in the VM (no PCI device listed). From the host side everything seems fine (just vendor-reset not working). All the outputs and checks are working fine on the host side.
 
I'm having the same issue no matter what I do. The IOMMU and vfio-pci are in place, but every time I start the VM, PVE host crashes
Code:
lspci -nnk | grep -A 2 VGA
08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [1002:1636] (rev c1)
        Subsystem: ASUSTeK Computer Inc. Renoir [Radeon Vega Series / Radeon Vega Mobile Series] [1043:87e7]
        Kernel driver in use: vfio-pci
 
I'm having the same issue no matter what I do. The IOMMU and vfio-pci are in place, but every time I start the VM, PVE host crashes
Code:
lspci -nnk | grep -A 2 VGA
08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [1002:1636] (rev c1)
        Subsystem: ASUSTeK Computer Inc. Renoir [Radeon Vega Series / Radeon Vega Mobile Series] [1043:87e7]
        Kernel driver in use: vfio-pci
I know this is an old post but just in case you (or someone else) are still have the issue, check what other devices share the same IOMMU group as the one you are passing though. When you start a VM with PCI passthrough, all devices in the same IOMMU group will be disconnected from the host, even if only one is added to the VM.
 
@DracoTomes Thank you for creating the guide above, I was able to use it to get most of the way there to passing through the APU in my Ryzen 5 5600GT.

The only missing part was that I needed to extract the vbios for the GPU and assign it to the VM.
If someone stumbles upon this post like I did, this repo here has a few vbios files available to download as well as instructions on how to extract it if your CPU is one of a different model: https://github.com/isc30/ryzen-7000-series-proxmox

FYI the error I was getting from sudo dmesg | grep amdgpu before setting up the vbios was:

Code:
[    2.620339] amdgpu: CRAT table not found
[    2.620341] amdgpu: Virtual CRAT table created for CPU
[    2.620351] amdgpu: Topology: Add CPU node
[    2.625877] amdgpu 0000:01:00.0: BAR 6: can't assign [??? 0x00000000 flags 0x20000000] (bogus alignment)
[    2.629309] amdgpu 0000:01:00.0: amdgpu: Unable to locate a BIOS ROM
[    2.629322] amdgpu 0000:01:00.0: amdgpu: Fatal error during GPU init
[    2.630822] amdgpu 0000:01:00.0: amdgpu: amdgpu: finishing device.
[    2.631003] amdgpu: probe of 0000:01:00.0 failed with error -22
 
first of all, thanks to everyone sharing their experiences here :) after manymany hours i hope someone can help..

I have trouble passing through my 4650g on a gigabyte MC12-LE0:
i followed the official guides mentiones above and also the vendor-reset here (to be honest, i am not sure if it was needed...)

dmesg gives follow error:
vfio-pci 0000:08:00.0: enabling device (0002 -> 0003)
[ 32.355766] vfio-pci 0000:08:00.1: enabling device (0000 -> 0002)
[ 33.688174] pcieport 0000:00:08.1: broken device, retraining non-functional downstream link at 2.5GT/s

here are some configs:

root@pve:~# uname -a
Linux pve 6.8.12-5-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-5 (2024-12-03T10:26Z) x86_64 GNU/Linux

grub-options:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on initcall_blacklist=sysfb_init video=efifb:off"

vm.conf:
agent: 1
balloon: 0
bios: ovmf
boot: order=ide0;ide2;net0
cores: 4
cpu: x86-64-v2-AES
efidisk0: local-lvm:vm-104-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
hostpci0: 0000:08:00,pcie=1,x-vga=1
ide0: local-lvm:vm-104-disk-1,discard=on,size=64G,ssd=1
ide2: local:iso/Win11_24H2_German_x64.iso,media=cdrom,size=5692008K
machine: pc-q35-9.0
memory: 12096
meta: creation-qemu=9.0.2,ctime=1735509660
name: win11
net0: e1000=BC:24:11:D1:E3:43,bridge=vmbr0,firewall=1
numa: 0
ostype: win11
scsihw: virtio-scsi-single
smbios1: uuid=xxx
sockets: 2
tpmstate0: local-lvm:vm-104-disk-2,size=4M,version=v2.0
vga: virtio
vmgenid:xxx

root@pve:~# dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
[ 0.000000] Warning: PCIe ACS overrides enabled; This may allow non-IOMMU protected peer-to-peer DMA
[ 0.034913] AMD-Vi: Unknown option - 'on'
[ 0.098213] AMD-Vi: Using global IVHD EFR:0x206d73ef22254ade, EFR2:0x0
[ 0.369936] pci 0000:00:00.2: AMD-Vi: IOMMU performance counters supported
[ 0.371172] AMD-Vi: Extended features (0x206d73ef22254ade, 0x0): PPR X2APIC NX GT IA GA PC GA_vAPIC
[ 0.371182] AMD-Vi: Interrupt remapping enabled
[ 0.371183] AMD-Vi: X2APIC enabled
[ 0.440087] AMD-Vi: Virtual APIC enabled
[ 0.447661] perf/amd_iommu: Detected AMD IOMMU #0 (2 banks, 4 counters/bank).

root@pve:~# lspci -nn | grep -A 2 VGA
04:00.0 VGA compatible controller [0300]: ASPEED Technology, Inc. ASPEED Graphics Family [1a03:2000] (rev 41)
05:00.0 Non-Volatile memory controller [0108]: SK hynix Gold P31/PC711 NVMe Solid State Drive [1c5c:174a]
06:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)
--
08:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [1002:1636] (rev d9)
08:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir Radeon High Definition Audio Controller [1002:1637]
08:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 10h-1fh) Platform Security Processor [1022:15df]

root@pve:~# cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=1002:1636,1002:1637
softdep radeon pre: vfio-pci
softdep amdgpu pre: vfio-pci
softdep snd_hda_intel pre: vfio-pci
 
Last edited:
In the meantime i got it working but with a dedicated 6600M and win10 VM.

i get decent (near to bare metal) benchmark results (logged in via RDP) - i also got that running with my 4650G (so without the dedicated GPU).

But in both constellations i cannot play most of the games via RDP, errors occur already installing or trying to open the games.


Is that even possible?
Since, with the dedicated GPU i was able to hook that one up to a Display and there everything works (passing mouse/keyboard).

Is there something i am missing?
 
I'm pretty new to Proxmox & Linux in general and don't know enough to help you with the driver issues, sorry.

But I might be able to shed some light onto your RDP issues.
I've had similar issues where certain applications just won't run over RDP. Generally seemed to be with graphically intensive programs like some Games & CAD software.
I'm probably wrong but the way I understand it currently is that a RDP session in Windows is treated differently to a directly plugged in monitor / console session & doesn't load certain drivers / libraries used by some Games / 3D rendering apps. Last time I encountered it was with Minecraft within a VMWare Workstation VM. I managed to get Minecraft running & do what I needed by connecting via the console session in VMWare workstation directly instead of via RDP.

But even if the game you are trying to play over RDP works, it's a pretty poor protocol to use since it can't handle frequent whole-screen updates while remaining responsive.
I would reccomend trying something like Parsec: https://parsec.app/
I've used it in the past with good results but only on windows desktops running on bare metal, don't know if it will work inside a VM.
 
I'm pretty new to Proxmox & Linux in general and don't know enough to help you with the driver issues, sorry.

But I might be able to shed some light onto your RDP issues.
I've had similar issues where certain applications just won't run over RDP. Generally seemed to be with graphically intensive programs like some Games & CAD software.
I'm probably wrong but the way I understand it currently is that a RDP session in Windows is treated differently to a directly plugged in monitor / console session & doesn't load certain drivers / libraries used by some Games / 3D rendering apps. Last time I encountered it was with Minecraft within a VMWare Workstation VM. I managed to get Minecraft running & do what I needed by connecting via the console session in VMWare workstation directly instead of via RDP.

But even if the game you are trying to play over RDP works, it's a pretty poor protocol to use since it can't handle frequent whole-screen updates while remaining responsive.
I would reccomend trying something like Parsec: https://parsec.app/
I've used it in the past with good results but only on windows desktops running on bare metal, don't know if it will work inside a VM.
okay, thank you, i ll check Parsec out or moonshine or steam remote play.

I got another problem with the actual running win 10 VM. If the VM goes to sleep or is not running at all the gpu fan runs 100%.
Maybe someone has a hint on how to controll this via host?