A few days ago, I wrote a post about Citrix’s fix for fullscreen applications in HDX 3D Pro connections. In that post I mentioned the fact that by default, an application launched in a resolution larger than the session’s resolution, will be trimmed off. Rachel Berry (Product Manager HDX Graphics for XenDesktop/XenApp, twitter @rhbBSE) provided me with some feedback on my article. Especially this part:
I understand why the application behaves in this way. The best way to fix such an challenge is to “scale” the application (I don’t even know if this would be possible programmatically) so that it scales while it maintains the aspect ratio. This way you would always see the entire application, no matter what the resolution is.
One feature of Citrix Receiver, which I knew exists, but never used, is the ability to scale the session completely. I investigated this feature as solution for the trimming of high-resolution applications.
Scale to fit
So, the issue with high-resolution applications is that the application is trimmed off the session window like in the following picture.
When launching a desktop using the Desktop Viewer, the default display configuration is set to “Best resolution”, which changes your session’s resolution to match the Receiver window dimensions. To change this, press the black dropdown bar at the top of the session and press the “Preferences” button.
Next, open the “Display” tab and choose “Scale to fit” (middle option).
When I launch my session in 1280×720 resolution and start Unigine Valley to use 1920×1080 in full screen mode, the session itself is scaled perfectly as shown in the following screenshot.
The application scales perfectly to the session window, even if the application is launched in a different aspect ratio than the session’s aspect ratio.
I only wondered what would happen if you resize the window itself. What I did is the following:
- Start your HDX 3D Pro session in window mode
- Start a full screen application in a different resolution than your session resolution
- Resize the window (eg. switch to full screen mode)
- Close the full screen application
The result is that it works most of the times. With most of the times, I mean in 90% of the cases. I did see the session freezing sometimes after switching resolutions a few times. Now, I know that most end-users will not be fiddling around with the window size as I am, but I just wanted to put it to a rigid test. 🙂
What I did see is that if you enable “Scale to fit” mode when your HDX session is in Windowed mode, maximize the HDX session (switch to full screen mode), the session itself changes resolution. When you switch back from full screen mode to windowed mode, it scales the session.
Desktop Viewer only
The “Scale to fit” feature is only available for the “Desktop Viewer”, which is used by default (for desktop connections) if you didn’t change anything to your StoreFront Configuration. If you eg. disabled the use of the Desktop Viewer, your session will scale according to the resolution of the application.
If you launch an HDX 3D Pro session in full screen mode, but if you’re not using the Desktop Viewer, the Receiver Window still will resize if you launch an application in full screen mode in a different resolution.
I did encounter one configuration where I could not launch my application in full screen mode. That’s when using multiple monitors (both with or without Desktop Viewer). I started a session over both of my monitors (in full screen mode) and launched an application in full screen mode. But this gave me the “Full Screen Applications are not supported” error message:
The “Scale to fit” preference for the Citrix Receiver works like a charm a charm together with the “HKLM_EnableFSA” registry fix for HDX 3D Pro. I recommend that if you set the registry key, you instruct your users to use “Scale to fit” mode. It will help your end users with changing resolutions for full screen applications.
Note that “scale to fit” is a Desktop Viewer feature. If you eg. disabled the use of the Desktop Viewer in your StoreFront configuration, the session window will resize according to the session resolution.
I hope this post was usefull. If you have any questions or remarks, feel free to leave a comment or drop me an email.