H264 hardware decode verification

Hi all - could be the wrong spot for this but thought i would raise it anyway…

I am trying to validate the use of H264 client decode with the following setup:

  • Windows 10 virtual machine running on ESXi 6.5. VM has a GRID P6 GPU assigned using a P6-4Q profile

  • Thin clients are a mix of Intel NUC but primarily Pentium (Gemini Lake) CPU (using HD605 GPU) and an i3 CPU (Kaby Lake) with an integrated HD620 GPU

  • NUCs run Ubuntu 18.04 as a locally installed OS (4.15.0-20-generic)

  • Horizon client installed is 4.7.0 build 7395152

  • Horizon Agent and Direct Connection plug-in are at version 7.4

I am aiming to confirm whether my client is offloading H264 decode to the NUC GPU. I am assured by our Intel rep that the GPU mentioned above are capable of this function however i see information the Horizon client which tells me that this may not be happening, as per here in the vmware-mks-xxxx.log file:

  • RemoteDisplay.allowClientH264 = ‘TRUE’

This refers to the option for H264 decode in the Horizon Client GUI. Confirmed as when removing the tick in the GUI, the value becomes ‘RemoteDisplay.allowClientH264 = ‘FALSE’ with no further H264 entriesRemoteDisplay.allowClientH264 = ‘FALSE

  • VNC Client: H264 hardware decoding unavailable

Anyone else have trouble validating or verifying hardware client decode using Horizon and GRID?


Have you tried installing and running RDAnalyzer? https://www.rdanalyzer.com/

Thank you for your reply - i have not used this tool before. I shall investigate.

Just wanted to report back on this very useful tool - it can be used without subscription/donation but offers improved comparison features and information if you do pay. It allowed me to verify the encoding being done on the virtual machine although not essentially the validation of the endpoint, so basically my vGPU encode is H264 NVENC as confirmed by the tool, but confirming my endpoint is decoding using onboard GPU is going to require something else.

Thank you again Tobias

My pleasure, @Nealus! We have found RDAnalyzer extremely useful for all sorts of purposes. I can also highly recommend GPUprofiler: https://github.com/JeremyMain/GPUProfiler/releases

This thread is about endpoint decoding. There is only DXVA checker on Windows and you can for example check if the hardware decoding is working in the registry when using Citrix Receiver. I’m not aware of a tool that does the same for Linux Receiver.
Not sure if there is the same possibility with Horizon to check if HW decoding is working. In general you can check the endpoint processes from the Receiver/Agent as you should see high or low CPU load…


Horizon has some verbose log entries i can search but I was seeking something definitive, like the registry entries for Citrix. The closest I have got is via the H264 check box in the Horizon client. Turn it on, the thin client CPU usage for the vmware-remotemk process drops by approx 50%. Pretty impressive especially when running dual 4K panels and full screen video :-)