Low latency game streaming is fantastic and doesn't need a GPU on the
client to work well. Moonlight Stream
https://moonlight-stream.org/ is
a great open source project that allows near zero latency game streaming
over lan and internet (internet streaming requires a vpn and reducing
video quality but is still very functional).
It needs a modern nvidia card that supports GameStream and GeForce
Experience Drivers installed on the windows PC. This allows for low
latency video encoding (on chip) and low latency decoding if you have
enough cpu power available in Qubes. (I'm currently running 1080p60fps
over lan and 720p 30fps over the internet on my mint laptop and
1080p60fps on my qubes os desktop)
If someone told me that this worked as well as it does I wouldn't have
believed it.
The only big problem in Qubes OS is that the mouse doesn't translate
well once the session starts. The workaround for this is to connect a
separate mouse (and optional xbox controller) to the VM running
moonlight stream with qvm-usb. (If there's another solution to this I'd
be interested to know). As far as window size goes, moonlight stream
suffers from the same drop in frame rate/freezing that can occur when a
window is too large/fullscreen in qubes os. I'm able to run moonlight
stream at 1080p60 at nearly full screen on a 3440/1440 monitor. The
trick that I've found to determine the best window size is start
streaming a game/start streaming a video, notice which core is almost
maxed out which is usually the one Xorg on dom0 is running on (I'm using
sudo htop on dom0 to see this) and then increase/decrease the window
size little by little until the core is almost maxed out but with a
little left over headroom (Xorg is single threaded). The actual
decoding of the video stream in moonlight stream is multi-threaded so
extra cores assigned to the vm running the moonlight stream client helps
drastically (I'm currently using 10 cores and initial 800MB max 4000MB
memory).
Outside of this the instructions on their site work great. The project
is also well supported by the community. I was able to get support on
discord for adding a config line for a non standard game controller
almost immediately.
If I would have known this I wouldn't have wasted so much time working
on video pci passthrough setup. Hopefully this post will help more
people have their cake and eat it too as I have.
Thanks,
-Neovalis