RC Agent Installation prevents DirectX Hardware Acceleration

Document ID : KB000122765
Last Modified Date : 07/12/2018
Show Technical Document Details
After installing ITCM r14 SP2 on Windows 10, you notice that apps utilizing DirectX no longer function correctly.  Running dxdiag on the system, you notice there is a second display adapter with an "unknown" driver that is preventing acceleration from being enabled:

User-added image
Client Automation (ITCM) -- r14 SP2
Special Note: The ITCM development team is currently working to replace the RC mirror driver technology with the Microsoft Desktop Duplication API.  It is planned to be included with ITCM r14 SP3, and currently there is no scheduled release date or known ETA.  Thus we provide this procedure, which will resolve the problem given the current mirror driver technology.

1- Install the updated RC driver attached to the following KB article:

2- Set the following configuration parameter in the ITCM comstore by running this command:
ccnfcmda -cmd SetParameterValue -ps /itrm/rc/Host/General -pn HardwareAcceleration -v 1

3- Reboot, per the instructions from KB000072931, since installing the driver update.

4- After reboot, connect and disconnect an RC session to the endpoint.  Run dxdiag to confirm the erroneous display adapter is now gone.

Upon RC session disconnect, the rchost will read the HardwareAcceleration=1 policy, and this causes the agent to disconnect its thread from the desktop, which results in the second display adapter getting removed from dxdiag.
Additional Information:
To reproduce this problem without uninstalling and reinstalling the ITCM agent fresh:
1- Set the HardwareAcceleration parameter to 0:
ccnfcmda -cmd SetParameterValue -ps /itrm/rc/Host/General -pn HardwareAcceleration -v 0

2- Recycle the rchost plugin with "caf stop rchost", followed by a pause to allow the plugin to stop, and then "caf start rchost".

3- Run dxdiag to confirm the erroneous display adapter has returned.

Note that setting HardwareAcceleration=1 and recycling the rchost plugin will not remove the erroneous adapter.  Only after taking an RC session, and disconnecting, will the erroneous adapter be removed from interfering with DirectX acceleration.