distorted audio using onboard audio passthrough

jrtolle

New Member
Oct 26, 2020
3
0
1
44
I have 2 GPUs in my system (both AMD) successfully passed through and working at near-native performance. One of the VMs is my primary workstation so the onboard sound is also passed through. This VM, however, has issues with garbled audio. I listen to music all day on this computer and occasionally a song will play fine, but most of the time, the audio is garbled/distorted, sometimes really bad to the point I cannot understand the song or music, and eventually the audio just stops. If I stop and start pianobar, the music starts to play again, usually somewhat distorted and the cycle continues. The guest is Windows 10; I have enabled MSI within Windows. I have read through the forums but am unable to find a solution.

What is frustrating is that I had all of this working under Alpine Linux on the same hardware using kvm/libvirt with no issues. I switched back to all Windows but my hardware doesn't support DDA in Hyper-V, so moved back to KVM in order to dedicate one of my video cards for game streaming for my children. I decided to give ProxMox a try because of the ease of use of management of the VMs (versus running Virt Manager under Cygwin on my Windows workstations).

Any ideas on what I can do? I can provide any all info as needed on the host and the guest that is not below.


JR

Code:
host:
ASUS M5A99FX PRO R2.0
AMD FX-8350
32GB RAM
AMD Radeon RX 480 (and HD7950 to the other VM)

guest:
agent: 1
balloon: 0
bios: ovmf
boot: dcn
bootdisk: scsi0
cores: 4
cpu: host
efidisk0: vmdata1:vm-101-disk-0,size=4M
hostpci0: 01:00.0,pcie=1,x-vga=1 [RX 480 Video]
hostpci1: 01:00.1,pcie=1 [RX 480 Audio]
hostpci2: 00:14.2,pcie=1 [Onboard sound, on its own IOMMU]
hostpci3: 04:00.0,pcie=1 [USB 3.0 add-in card]
machine: q35
memory: 12288
name: foehammer
net0: virtio=82:BF:7B:B6:C1:6B,bridge=vmbr0,firewall=1
numa: 1
onboot: 1
ostype: win10
rng0: source=/dev/urandom
sata0: none,media=cdrom
scsi0: /dev/disk/by-id/ata-Samsung_SSD_840_PRO_Series_S1ANNEAD644477V,size=125034840K [os disk]
scsi1: /dev/disk/by-id/ata-Samsung_SSD_850_PRO_512GB_S39FNX0J909231V,size=500107608K [secondary data disk]
scsihw: virtio-scsi-single
smbios1: uuid=44ec0428-c4ba-49ac-a127-96493c8c29c5
sockets: 1
startup: order=2,up=60,down=300
tablet: 0
vga: none
vmgenid: 02766609-ad10-4ba0-9e04-2584a349423d

[PENDING]
hostpci2: 00:14.2,pcie=1,rombar=0 [same id, just changing rombar]
hostpci3: 04:00.0,pcie=1,rombar=0 [same id, just changing rombar]
vga: std [added in order to allow AMD reset bug workaround from https://www.reddit.com/r/VFIO/comments/iaxqal/userfriendly_workaround_for_amd_reset_bug_windows/ to work


relevant lines from config files:
root@coruscant:~# cat /etc/modules
vfio
vfio_pci
vfio_virqfd
vfio_iommu_type1

root@coruscant:~# cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=1002:67df,1002:aaf0,1002:679a,1002:aaa0 disable-vga=1 [video cards]
options vfio-pci ids=1002:4383,1b4b:9230,1b73:1100 [onboard sound, usb3.0 card, and storage controller passed through to a 3rd VM]

root@coruscant:~# cat /etc/modprobe.d/blacklist.conf 
blacklist radeon
blacklist nouveau
blacklist nvidia
blacklist amdgpu
blacklist snd_hda_intel

root@coruscant:~# cat /etc/modprobe.d/pve-blacklist.conf 
blacklist nvidiafb

root@coruscant:~# cat /etc/default/grub
GRUB_DISTRIBUTOR="Proxmox Virtual Environment"
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt video=efifb:off video=vesafb:off nomodeset"
GRUB_CMDLINE_LINUX=""
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!