I’ve played a small amount with it— I didn’t go far because I only have one graphics card. But my understanding is that you can set up the virtual machine to “capture” the graphics card when it is booted up, and “release” it when it’s done. That’s how some people can use a single graphics card, they just can’t see the Linux desktop while the vm is in use.
For switching games, make sure the drive the game is on is supported by both Windows and Linux. I imagine you’d need to unmount it on the host while the vm is open. I do this for some games with dual booting. Also, install the Windows version and force proton, otherwise you’ll have to install it twice.
For microphone, I assume there’s a solution like network: a way of forwarding the data to the VM in addition to being available on the host. I haven’t tinkered with this though.
For monitors, I’d look into Looking Glass. My understanding is that it can make a window to display the vm output. If you don’t mind the monitor being “tethered” to the gpu, though, I’d imagine any monitors attached on the gpu you pass would display the vm’s contents, while any on the host card will remain the same.
Best of luck!
I’m sorry to hear you’re having trouble!
Regarding the vainfo thing, at least on Arch, the Nvidia vaapi driver is a separate package. I’m not sure what the equivalent is on bazzite, but that’s likely why vainfo doesn’t show anything. And you should still be able to use nvenc anyways, which sunshine will choose before vaapi.
Is moonlight able to see the computer on your network? And in sunshine’s web interface under the “troubleshoot” tab, there’s a log. Does it say anything that might help?