Look out PC-over-IP! Citrix announces new host-side GPU-based encoding for HDX 3D

If VMware can actually come out with a decent implementation of PC-over-IP (and that's a big "if"), this would certainly be a big threat to Citrix whose ICA protocol has traditionally dominated the space.

One of the most-anticipated demos we hope to see at VMworld this week is of VMware’s software-only implementation of Teradici’s PC-over-IP remote display protocol. If VMware can actually come out with a decent implementation of PC-over-IP (and that’s a big “if”), this would certainly be a big threat to Citrix whose ICA protocol has traditionally dominated the space. So perhaps it should come as no surprise that Citrix announced something called “HDX 3D” today, an enhancement to ICA they claim delivers 3D applications while just consuming one-tenth the bandwidth of the “competition.” (read: PC-over-IP)

What is HDX 3D?

Remember that Citrix created the HDX brand earlier this year as the catch-all phrase to describe the various user experience enhancements to ICA. There were many different sub-brands in the HDX family, including HDX 3D. The “HDX 3D” from earlier this year wasn’t really about 3D at all, but instead it was the sort of catch-all where Citrix lumped their progressive display, lossy compression, and SpeedScreen technologies. We assumed that HDX 3D would also be the area where Citrix would include their “Apollo” technology when it was released, and that’s in fact what we’re seeing today. (Actually this technology has been known by many codenames over the years, including K2, Ocelot, Pictor, and Apollo.) If you ever played around with any of those tech previews, though, you’ll notice that today’s final (first?) HDX 3D release is substantially different in a lot of ways.

The new release of HDX 3D will be used to deliver OpenGL and DirectX apps running on XenDesktop back-ends to users via ICA. HDX 3D is a host-side rendering / encoding technology, which means that it identifies and encodes OpenGL and DirectX graphic content on the remote host and sends it down to the client via normal ICA. (Again, just to be clear, this is not redirection where they send raw OpenGL/DirectX calls to the client. This is full host-side encoding.)

HDX 3D has a host-side hardware requirement in that the remote host must have a CUDA-enabled Nvidia GPU which is used to do the fast and complex math to make this all happen. (More on CUDA in a bit.) In practical terms that means as it stands today, HDX 3D is a one-to-one solution for remote blade workstations. It doesn’t work via XenApp (since each session doesn’t have its own GPU), and it doesn’t work when your backend desktops are running as VDI VMs (because the hypervisor doesn’t expose the GPU to the VMs).

HDX 3D will be available by the end of September as a feature of XenDesktop (Advanced Editions and higher), meaning it won’t cost anything extra.

How HDX 3D works

On the remote host side, Citrix is releasing a custom VDA for the environments where you want to use HDX 3D. (The VDA, or “Virtual Desktop Agent,” is the software agent you install on your remote workstation OS that lets it participate in a XenDesktop farm and gives the ICA hosting capability to a desktop OS.) Having a separate VDA shouldn’t be a problem for anyone since this is a physical workstation host solution anyway, so it’s not like you’re sharing the same disk image with remote desktop VMs.

On the client side, HDX 3D is just another plug-in for the Citrix Receiver. (That’s newspeak for “it’s just another virtual channel for the regular ICA client.”)

HDX 3D lets you configure the image quality, so you can balance the bandwidth-to-user experience. (PC-over-IP lets you do this too.)

From a technical standpoint, the HDX 3D engine replaces the existing ICA progressive display capability. It lets the OpenGL or DirectX stuff render on the host, and then it scrapes them and makes what’s essentially like an M-JPEG movie which is streamed down and played on the client. In many ways this is similar to the way HP RGS and Teradici PC-over-IP.

What’s this “CUDA” thing?

HDX 3D requires a physical GPU on the host that supports “CUDA.” CUDA is an Nvidia programming interface that lets app developers run code on the GPU. (CUDA stands for “Compute Unified Device Architecture,” whatever that means.) The key about CUDA is that it’s NOT about graphics programming per se. It’s about giving programmers access to the power of the GPU to do whatever they want. A lot of CUDA-enabled apps today do super-math intensive things that GPUs excel at, like cryptography and molecular modeling. So in Citrix’s case, they’re leveraging the GPU as sort of a poor-man’s Teradici chip. Sure, it’s not made for remote graphics like the Teradici chip, but it’s much better suited for it than the normal CPU.

Just about every Nvidia GPU on the market today is CUDA-enabled, including the GeForce, Quattro, and Tesla devices. So if you have one of these GPUs in your remote host, you can swap out your off-the-shelf VDA for the CUDA-enabled HDX 3D VDA and leverage the advanced encoding options when delivering OpenGL and DirectX content.


What's tough for Citrix is that they're trying use this announcement to defend themselves on two fronts here:

  • On one front they've got the traditional Teradici hardware-based PC-over-IP threat. Here they're basically saying, “Why buy a proprietary chip when every Nvidia card from the last few years can do many of the same things?”
  • On the other, Citrix is trying to preempt any excitement that VMware might generate this week with their software PC-over-IP implementation. They want to be ready to say, "We can do all this too, but with less bandwidth." (Again, this depends on how good the software PC-over-IP is, which we just don't know right now.)

Of course at the end of the day, it's all about use cases. The reality is that HDX 3D is going to be for those customers who are already using Citrix XenDesktop or XenApp who were maybe considering the hardware PC-over-IP. Right now PC-over-IP doesn’t integrate with Citrix, so if a current customer wants that, they’d have to build a new infrastructure for it which would be bad for Citrix since it would open the door (in the customer’s mind) for alternatives. So if HDX 3D can prevent customers from trying something else, then it’s done its job.

Some folks are quick to point out the fact that by limiting HDX 3D to XenDesktop only (and not XenApp), Citrix is really missing the boat. Personally I don’t agree with that, because I don’t think that these higher-end apps that need HDX 3D are the kind of apps that people typically use on a Terminal Server. And right now any technology that lets a Terminal Server share multiple GPUs is so expensive that you’d be better off just building a blade environment for them. (Especially now that Citrix is planning for XenDesktop-hosted apps.)

I haven’t had a chance to use HDX 3D yet. We’ll look for a demo at VMworld this week to record for Brian Madden TV. And if we can’t find it, we’ll do something next week via the WAN. (Because the 10x bandwidth savings and WAN compatibility are both two things Citrix is pushing about HDX 3D, so that demo should work no prob!)

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

@Brian, I guess you won't be seeing HDX 3D this week after reading this post from Citrixcommunity.citrix.com/.../It+takes+more+than+a+protocol+to+deliver+the+best+possible+experience

To me it's interesting that Citrix claims that they got better WAN performance than PCoIP with hardware. Certainly I'd be interested to see what PCoIP software only does compared to hardware without loosing quality. Citrix mentions this in the blog, so I can't take credit here.

I think most compelling point made that I agree with is that there are multiple ways to handle over user experience depending upon conditions. I've had VMware promise me that PCoIP will solve everything, but I just don't buy it.

Anyway, certainly looking forward to some real world test results of the software based version of PCoIP.

Also on the point about XenApp for 3D. I agree with Brian. Too heavy a use case to worry about multi user. Even when GPU sharing is possible, I wonder if the backend will scale at a cost that anybody would care......

Looking forward to coverage of the SINGLE VENDOR EVENT Brian.


This is good news people, taking advantage of the local hardware (CUDA) is a big step for Citrix and for VDI as a whole.  A lot of Thin Client vendors have been trying to figure out how to leverage local hardware components (such as switchs in code to exploit hardware codecs instead of depending exclusively on software).  One thing I do want to understand is what the hardware specs were for the back-end of the demo.  While I am a HUGE fan of the HDX team (extreme talent there), I am not a stranger to "ideal demo scenarios".  Whats it look like on generally available hardware that is compatible and not a souped up gamers pc?


I think this is a good development, looking forward to a direct comparison with Teredici's software encode/decode.

Also, thanks for using "host side" as the descriptor for the rendering, this avoids the whole client vs server confusion.

I agree that this really is a pretty special use case that probably doesn't generally apply to XenApp, but the possibility of using Xen Desktop published  apps into a Xen App environment is very relevant for those special cases.

Also with Citrix, you do get a single vendor and protocol, in practise this is a HUGE advantage


Very exciting news indeed!

I'm especially excited about CUDA. Does anybody know if CUDA is available on the Nvidia Tesla products as well?

Outside of traditional enterprise deployments, I think that the CUDA interface will play a big part in the "Gaming-as-a-Service" market.

And it's great to see more vendors to adapt CUDA. Apple has CUDA support in OSX 10.6 with OpenCL. Citrix now supports CUDA. And Microsoft will be next (I hope).



That is a good point Christoph, take that a step further and consider a Thin Client for the Gamer Community.  

It seems like a No Brainer, All the gamers I know spend at least a portion of their time toting around Gaming PC's for "LAN Parties" (which is no longer a true discripption but still used) and spending obscene amounts of money on Memory\Proc\GPU.  If they could get all that performance in a Thin Client package, without the bulky package.  That would be an ideal cosumer market to approach with a "Consumer Thin Client" concept.  Just my two cents......


This is no solution at all....The only way HDX 3D can work is with a Blade PC. The Blade PC concept is a complete train wreck!

What I want to know is how will this work in a true virtualized environment. XenDesktop on Hyper-V in which the GPU can be exposed through the virtualization layer...All the hype....For what???!!


Hi Pernst,

Blade PC's are not your only option, there is a difference between a Blade PC and a Workstation Blade.

I agree that "Blade PC's" are a train wreck, however, TODAY the only viable\production ready solution for a full multi media experiance is Workstation Blades (hardware) based in cunjunction with a protocal that can enhance multi media experiances such as HDX\RGS\Terideci\TCX.  This is forward looking information and needs to be taken in that context.

I can understand your frustration, seems like a lot of hype with no real use case\customer story's to back it up.  It is the nature of new technology.  The proof is in the eating of the pudding as they say.  Thanks for sharing your thoughts\feelings.  It is a comman concern.


The PCoIP vs. HDX-3D comparison is apples to oranges. One can be run inside of a VM, the other cannot. A more appropriate comparison would be HDX-3D vs. RGS+View as a solution for Blade Workstations.

Also, the stuff around testing the existing hardware PCoIP protocol over WAN is also less than useful information. Teradici's protocol was not designed for WAN - VMware licensed it and has had to add this kind of functionality themsevles. That's why they're called it "PC over IP" and not "Teradici". You'll note that in the VMworld keynote today they didn't even mention Teradici in the same sentence.


Thanks for the clarification. Also, Teradici has been erased from my vocabulary hence forth!


Thanks Glenda for the response. I have another question or comment...If one of the benefits of Citrix's overall architecture with XenApp and XenDesktop is that you can blend the two environments into a hybrid delivery infrastructure. In effect, distributing your user population to the appropriate environment. With HDX 3D requiring a separate type of backend...how does this environment with 3 separate delivery platforms (XenApp, XenDesktop, HDX 3D) , how is this presented as one unified infrastructure? Or is that not really known at this point?


Hi Phil,

This is really a question only Citrix can answer definitively.  I can say that in my opinion it would make sense for them to port the HDX features over to XenApp, simply because before the XenDesktop storm, most of the previously codenamed “Apollo” (now labeled HDX, you know Citrix and their name change game) was originally focused on XenApp (previously Presentation Server, Meaframe, Winframe, ect.) and the Thin Wire Virtual Channel inside the Citrix ICA protocol stream.

Of course with the onset of VDI and the acquisition of XenServer Hypervisor their focus shifted to take advantage of the emerging market for this technology.  I think the fact that it is currently only being spoken of in conjunction with XenDesktop is because of VMWorld and the visibility.  It just seems to me that it would not be very resource\development intensive for them to port it across both solutions.  Especially if you look at it like this:

XenApp is their Bread & Butter; it has been for a long time.  XenApp is basically financing the development efforts on the VDI side of the house.  A lot of their legacy customers are still deeply committed to their highly expensive and complex XenApp infrastructure and will be expecting the same type of enhancements to their environments.  So since it was originally developed out of that side of the house (XenApp), it seems to me it would be pretty simple to make some small code changes and integrate it into the XenApp line as well.

However, I do not speak for Citrix and this is my own opinion

Hope it provided some insight.




I bet multi user 3D for XA is a nightmare. If I had a 3D use case, in my industry not really, I would not use multi user in the first place. It would probably be on some hight end machine. Curious who cares about 3D on XA. That said I get the desire for continued investment in XA. My view has always been, Citrix needs to create one product and allow people to choose whatever they want. XA, XD and in time XC all together solve all these debates. The next thing is one HDX/ICA stack. I get the whole accelerate XD first, but they need to come back together. Otherwise Citrix weakens their own simplicity argument.



"The PCoIP vs. HDX-3D comparison is apples to oranges. One can be run inside of a VM, the other cannot"

When did VMware start supporting Direct3D and OpenGL in VMs?  Do you have a link somewhere?  Are they supporting DX7/8/9/10/11? Pixel Shader 2.0/3.0?  Open GL?



Let me clarify my above point.

When did VMware start supporting Direct3D / OpenGL within an ESX/vSphere VM?  I know they can do this today in a limited experiemental form within VMware Workstation, Fusion and CVP, but that's all because there's a 3D GPU on the physical local hardware and they're doing generic passthrough.  The same principle doesn't apply to a server hosted VDI session.  Maybe I'm missing something here, but I don't think VMware has a solution for hosted VDI with 3D acceleration of Direct 3D and OpenGL.  But I will take my lumps if someone can point me to a link.  Otherwise, this isn't something VMware can run in a VM and Citrix has to run on a blade.  As far as I can tell, VMware would need to run this on a blade as well (or at least on a Terdici host system which might as well be a blade)