Is it possible to use iGPU for VM passthrough and dGPU for the host?
from penquin@lemm.ee to linux@lemmy.ml on 17 Dec 20:37
https://lemm.ee/post/50035181

Hi all,
I have all AMD and I wanted to try and set the integrated GPU for passthrough for VMs and leave the discrete one for my daily use. Is this doable? If so, how complicated would it be?
Processor: Ryzen 7 5700G with Radeon vega integrated graphics card
GPU AMD RX 6600.
Thank you

#linux

threaded - newest

edinbruh@feddit.it on 17 Dec 21:07 next collapse

I haven’t looked into how to configure this but it should be possible, and you would use the motherboard HDMI port for the VM, and the ports on the dGPU for the host. As usual, the arch wiki is your friend, even if you are not using arch

But… If you don’t care about VM performance (seeing as you are passing the iGPU to it) you should look into other options like virtio or sr-iov, so you don’t need to fiddle with the HDMI ports. Please notice that virtio is paravirtualized and only works well for Linux guests, and sr-iov is real hardware virtualization and requires hardware support. Both these methods require only one GPU. Once again, look at the arch wiki and the qemu wiki.

Also, if you are using Linux guests, you should really look into “GPU native context” which is a paravirtualization method that works similarly to Hyper-V’s GPU paravirtualization (which is currently the best) and would allow almost native performance for the VM, without requiring multiple GPUs. It is not available for amdgpu yet, but you can follow development here.

P.s. if you are using windows hosts, paravirtualization methods will not be satisfactory for the foreseeable future. You will need either passthrough (like you suggested) or full virtualization (with sr-iov). I can give you more details if you like.

penquin@lemm.ee on 17 Dec 21:43 collapse

So I did follow a tutorial earlier and I think I got something going. One thing the tutorial didn’t mention is plugging one of the monitors into the motherboard’s HDMI. That’s why I only had one monitor when I did it? 🤦🏽‍♂️

edinbruh@feddit.it on 17 Dec 22:58 collapse

Probably, if everything else is correct. GPU passthrough hands over an entire GPU to the virtual machine, so the only way of getting the output of that vm is plugging a monitor in that GPU

penquin@lemm.ee on 18 Dec 01:07 collapse

Makes sense. Thank you. I’ll mess with it more and see what I can come up with.

dragonfly4933@lemmy.dbzer0.com on 18 Dec 01:21 collapse

This might be of use to you:

looking-glass.io

You might still need a dummy hdmi/DP plug/adapter.

penquin@lemm.ee on 18 Dec 01:26 collapse

Hold on, what? So this is just something you download and run? I’ve never heard of this thing, in case this question sounds stupid. Lol

dragonfly4933@lemmy.dbzer0.com on 18 Dec 03:30 collapse

You would still need to pass the GPU through to the VM, but this can eliminate the need to plug the GPU output into another device or use a dedicated monitor.

I have never used it, but I know it is pretty common.

penquin@lemm.ee on 18 Dec 17:47 collapse

I checked their site and the Linux version of their app, according to them, is basically “use at your own risk”. Not fully functional nor heavily tested.

[deleted] on 18 Dec 16:11 next collapse

.

cinnamon_tea@programming.dev on 18 Dec 19:12 collapse

I have the same processor and an RX570. I can pass through the dGPU to the VMs and keep the iGPU for the host, but the reverse was not possible for me.

Does the motherboard matter for this? Mine is not so fancy.

penquin@lemm.ee on 18 Dec 19:21 collapse

Welp, I do need my dGPU for my games. VM passthrough is just something I wanted to try

cinnamon_tea@programming.dev on 18 Dec 21:26 collapse

Since my iGPU and dGPU have more or less the same power, for me it made no difference which one I kept for gaming.

p.s. I game inside my VM, which gets the RX570 passed through to.