AMD GPU Passthrough / Bad performance / Proxmox 9.1

uniketou

New Member
Dec 12, 2024
16
2
3
Hello all,

I've a fresh install of Proxmox 9.1 on a new server.
I've installed Windows 11 to have a gaming server.

But the performances are not good.
I've installed the latest AMD Driver ; GPU is correctly reconized in Windows.

=> Passmark : 4400 (I should have ~25 000)
3D => DirectX 11 : 0 points GPU Compute : 0 points !!!

Result : https://www.passmark.com/baselines/V11/display.php?id=307484749580

Battlefield 6 doesn't launch.

Server :

Motherboard : Asrock Rack RomeD8-2T
RAM : 128Go ECC
CPU : EPYC 7713
Graphic : AMD RX 9700XT

Do you see something wrong ? or I forgot something ?


I've followed the post #12 regarding the RX 9700 XT : https://forum.proxmox.com/threads/working-amd-rx-9070xt-support.163370/

BIOS :

Code:
Advanced → Chipset → Primary Graphics Adapter → Onboard (ASPEED)
Advanced → PCIe → Above 4G Decoding → Enabled
Advanced → PCIe → Re-size BAR support → Enabled
Advanced → IOH Configuration → IOMMU → Enabled
Advanced → IOH Configuration → ACS → Enabled
Advanced → IOH Configuration → ARI → Enabled


Below my proxmox settings :

VM :
Code:
agent: 1
args: -cpu host,-hypervisor,kvm=off, -smbios type=0,vendor="American Megatrends Inc.",version=3302,date="02/21/2024"
balloon: 0
bios: ovmf
boot: order=scsi0
cores: 16
cpu: host,hidden=1,flags=-md-clear;-pcid;-spec-ctrl;-ssbd;-ibpb;+virt-ssbd;+amd-ssbd;-amd-no-ssb;+pdpe1gb;+hv-tlbflush;+aes
efidisk0: VM_disk:vm-110-disk-4,efitype=4m,ms-cert=2023,pre-enrolled-keys=1,size=1M
hostpci0: 0000:83:00,pcie=1,x-vga=1,romfile=9070xt.rom
ide0: VM-images:iso/virtio-win-0.1.266.iso,media=cdrom,size=707456K
machine: pc-q35-10.1
memory: 32768
meta: creation-qemu=10.1.2,ctime=1763797120
name: Win-Gaming
net0: virtio=BC:24:11:A3:6E:2D,bridge=vmbr0,firewall=1
numa: 1
ostype: win11
scsi0: VM_disk:vm-110-disk-2,discard=on,iothread=1,size=120G,ssd=1
scsi1: SSD_GAMING:vm-110-disk-0,discard=on,iothread=1,size=1000G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=70fc09fe-8e2b-4a49-93b1-5484f67475f3,manufacturer=QVNVUw==,product=WjY5MC1JIEdBTUlORyBXSUZJ,family=WjY5MA==,base64=1
sockets: 1
tpmstate0: VM_disk:vm-110-disk-3,size=4M,version=v2.0
vmgenid: dddf957e-ea48-4e42-abd4-5c4c5649ba2f


GRUB :
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction nofb nomodeset video=vesafb:off,efifb:off"


/etc/modules :

Code:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

/etc/modprobe.d/iommu_unsafe_interrupts.conf :
options vfio_iommu_type1 allow_unsafe_interrupts=1

/etc/modprobe.d/blacklist.conf :
Code:
blacklist nouveau
blacklist nvidia
blacklist nvidiafb
blacklist radeon
blacklist amdgpu

/etc/modprobe.d/vfio.conf :
options vfio-pci ids=1002:7550,1002:ab40 disable_vga=1

Windows :

devicemanager.jpg

amd.jpg
 

Attachments

  • devicemanager.jpg
    devicemanager.jpg
    20 KB · Views: 1
Your CPU is using "host" which is known to enable VBS within Windows, while more secure performance suffers quite a bit.
Check if under Windows Defender -> Device Security -> Core Isolation the Memory Integrity is activated and try to disable it.
Alternatively change the cpu type to something more generic like x86-64-v4, this will disable VBS within Windows and helps performance.

PVE 9.1 gained an option for
Code:
Fine-grained control of nested virtualization for VM guests.

    Some VM guest workloads need access to the host CPU's virtualization extensions for nested virtualization.
    Examples are nested hypervisors or Windows guests with Virtualization-based Security enabled.
    A new vCPU flag allows to enable nested virtualization on top of a vCPU type that corresponds to the host CPU vendor and generation.
    This can be an alternative to using the full host vCPU type
Maybe check that out too.

Unfortunately as far as i know BF6 Anticheat *requires* VBS / HVCI / Secure Boot / TPM so you will have to tinker around to get this working (if even possible).
 
Thank you MarkusKo ; Core Isolation is already in "OFF".

Regarding the CPU ; I see always "host" to have all CPU directly to the VM. I think we need to check on the Graphic card, no ?