RemoteFX in the Home: Crossing your Ts and dotting your Is

[audio:http://www.withinwindows.com/files/uploads/2011/07/07042011.mp3|titles=RemoteFX in the Home: Crossing your Ts and dotting your Is] [This is part two of the “RemoteFX in the Home” series]

Three weeks ago, I briefly went over what RemoteFX is and mentioned how I believe the technology will break new ground in consumer scenarios. With the boring introduction out of the way, let’s dive into the finer details.

RemoteFX is touted as a set of technologies to enable the “delivery of a full Windows user experience” down to the client. But you’re probably wondering, what does “full experience” really mean? We’re talking about a handful of specific scenarios that weren’t possible before over vanilla RDP. Specifically, scenarios involving:

  • DirectX-accelerated applications, games
  • Silverlight and Flash
  • Full-motion video
  • USB devices

DirectX

I put DirectX at the top of my list because it’s one of the most compelling features of RemoteFX. To be able to play an accelerated game, like Unreal Tournament 3, over RDP on a laptop with nearly unusable Intel graphics is just amazing. To set expectations, RemoteFX currently supports up to DirectX 9.0c. (It’s important to note, however, that today’s games – even Crysis 2 – release with DirectX 9 support.) If you were thinking of virtualizing Minecraft, however, you’re out of luck -- OpenGL was left on the side-lines, with minimum software-only (1.1) support.

Silverlight/Flash

With regards to Silverlight and Flash… well, how many times have you used Internet Explorer over RDP and stumbled across a page with humongous rich advertisements causing slow downs? Those days are over. RemoteFX ties into both Direct3D and  DirectX Video Acceleration (DxVA) APIs to accelerate Silverlight and Flash respectively.

Flash (as of 10.1) ties into DxVA APIs for the acceleration of video decoding and (full-screen) rendering operations. Because of the way RemoteFX was implemented, hardware acceleration isn’t a capability Flash can detect at this time, so it falls back to using software logic. Don’t fret through, RemoteFX still accelerates lots of DxVA operations – software or otherwise – and boosts performance greatly.

Silverlight, on the other hand, with its custom software renderer, is accelerated a little differently. It supports off-loading to the GPU, but… to be honest, I don’t understand how it works. (It doesn’t tie into DirectX, for example.) Let me get back to you on that. Any information you have on that subject would be greatly appreciated.

Full-motion video

With the tie ins to DirectX Video Acceleration, RemoteFX also enables full-motion video delivery. For example, by using a DxVA-capable player (e.g. Media Player, VLC), you can decode and send full blown 1080p video to a laptop or thin client. Some of you may be wondering – wait, wasn’t this already possible with Multimedia Redirection? Not quite. Multimedia Redirection is simply just that – a redirect. It redirects the source stream to the client, for rendering on the client side. RemoteFX differs in that it renders on the host side and takes advantage of the GPU there.

USB devices

Last but not least, RemoteFX supports the redirection of USB devices. Because the device is redirected as such a low level, the client doesn’t even need drivers installed. This enables all sorts of neat server-side management scenarios not possible over vanilla RDP.

Looking forward

In the next several posts, I’ll explore RemoteFX dependencies, to include licensing and hardware, and start down the path of building a box! Stay tuned, and my apologies for taking so long. There’s a lot of research that has to happen behind the scenes.