On September 25th, 2013 I had the pleasure of presenting to the Dallas Fort Worth VMUG Regional Conference. I had the opportunity to present on VMware Horizon View Soft 3D Graphics. Here is how you to configure soft 3D graphics in Horizon View 5.2.
A Long time ago in a datacenter far, far away…
Episode IV
A NEW HOPE
It is a period of civil war in companies all over the world. Rebel server admins, striking from a hidden datacenter, have won their first victory against the evil Help Desk.
During the battle, Rebel spies managed to steal secret plans to the Help Desk’s ultimate weapon, the DEATH TOP, an armored work station that consumes enough power to destroy the entire planet.
Pursued by the Help Desk’s sinister agents, Princess Leia races to her cubical and her BYOD tablet, custodian of the stolen plans that can save her staff and restore freedom to the enterprise…
What’s covered in this post:
- Vocabulary
- Software Based 3D Graphics
- What is Soft 3D
- Why Soft 3D
- Enable and Configure
- Limitations of Soft 3D
- Alternatives to Soft 3D
- Sizing Considerations for Soft 3D
Vocabulary
Lets start by looking at some of the vocabulary that shows up when we are discussing 3D graphics in the virtual world.
First we have the terms: SVGA, Soft 3D, VMware SVGA 3D
These three terms can all be used interchangeably with each other. They are basically the term for software based 3D Graphics. In other words a piece of virtual hardware. This is even reduced further in that its really just a check mark and a RAM setting on a VM’s Virtual Hardware Video Card settings.
The term SVGA stands for Super Video Graphics Array Software 3D Renderer and describes what the check mark in the Virtual Hardware settings do. It uses the ESXi hosts resources to render the images. Or put another way it uses the RAM and CPU from the ESXi host to create the image.
The driver used in the VM is the VMware WDDM (Windows Display Driver Model) 1.1-compliant driver. This allows the VM to actually display the graphics correctly. As you can imagine this means that you need to install VMware Tools on your VM’s to take advantage of most 3D graphics in a virtual environment.
vSGA
This stands for Virtual Shared Graphics Acceleration. It is often confused with SVGA (the v & the S are switched, and the v is lower case). They are not the same protocol and function in two different ways.
vSGA uses a Shared GPU in the ESXi host. That means that instead of CPU and RAM resources being used from the ESXi host for rendering it will use the GPU resources to render the graphics. This means that the VM’s can operate in a more efficient manner.
Because this is shared hardware there are limits to how many VM’s can use the GPU at any given time. This is scaled based on the amount of RAM in the GPU and how much of it is given to each VM.
vDGA
Also known as Virtual Dedicated Graphics Acceleration is where dedicated hardware GPU’s are passed directly through to the VM. This allows the VM full access to the GPU as well as dedicated GPU resources. This is typically used for high end desktops that require a lot of discrete GPU power.
It’s also worth noting that when using vDGA that you can use the hardware vendors driver in the VM. This allows for optimal use of the hardware.
With that said lets hop into Soft 3D.
As I said before in the vocabulary lesson, Soft 3D is entirely software based rendering of 3D graphics and uses the local resources on the ESXi host to render those graphics. We then leverage the WDDM graphics driver in VMware Tools as the driver in the desktop.
Why do we want to start using Soft 3D you might ask. There are lots of reasons to start moving towards a GPU solution. In my opinion 3D graphics capabilities have been a limiting factor in why desktop virtualization has not caught on.
By enabling 3D graphics, Soft 3D or otherwise, we are allowing users to get more work done with applications and functions they have become used to using. This includes windows features like Aero. It also includes tools such as HTML5 and Google earth that consumers of IT services are demanding more and more of.
By enabling these services we can span the digital divide and start bringing more control and accessibility to the desktop.
At this point we can walk through setting it up. We can set this up on individual desktops or at the Horizon View level. Lets start with the individual desktop.
- Login to your vCenter select the desktop you want to enable 3D graphics on.
- You will need to shut it down if it is currently powered on.
- Edit settings for the VM.
- Select the video card from the Virtual Hardware list.
- Check the Enable 3D Support from the settings
- Adjust the Video RAM accordingly. 128MB is the maximum amount for VMware View. The settings will let you adjust all the way up to 512MB on the individual machine. Going beyond 128MB though is not supported in Horizon View.
- Set the number of displays to use. The maximum is 2 for Horizon View.
- Click OK.
- Power back up the VM.
The screenshot below shows these settings for an individual VM.
See that wasn’t so hard. You could even set that on a template and deploy it for a large group of stand alone systems.
[notice]This doesn’t transfer into Horizon View though. This only applies to single desktops. If you do this to a golden image Horizon View desktops will not have 3D capabilities. You have to turn it on in Horizon View Administrator for the Pool.[/notice]
That being the case lets go through the steps to setup Soft 3D inside of Horizon View.
- Login to the Horizon View Administration Portal.
- Select the pool you want to enable 3D graphics on.
- Edit settings for the pool
- select the pool settings tab.
- Set the default display protocol to PCoIP
- Make sure not to allow user selection of the protocol. (This is important because Soft 3D is only supported on the PCoIP protocol)
- Set the 3D rendering accordingly. You can choose Automatic or Software for Soft 3D deployments.
- Configure the Video RAM. This is per desktop. Multiply the number of desktops in the pool by this number to see how much more RAM will be consumed. For Soft 3D the maximum amount of RAM is 128MB.
- Set the maximum displays for the pool. This would be 2 as VMware currently only supports 2 displays when using 3D graphics in any mode.
- Click ok
- Reboot the pool
That’s all there is too it. Your desktops can now run Soft 3D graphics and applications like Aero, HTML 5 and Google Earth.
Why not tweak this a bit so that it’s going to work well? Why not…
- I know you get tired of hearing it. Update VMware tools. You have to have VMware Tools to take advantage of Soft 3D graphics. No tools no performance gain.
- Check the CPU idle time on your thin clients. Depending on what your users are doing the CPU on the thin client may not be able to keep up and may cause slower performance.
- Remember Soft 3D is only supported on Windows 7 or newer. This would be a great time to update those XP desktops… 🙂
- If you set the 3D setting on both your Gold image and in Horizon View make sure that the Video RAM (VRAM) matches. If it does not match you will see messages in the View Logs that make no sense and don’t point to the VRAM not matching.
- And lastly if at all possible use the VMXNET 3 network cards to get the best network performance for the VM.
Sticking with these tips will help you get great performance from your Horizon View Desktops.
It’s great that we have Soft 3D setup but what apps can we really run on this desktop? Below is an excerpt a table that VMware has released for different applications and if they are suitable for Soft 3D or not.
Application |
Soft 3D Appropriate |
Windows Aero |
Yes |
Microsoft Office |
Yes |
Microsoft Visio |
Yes |
Google Earth |
Yes |
HTML 5/Web 3D |
Yes |
Epic |
Yes |
Adobe Photoshop |
No |
SolidWorks View |
No |
Team Center Vis |
No |
As you can see there are quite a few different applications that can run on Soft 3D.
So how many desktops can we have running Soft 3D on a single host?
I’m glad you asked. It’s dependent on memory. Not only do we take away the normal memory for each desktop we also have to take away the VRAM for each desktop. That means deducting up to 128MB of RAM for each VM on a host. This could mean a loss of 4GB of RAM for every 32 desktops on a host.
Whats the best way to figure out how much VRAM we need for a desktop? That’s actually built in to the VM settings. When you go into the properties of your VM and select the display adapter you will see a Video Memory Calculator button. If you click on the button you will see the estimates for your desktops.
In addition to RAM you will probably also want to consider software requirements for the applications you want to run. Many of them perform best with 2 vCPU’s. That means you may need more processing for your ESXi hosts too.
If the desktops that use Soft 3D will be off the local network segment (Security Servers, Firewalls, WAN) consider using PCoIP cards in the ESXi hosts to help offload the transmission of the display.
Its also wise to consider reducing the maximum application frame rate setting inside of the guest VM. There is no need to render most images 100 times a second. By reducing this we can reduce the load on the graphics processing components.
[important]
The App frame rate is set with the following registry key.
HKLM\SOFTWARE\VMware, Inc.\VMware SVGA DevTap\MaxAppFrameRate
[/important]
The default for the application frame rate is 30 FPS.
Soft 3D is great! Are there other options besides this?
As we talked about before there is vSGA and vDGA that will leverage physical GPU’s in ESXi hosts. The maximum number of GPU’s you can put in a host is 8.
We can actually leverage all the work we did up to this point when you decide to move to vSGA. How? VMware has this awesome tool, you may have heard of it. vMotion. You can just vMotion your Soft 3D desktops on to ESXi hosts with a GPU and keep right on trucking. The only thing you want to make sure of is that in the Horizon View Pool is set to use an Automatic pool setting.
This is great… Where can I find more information?
Checkout these links for more information.
Below you will find differant versions of the slides used at the DFW VMUG.