STEAM GROUP
Steam Remote Play homestream
STEAM GROUP
Steam Remote Play homestream
3,322
IN-GAME
36,064
ONLINE
Founded
November 7, 2013
MikkoCatz Jul 30, 2017 @ 6:29am
ESXi VM's w/Steam in home streaming
Ever since Steam released the awesome free featured in home streaming I've been dabbling from time to time with running it off VM's on a reasonably powerful but still budget home built desktop so that I could use any device which can run Steam in home streaming with multiple accounts.

Why would you ever do this?

For my motivation I wanted 1 computer to which would run 2 Steam clients operating with Very High or Ultra level 3D graphics performing in home streaming to any device which can run Steam in home streaming service... and professional development.

If you've tried this you may already be aware that it can be finicky about working properly.

My on the cheap home build
Intel I5-4590 (VT-x and VT-d are required, any CPU used for this needs to have those features)
Gigabyte GA-97X-UD3H
32 GB DDR3 1600
Geforce 960
ATI RX 560
2x Samsung EVO 250 SSD
1x Seagate 1 TB Drive
650W 80 Plus Gold
VMWare ESXi 6.0 (Free for non-commercial use, such as in home gaming servers)
2x Windows 10 Pro (Pro because I had the keys, Home works fine)
Gigabit Network interface card (additional to the Gigabit one on the MB)

I have finally made it work properly with graphics cranked up in 3D games and 5.1 sound on the system plugged into a home theater. (Thank you for finally adding in that streaming feature so I could pull the long run fiber audio cable out) and to anybody who is working through it I have a few of the solutions I used to get this functioning.

1) NVidia graphics cards are a pain in the ass to get to work properly with DirectIO pass through. Oh they pass through fine, but the NVidia seems to have disabled using the card if a VM is detected. I couldn't find information on whether the AMD cards also disable their GPU's in a VM.

Add

hypervisor.cpuid.v0 = "FALSE"

to the VM's .vmx configuration file PRIOR TO INSTALLING WINDOWS OS on the VM. I never made it work installing Windows first, maybe it will work with other OS's post install but I wanted the title availability of Windows from Steam. This was required for both VM's and both GPU manufacturers. AMD worked better in the VM after installation (less playing around with GPU drivers)

2) Windows 10 works, Windows 7 maybe, but don't count on it.

I tried installing Windows 7 and getting GPU pass through to work properly with both NVidia and AMD and neither ever came available for use with anything I did or researched. Windows 10 took some tinkering but it did work providing I put the above into the VM configuration prior to installing windows. Sometimes ESXi removed the hypervisor.cpuid.v0 = "FALSE" line from the configuration file during a Windows install. The VM had to be deleted and re-installed from scratch until Windows finished the install with the hypervisor.cpuid.v0 = "FALSE" in the configuration.

3) Screen Output on the GPU card is required. Headless dummy video adapters work to solve this if the goal is a headless system tucked away so you can't hear it.

Windows will not utilize the GPU unless it detects a screen connected to the GPU. This sounded strange to me because the GPU is simply there to render the graphics prior to encoding the video for streaming and no output on a screen is ever required. It did not work without having a screen (or dummy plug) plugged in. The GPU simply was not available to Windows.

4) Audio is not available from the GPU unless it detects an actual screen. Dummy plug does not allow audio.

Unless the machine has 2 sound cards to pass through, using the built in audo of the GPU will not work unless it detects an actual screen. I solved this by passing through the on board audio card to one VM and using an old projector I had lying around and plugging that into the other VM GPU. The screen doesn't have to be on, but it does have to be powered (standby vampire device).

5) SSD Access (And likely HDD too, but I didn't try that) can cause lag on both systems on first write.

VMWare advises not to use Thick Eager Zero Independent drives for most commercial uses. Doing this for steam will make everything work faster and minimize the first write access lag of the SSD. If someone is installing a new game while the other person is playing there may be lag hiccups. These do not seem to be there while both machines are playing games, only while one is installing. This may be a limitation of my on board SATA controller or how the CPU is prioritizing work.

6) Run ESXi off a USB stick.

Commercial users know this already. There is little advantage to running ESXi off your SSD or HDD. It runs well off a 1 GB USB stick.

7) Install some kind of remote desktop server as soon as the OS is installed.

I use Tight VNC. Have some other way to access the VM because once the GPU is enabled and working properly the console in VSphere Client will display an extended desktop with the VMware driver. You can push (Windows + P) blindly until the "Show on 1" appears but remoting in with VNC works better for most other administration anyway.

8) Don't install VMWare Tools.

Something about the GPU drivers that VMWare Tools installs prevented the pass through GPU from working.

9) Since the Host machine is passing the GPU through to the VM a dedicated GPU for each VM is required.

NVidia and VMWare got together and developed the awsome GRID setup which uses vGPU architecture. This setup is expensive. GRID cards are expensive, decent server GPU's with virtualization are expensive. GRID and Quadro GPU provide no benefit to the average home gamer and cost 10x as much.

10) Gigabit network infrastructure helps a lot, 2x Ethernet NIC is a boon.

Wireless works fine, but the steam in home streaming server should be hard lined into a gigabit wireless router. 2x Ethernet NIC's help relieve some of the traffic off the VMWare VLAN and allow everything to run smoother.




Having these tips available while I was working through this would have saved a lot of research. There are many other really neat features which can be done using commercial infrastructure with servers, multiple CPU mother boards, NAS and iSCSI storage. I don't have the kind of free capital to put into those. I have played around with some of them and they would be awesome if money wasn't a factor.

< >
Showing 1-2 of 2 comments
HellsDelight Jul 30, 2017 @ 7:34am 
That's awesome, I never thought about ESXi to use for such scenario.
With Virtualization isn't there too much of a lag for streaming? Maybe Docker might be more performant?
Are you using 2x Steam simultaneously with the same login? I assume you need to add the SteamGuard code each time you login on both.
Last edited by HellsDelight; Jul 30, 2017 @ 7:38am
MikkoCatz Jul 30, 2017 @ 7:45am 
I use 2 accounts streaming at the same time, mine and my wife. I can use 1 account if I log into it on both VM's and offline steam on one so that it doesn't realize one account is already playing something, but it won't stream to 2.

With fast enough remote desktop software it may be playable, I dunno, I didn't try it because the goal was to use Steam In Home Streaming and not just remote desktop a thin client. Steam in home streaming has demonstrated itself as the better option vs remote desktop.

This may also work with NVidia GeForce Experience streaming services but that would require 2 NVidia cards and the GeForce Experience software. Steam In Home Streaming works so well (Including non-steam games) I haven't had the motivation to test other streaming services.
< >
Showing 1-2 of 2 comments
Per page: 1530 50

Date Posted: Jul 30, 2017 @ 6:29am
Posts: 2