With increasing resolution of displays, it is important to update and optimize rendering technology. To this end, we have introduced few changes which will improve the performance of and experience with Receiver for Mac.

Improvements in Video Decoding

In Receiver for Mac 12.5, the video decoder performance has been improved. This was a need for today’s ever growing display resolutions and multi monitor setups. When the DDC policy “Use video codec for compression” is set to “For the entire screen”, the session switch to H264 video codec for remoting graphics in ICA session. Prior to Receiver for Mac 12.5 FFMPEG was used to decode H264 graphics stream.

Video Toolbox is a macOS native framework for compression and decompression that support most of the video and audio codecs. It also supports hardware Accelerated decoding for H264. Receiver for Mac 12.5 uses Video Toolbox hardware accelerated decoder by default. If hardware acceleration is un available it will fall back to Video Toolbox software decoder.

As a fail proof mechanism FFMPEG decoder takes the control in case Video toolbox fails completely. while we are supporting FFMPEG decoding now, we will be removing it in a future release once we are confident that Video Toolbox is sufficient.

Screen Shot 2017-02-23 at 9.54.22 AM

To disable Video Toolbox Hardware decoder run the following command in macOS Terminal. However, receiver will try to use Video Toolbox Software decoder. If it fails, receiver will fall back to FFMPEG.

defaults write com.citrix.receiver.nomas PreferH264HardwareDecoder –bool NO

To force FFMPEG decoder run the following command in macOS Terminal. In this case receiver will not even attempt to use Video Toolbox decoder.

defaults write com.citrix.receiver.nomas PreferFFMPEGDecoder –bool YES

Improved Rendering performance

Prior to Receiver for Mac 12.5, sessions were rendered using Core Graphics API. In order to address the performance problem of low rendering FPS and frame drops, Receiver for Mac 12.5 uses OpenGL rendering for Desktop sessions. This provides high FPS and less overhead on CPU, which improves the performance significantly. This isn’t just limited to HDX 3D Pro environments; performance improvement can be seen across Thinwire and Thinwire+ on Mac clients.

Performance improvements are specific to Desktop sessions. Published app sessions cannot utilize this feature to improve its performance.

For HDX 3D Pro environments as high performance graphics clients, the Video Toolbox Hardware accelerated decoder coupled with OpenGL rendering proves to be a great combination.

We did a comparison of rendering Frames Per Second (FPS) as a performance measure with Receiver for Mac 12.4. We used an HDX 3D Pro Windows 10 64-bit setup VDA over a LAN network. FPS was recorded on Receiver for Mac renderer while a Full HD video captured at 60 FPS was played full screen on the Win 10 default video player. It is found that Video Toolbox Hardware Decoder and OpenGL combination provides the best possible FPS.

For rendering tests, we played a 4K, 60 fps video downloaded from You Tube on a MacBook Pro. The policy “Use video codec for compression” set to “For the entire screen” was applied in DDC to enable H264 mode in Thinwire. Windows 10 Session was rendered at full screen. The video was played on Windows Media Player full screen.

The table below provides insight to the performance improvements compared to Receiver for Mac 12.4.

Renderer Video Toolbox Hardware Decoder and OpenGL rendering Video Toolbox Software Decoder and OpenGL rendering FFMPEG Decoder and OpenGL rendering
FPS Improvements 185% 170% 150%

Blog Banners -- FOOTER-9