So why am I even bothering with this? Can't I just install Steam and Proton and call it a day? Well, you know, Call of Duty, right? Games like Call of Duty are only compatible with Windows 11. This makes Steam on Linux incapable of running it properly. From my research, I believe the reason is that some games have code such as anti-cheat which make direct access to the OS kernel.
For me, it is disappointing and complicates the experience. But thankfully, we have applications like Parsec to allow very fast remote access to a desktop environment. Are these types of apps any good?
First, I dislike having so many machines on my desk. I already have 4 machines in front of me! A work MacBook Pro, my personal MacBook Pro, an HP mini PC and my main workstation tower. All these are connected do a KVM switch from Level1Techs. Therefore, I personally don't have any more desk space to put my gaming tower around. I also live in a small 2 bedroom condo with my wife and kid, so space is very valuable.
So instead of having my gaming PC next to me, I've decided to place my gaming computer at the corner of the dining room. It's quiet, and mostly out of sight connected over a 1Gb ethernet connection. Parsec at most, only supports up to 50mbps streaming for a client, anyway so it should be more than enough bandwidth. I've been using Parsec for work related purposes as a "better remote desktop to Windows" for over a year now. With hardware decoding being used to render the desktop stream on Windows/Mac, I see that the necessary bandwidth for the download is never really more than about 10mbps. I'm not sure how it will be for gaming, but it certainly seems like 50mbps is sufficient.
Reading some of the technical references in the Parsec documentation, I think the target experience is 1920x1080 gaming at 60fps. For my use case, I am pushing a little further with 2560x1600 at 60fps. But I think this is i dependent on 2 things: First being the available bandwidth, and next the compute capability of the host to be able to stream at that resolution.
So my Windows 11 gaming PC will be the host computer which will have Parsec installed to accept connections. The basic requirement is that since I am running my machine headless, Parsec needs a "virtual monitor" or some termination on the graphics card. It is necessary in that Windows has to understand that a monitor is connected to the graphics card in order for the graphics card to be utilized for rendering in a remote environment.
In order to do that, I bought a headless DisplayPort display adapter that simply plugs into my RTX 4090 and is recognized as a monitor in Windows 11. You can easily get one at Amazon here. It isn't very expensive for a few.
1 DisplayPort headless ghost display adapter
For sound it is the same problem. However, we can get around this creating a virtual audio device using V-CABLE: https://vb-audio.com/Cable/ -- It is free, and works quite well with Parsec. On the host computer (gaming PC), I just had to specify the sound output to be "V-CABLE Input". Configure Parsec to also pass through audio and other things.
Great! So now I have Parsec configured on my gaming machine, ready to be connected to. But... ouch. There is a problem! The problem is Parsec does not support hardware decoding on Linux! Oh man! If you search around the internet, you will come to realize this is a big problem. So we have already failed there.
Running software decoding with H.265 on linux client is not pleasant. There is visible latency during game play especially in first-person shooters. It is not worth the trouble. So the first thing is what we have to make it possible to decode using my A4000 GPU on my workstation. I did put in some effort to research and find a way in how to enable hardware decoding on Linux, but not much luck. I usually found things like this Reddit post where people are just as confused as I am: https://www.reddit.com/r/ParsecGaming/comments/xg0vkn/lost_hardware_decode_on_linux_client/
Is there a solution? I think so. Thinking about it, what I really just want to do is be able to game using my gaming PC situated on the other side of the condo. It doesn't matter what machine I use as the client. That's the whole point of remote gaming, right?
So in order to solve my problem for gaming, I will just use my MacBook Pro connected to an external monitor and use the macOS Parsec client to connect to my gaming desktop and play games this way. My MacBook Pro is connected on my main work desk anyway.
With that, it is unfortunate that this is a lose for Linux now for my use case.
If Steam on Linux didn't support so many games as it does today, I would be more unhappy about the state of Linux gaming. However because there are so many choices that do work quite well, that is OK. However, I'm at this point in my life where I'd rather have dedicated things for specific purposes such as gaming. If I have a Windows 11 gaming computer, I might as well just use that to game and not switch back and forth between Linux and Windows when it comes to gaming. My allocated time for gaming during the week is already very limited as it is already!
And yes, I am doing this just to play Call of Duty and see why everyone likes the franchise so much.
Overall verdict for Linux gaming: 😐 (Mostly so-so because you can play other things using Steam and Proton on Linux.)