The Setup

Upstairs, my internet connection plugs into my Hyper-V host (actually, a TMG instance on it), and I’ve a sort-of-gaming PC set up next to that, which has a nice video card, and chair, and half-assembled steering wheel.

I’ve GigE running all over the place.

Back to the downstairs PC, though: I once tried Borderlands on it, and at the lowest settings, I could’ve made a faster PowerPoint deck. Pretty sure my WP7 phone has more 3D graphics grunt.

The Problem

Recently, I’ve been playing a lot of Jagged Alliance, because it seems like there’s just so much of it about, and I really loved the earlier incarnations.

But to play Jagged Alliance Online, or Jagged Alliance: Back In Action, I’ve needed to move from downstairs, where I like to hang out in the dining/living room, to upstairs, or The Man Room, where I’m quite isolated from my girlfriend, the TV, and the small family of woodpeckers that’s moved into the dining room table.

The Solution: RemoteFX!

The Hyper-V box got upgraded to a Core i7 (from a Q6600) with 16GB RAM recently. This means SLAT/EPT is available, which means that I now have the possibility of sexy 3D GPU graphics without actually crippling the performance of the VMs running on it.

Also, it got me thinking about RemoteFX:

Could I get reasonable 3D gaming performance from the Hyper-V host, using the downstairs box as just a screen?

Not having used RemoteFX before, I did some research. Then some more research. Then some more. Everyone and their dog was trying it with an unsupported GPU (“for business purposes”… suuuuure), but there were some success stories around, so I persevered despite not really understanding what I was doing. (It’s a good quality. Honest.)

Note: This should not be taken as endorsement or condonement of using an unsupported GPU. If stuff just randomly stops working, or a driver update breaks this, there’s no recourse. So if you need a supported, working, supportable solution, DO NOT DO THIS. (yes, just like Xbox Live through TMG).

I jammed an Nvidia 9400 (or something; the only spare PCIe card I had) in the server as a proof of concept (depending on what you read, you either need more than one card, or the Intel isn’t a suitable RemoteFX GPU anyway).

Pre-work: Disabled Live Mesh’s Remote Desktop support (it installs a video adapter driver that I’m pretty sure isn’t WDDM and I didn’t want to fiddle around with it; RDP is fine)

To CAP or not to CAP?

Mine did have a WDDM driver (the i7 has Intel Integrated HD Graphics)… but I didn’t know that, so I assumed it was XPDM and installed the Cap driver; turns out I simply didn’t need to, and there was much installing and uninstalling of the cap driver, with reboots required. (Which take out my house’s Internet connection).

In short: looks to me like if your inbuilt server adapter is WDDM, no need for the CAP driver. But like I said – I removed the ?XPDM? Live Mesh adapter before starting.

Success!

It worked, but the 9400 didn’t support new niceties like Shader Model 3.0, so BIA was out. And JAO ran too slowly for my liking. And the card was ollllld. So assuming that’d be the problem, I figured I’d try a new one.

A new video card

So I bought a new ATI/AMD Radeon HD 6770 1GB card (and a 6790 for the gaming PC…) for $140, and dropped that into the Hyper-V box.

(Yes, I know it’s unsupported. Yes, I know there are special GPUs for this. No, I can’t help you if you run into trouble with this.)

At this point, I tried installing drivers, but it didn’t seem to work initially, possibly because I still had the Cap driver installed (there was screen blanking). Eventually, after several uninstall-reinstall cycles, it just worked. I didn’t (as of 12.1 Catalyst) need different drivers; I didn’t install Catalyst Control Center on the successful run, but I don’t think it was that anyway.

The Event Log messages about nonworking GPUs disappeared, and I had a working RemoteFX host again. (Moral of the story: if you are using a cap driver, and you need to add or change a video card, disable the cap driver first).

How does it go?

It goes alright!

Some games react weirdly to RDP-style inputs (particularly the mouse); some games have glitches they don’t otherwise have with the synthetic 3d adapter.

I would not try playing most FPSs via RemoteFX (you’re instantly dealing with input lag plus network lag plus rendering time on the server and the client, plus that mouse-movement-is-display-mouse-movement thing).

Also, keep in mind: this is a screen remoting protocol; if your box can’t do smooth full-motion 3d on its own, or smooth full-screen video, doing smooth full-motion 2d-of-3d might put a fair load on it as well. If Aero is jerky on the box (it is on the Touchsmart), that’s about the best-case frame-rate you’re likely to get from RemoteFX or anything for that matter. There are performance counters to track where bottlenecks are.

Quick summary of games I’ve tried:

I can now play Jagged Alliance: BIA on my downstairs PC pretty reliably, which is all I wanted to do in the first place. I do it a lot right now. I use 1280×720, 30Hz (seems to respond better), 2xaa, 4xAniso (or 4x whatever that last setting is), and Vsync.

JAO has some graphical weirdness (blank world map and face tiles) which fixes itself up when you play with the 9 and 0 keys (graphics detail level). Again, can now play it on the Touchsmart, which is incapable of playing it on its own.

Company of Heroes looks great, and with all the settings turned up to max, I got a “Great” score on COHmark. Can’t remember the numbers, but better than I expected. Haven’t played with it extensively yet.

I tried Civ IV, and it was the first time I’ve played it… it worked pretty well.

Frozen Synapse didn’t work at all, just crashed to desktop.

Deus Ex: GOTY – man, that game’s a pain to configure these days, what with its software rendering default and 16 bit colour! ugh! – it doesn’t really work well, input issues once the video issues are fixed.

In summary: awesome for the downstairs PC

It’s not a solution that allows me to dedicate the full unfettered power of the GPU to a single client (at least, I haven’t worked out how), but with a nice, grunty GPU in the server box, it’s nice that I won’t have to replace the touchsmart until Win8 comes out (bevel-less touch is important), and then I’ll get me one of those sexy new HP all-in-ones, and maybe play games locally again for a while. Or maybe stick with the thin screen/lots of bandwidth solution!

There's another form of RemoteFX where you do that, which supports faster response and video streaming (if I read it correctly) but it doesn't (didn't?) expose the D3D device to the host, only as a virtualized Hyper-V device. Might be an idea to ask the RDS blog folk?

7 years ago

Anonymous

Very cool. Thanks for doing it and writing about it. Saved me a lot of time. JA is a great game.

7 years ago

me

Can someone explain to me. Why you need virtual machine and dont install remotefx on the main server 2008 R2 platform ?

have you tried updating your box to 2012R2? I was waiting hard for DX11 to be fully supported by RemoteFX. I have a setup quite similar to yours, the video card is HD6990. The sad fact is, in Windows 2012 the performance bacame only a half of what I used to have in 2008R2: 6400 3DMark06 points versus 11600. To the moment, no guidelines on that are available.

I was finding it hard to understand what I should or shouldn't be able to do with it, so it's kinda in a state of disrepair at the moment. Getting a Surface Pro 2 also lessened the need for a games box elsewhere, but that's by the by 🙂

So my current state looks like this:

– the box is upgraded to 2012 R2

– the HP Touchsmart is sitting in the same room, having just been upgraded to 8.1 but decommissioned from the dining table

– the dining table was decommissioned

– the dining table was thrown away

– after 6 months, a new dining table was commissioned

– the lady of the house doesn't think we need a dining table PC

– the VM I was using is long-expired/dead/missing/something

– the 8.0 VM I was trying to use RemoteFX with didn't work

– the 8.1 VM I was trying to use RemoteFX with didn't work *initially* but I remember mixing preview 8.1 with RTM 2012 R2, which is probably not a great idea, and there were video driver crashes noted in the event logs.

– the 8.x VMs I have aren't Enterprise, which is documented as being a requirement, and I haven't yet put the time in to work out whether that's holding me back, or something else is going on.

On performance: I remember the initial performance of 2008R2 not being what I'd hoped it would be (i.e. FULL POWER OF A SINGLE CAAAARD for a single virtualized box) and not approaching single-card performance, but still being way better than the local box would've provided. I did fiddle with all available Group Policy settings to try to make it as "unfair" as possible and bias single-box performance, but I'm not sure what the engineering tradeoffs are there (I can guarantee that it's not considered a core consumer scenario to do this from the Enterprise Ed requirement for the Windows Client).

So, swings and roundabouts. I'll get to it when I want to play CoH2 on my Surface RT, I guess 🙂

4 years ago

Interested Party

…AND?.. I know 1.5yrs is a stretch, but there's not much out there about combining 2012R2 with 8.1Enterprise as I was hoping to find.

3 years ago

Joel

Hey thanks for this article, i found your experiment very interesting. I’m planning on trying to get the working within the next few days. I have server 2012 r2 with 8gbs of ddr3 1600mhz RAM(more soon), 3.6 GHz amd dual core FX processor with a GeForce GT 750ti. Going to install virtualization host/remote FX with vgpu. Host will be w8 enterprise. Network is all 1gig . Might try minecraft, just for benchmarking Skyrim, and I’ll try and get a passmark benchmark