I have an Intel Core i5-7600K and just passed through my Intel HD 630 iGPU from my Proxmox host to a virtual machine running Debian to be able to use it in a Jellyfin Docker container. Everything worked fine, but I used only the basic configuration that I found which I don’t really get. Can someone explain to me whether I’m missing something?

First I followed this tutorial: 3os.org/infrastructure/…/igpu-passthrough-to-vm/
But I only added intel_iommu=on iommu=pt to my boot parameters and vfio, vfio_iommu_type1, vfio_pci, vfio_virqfd to /etc/modules.

But what are all the other parameters good for?
pcie_acs_override=downstream,multifunction initcall_blacklist=sysfb_init video=simplefb:off video=vesafb:off video=efifb:off video=vesa:off disable_vga=1 vfio_iommu_type1.allow_unsafe_interrupts=1 kvm.ignore_msrs=1 modprobe.blacklist=radeon,nouveau,nvidia,nvidiafb,nvidia-gpu,snd_hda_intel,snd_hda_codec_hdmi,i915"

Then I added the iGPU as a PCIe device to my VM using the Proxmox webUI and added the render device /dev/dri/renderD128 to the Jellyfin Docker container.
I followed the official instructions from Jellyfin: jellyfin.org/docs/general/…/intel/#configure-with…

But I haven’t added the host group ID, what is that good for?
And I also installed the intel-media-va-driver, i965-va-driver and firmware-linux-nonfree as well as firmware-misc-nonfree. Are all of those necessary?
And then I had to add options i915 enable_guc=2 to /etc/modprobe.d/i915.conf to get it to work. This is supposedly only necessary for Low-Power Encoding, but it was necessary to get hardware transcoding to work at all?

I’m happy that it is working now, but I don’t really feel like I fully understood what I did. Were some steps unnecessary or did I miss anything?