My home lab is a beasty Xeon D-based server with 128GB of RAM, chock-full of storage (fast NVMe and SSD as well as four 3.5″ 3 TiB disks), a quad-core Xeon D-1521 and two 10-gig ethernet interfaces. More than adequate as a server, and it comes in a small and silent package.

The goal was to have just a single machine in the house to fulfil all the different scenarios:

  1. A home lab server, running ESXi and the vCenter appliance with ample storage and compute resources. I built this server and documented it: Build a Xeon D-1500 (Open) Home Lab with me?.
  2. A NAS for both the lab (to host ISO files, templates and the like) and the home media system
  3. A Home media automation system running Sonarr, a MySQL database for Kodi, HTPC Manager, Logitech Media Server, Resilio Sync and the UniFi wireless controller.

But, there was one thing missing: a graphics card, for a 4th scenario. As the occasional gamer, I didn’t want to have an additional PC in the house. In addition, it felt like a waste of resources to not use the home lab server for this.

Limitations

So I went out searching for a small but capable graphics card to complement the server, but there’s a lot to take into account. Let’s break it down.

Hardware

The physical machine comes with loads of limitations:

  • The chassis is very small, so there’s not a lot of room in there for a full-size graphics card. There only room for single-slot cards, and these need to be low-profile, too. Lastly, most gaming cards are very long; the chassis didn’t allow for this since there’s all kinds of connectors (for fans, etc.) in the way of the length of the card.
  • The power supply is only 250 watts, which severely limits the selection of GPUs.

Software

Since I use the server for various other purposes, too, running ESXi as the base platform was a hard requirement. This meant that any gaming needed to be done inside a Virtual Machine. This brought on a slew of extra stuff to consider, since I now had to be able to pass through PCI-devices to the VM: the GPU, the embedded audio card, a mouse and a keyboard.

Requirements

I wanted to play fairly recent games, so DirectX 11 was a must and DirectX 12 a wish. Having a card that passes through audio via HDMI is a must, too, since there’s no room to fit an additional audio card in there. A DAC via USB is a possibility, but I didn’t require it (HDMI audio was good enough) and I didn’t want the extra clutter.

Solution

I found the perfect solution in the MSI N750 TI-2GD5TLP at 146x69x38 millimeters.

It barely fits the physical limitations: it’s a low-profile, 1-slot card that is very short. So, it actually fits inside of the chassis. Almost. The card with its fans attached is a little too thick; the card sticks out from the side of the chassis. The temporary solution is not putting the chassis cover back over the rims, but kinda let it hang. In the next days, I’ll try removing the dedicated fans from the GPU and create better airflow from the front to the back of the chassis.

A picture tells a thousand words:

The card draws a maximum of 60 watts, which is way below the threshold; the system gets up to 80 watts under load without the GPU, and I figure it’s going up to 150 watts during games.

And: it works in a VM. I needed to do a little hocus-pocus to pass through the card to a VM since the UI wouldn’t let me, but a quick edit of /etc/vmware/esx.conf and a reboot did the trick. I passed through the integrated audio chip and an USB root hub too, so I could easily attach a mouse and keyboard to the VM.

Quirks

There a couple of things I learned along the way:

  1. PCI Passthrough of a GPU to a VM might not be available from the ESXi Host Client. I’m figuring this is because the BIOS claims the card during boot. I added the GPU to esx.conf manually.
  2. Seeing a physical host boot from the GPU, and then have the VM ‘take over’ the card as the VM boots is pretty awesome.
  3. I was lucky I could pass-through a whole USB root hub to the VM. Depending on your motherboard’s design, this might not work as easily. Be prepared to test this (researching this beforehand using vendor manuals or documentation is nearly impossible). There’s other ways to expose a mouse and keyboard to a VM: use a KVM-over-IP for this like Paul Braren does.
  4. When you have installed the corresponding graphics driver, your VM console starts to do all kinds of funky stuff with the virtual VGA adapter. The mouse pointer disappeared on one of the VM screens (since it now has 2 screens: one from the virtual VGA adapter, one from the physical GPU), and they don’t play nice. Switch to ‘show only on 2’, which disables the virtual VGA adapter. Be aware that you don’t get to see the console of the VM (inside the Host Client) anymore, either.
  5. Tweak the power settings of the VM to never go to sleep and to never turn off the display.

Performance

I have played a couple of games of a few hours, and I can say that performance of the Windows 10 VM with the GPU is adequate. The biggest limitation here is the GPU itself, which is ‘only’ a NVIDIA GeForce GTX 750Ti with 2 GB RAM.

Conclusion

vm-on-tv

Rarely was I more excited to see a Windows 10 lock screen on my TV. It works, and it so without too many hacks or quirks. Gaming performance is adequate, although actual testing is needed to figure out if it’s slower than a physical machine with the same specs.

The next step will be to figure out to make the server headless again; it looks like a Steam Link might fit the bill.

Me, I’m really happy with the result: I still only have a single machine, that now does four things for me: home lab, NAS, home media and gaming rig. All well under 100W in a single package!