Accelerate DirectX Google Earth and Google Earth Optimization Pack! -
Do your users need to run Google Earth from a virtual office? If so, then you must download and test the new Google Earth Optimization Pack for XenDesktop 5.5. Google Earth Optimization Pack is available for all users 5.5 Enterprise and Platinum XenDesktop. The best part of this optimization pack is that it has no server and no requirement GPU client side! It runs on XenServer, Hyper-V and vSphere and Citrix will work with any receiver (ICA Client) can connect to XenDesktop 5.5 can be downloaded from the link below
http :. // Support. citrix.com/article/CTX131167.
So why do we need an optimization pack for Google Earth?
First, if you use a HDX 3D Pro enabled virtual machine or RemoteFX, then you do not need the optimization pack for Google Earth that you already have a dedicated GPU for rendering. However, HDX 3D Pro is currently one GPU in a virtual desktop solution and RemoteFX requires Hyper-V and Windows 7 endpoints. Using HDX 3D Pro, if you are a school and plan to have hundreds of students a virtual desktop access, you would need a dedicated GPU for each office. Want to run 50 virtual desktops on a single server? Then you need to find a way to connect to this server 50 GPU! HDX 3D Pro is a great solution for high-end 3D users, but it can be an expensive proposition if all you want to do is deliver Google Earth to large numbers of users. For a little more information about HDX 3D Pro, see the recent blog Derek Thorslund.
/ blogs / 2011/09/06 / hdx-3d-pro-takes-another-step forward /
Google Earth is a graphic intense application to be able to perform 3D rendering. There are two different rendering modes available when running Google Earth; Open GL and DirectX. The preferred method and the most effective to run Google Earth is DirectX. In DirectX mode, Google Earth will pass all rendering commands to DirectX subsystem which will automatically make the most effective use of the graphics card to perform rendering operations. If you run Google Earth in OpenGL mode, you end often emulate all the OpenGL commands into the CPU software; unless of course you actually have a high-end GPU that supports OpenGL truly and fully.
Out of the HDX 3D Pro script, when we run Google Earth within a virtual desktop hosted on a hypervisor, no GPU usage, so all the records ends up taking Place the CPU hypervisor. As Windows has a built-in ability for OpenGL rendering using the CPU (opengl32.dll) This is the method in which Google Earth must be run inside a virtual machine. Needless to say, trying to use generic software based on Microsoft's implementation of OpenGL on the CPU of a Windows virtual machine does not perform all that well. This does not mean that it will not work; it only means that its performance is limited. We have many clients that have run successfully with Google Earth in OpenGL mode. In fact, I wrote a recent blog on how HDX Progressive Display can improve Google Earth and other graphics-intensive applications.
/ blogs / 2011/05/30 / hdx-progressive-display-dont-forget-to turn-it-on /
So why can not we open Google Earth in DirectX on a virtual machine? The short answer is that most video drivers emulated hypervisor does not support DirectDraw or Direct3D API. Although I must admit that VMware with the recent release of vSphere 5 has improved its graphics driver invited to support DirectX 9. However, at this time we can not negotiate ICA connections for guest operating systems that use new driver. This means that we are limited to the performance of Google Earth in OpenGL mode.
SwiftShader to the rescue!
As OpenGL commands can be emulated in software on a CPU, it is also possible to emulate a DirectX software on a processor. In fact, there is a company called TransGaming that has produced some / parallel processing emulators extremely efficient and multi-threaded for DirectX. Citrix has partnered with TransGaming to make their SwiftShader DirectX9 advanced engine available for use with Google Earth. By simply placing the D3D9.dll GoogleEarth.exe in the directory where is located, it will be open for Google Earth in DirectX mode of any virtual desktop. The rendering of 3D in Google Earth will always occur in the software running inside the guest operating system and thus on the CPU of the hypervisor. However, the rendering software is highly optimized and provides significantly better performance compared to software OpenGL renderer.
Configuration SwiftShader
Installation and Activation SwiftShader could not be easier as all you need to do is copy the file D3D9.dll in the same directory Google Earth Google Earth and set to open in DirectX. You can set Google Earth to use DirectX mode by launching the "Start Google Earth in DirectX mode" shortcut from the Google Earth folder in the Start menu or by selecting Tools / Options in the menu after Google Earth is open and allowing DirectX as shown below.
There are several configurable options for how the DLL manages rendering. The configuration of the DLL is in a file called SwiftShader.ini, which will be located in the same directory as the DLL. You must not create or manually install the ini file. When you download the optimization pack, you will notice that there is no INI file included in the download. Indeed, once the SwiftShader engine is engaged; it automatically creates the INI file using the default values if it does not already exist. One thing to keep in mind is that if the user running Google Earth is not the change order in the Google Earth directory and is not already on file, the file will not be created and the DLL will just run with the default preset. Of course, if you deliver Google Earth as a Streamed application, the INI file will be created in the folder of the user RadeCache.
There are two ways to configure the INI file with the first being the right method to the former edit it with Notepad. The second way to configure the INI file is to use a built in web utility that works DLL when it was committed. This means that after Google Earth was opened in DirectX mode, you can open a browser and connect to http://127.0.0.1:8080/swiftconfig. A screenshot is below.
There are two key values of the notes as highlighted in the screenshot below.
If you do not want this Web GUI applet configuration to run when SwiftShader is in use, you can check the "Disable server SwiftConfig". If your users have multiple monitors and you want Google Earth to be able to run on other screens while the main monitor, then you must change the "Frame-buffer API" DirectDraw GDI. If you just want to manually pre-configure these options by editing the INI file then you locate and change two lines in the test section as follows:
DisableServer = 1
FrameBufferAPI = 1
as the last consideration you need to give your virtual office 2 vCPUs to effectively use Google Earth Optimization pack. It technically work in a virtual machine with 1 vCPU but it will malfunction.
Bandwidth considerations
Google Earth is an intense graphics application and as such it requires a little more bandwidth than traditional 20-40 Kbps you usually need for office productivity applications. In addition, because the SwiftShader DLL is able to push higher frame rate than the OpenGL emulator in Direct mode will generate a larger amount of pixels that must be sent to ICA. For this reason, users will get the best performance at a high speed LAN or WAN. However, it can be successfully deployed on smaller WAN connections such as DSL when appropriate progressive display or new Adaptive Display policies are configured. I'll post a new blog on Adaptive Display and how it can take advantage of Google Earth after that I present on the topic at Synergy in Barcelona next week, so stay tuned!
Finally, I recorded 8 minutes a side-by-side demo and posted on YouTube shows two virtual machines running Google Earth; one with the optimization pack and one without. Keep in mind that the video conversion process does not fully shows the true reward was displayed on my laptop when I registered, but it still shows the contrast between the two quite well. It is best viewed full screen and 720p.
http://www.youtube.com/watch?v=pcB_S828bQk
Not only does Google Earth Google Earth Optimization Pack do look better, it also makes it much more responsive. When you spin the globe manually or scrolling around a zoom on the map, the performance is much smoother.
If you are a customer XenDesktop 5.5 and need to use Google Earth then I highly recommend that you download using the Google Earth Optimization pack! Let me know how it works for you!
Cheers,
-Dan Allen