前言
众所周知,在后疫情时代,经济和用户形态的变化正在倒逼着企业数字化转型加速,同时也让企业的办公协作模式发生了“翻天覆地”的变化。
在“新常态”下,越来越多的企业正在采用远程办公协作模式,由于思杰 Citrix 在桌面云 DaaS 领域的领先,作为 30 多年来虚拟应用与桌面领域的市场领导者,近期突发疫情所带来的影响,给企业的办公和员工的工作模式带来了越来越多的挑战。在此背景下,随着企业上云的加速,标准桌面虚拟化已经无法满足于企业的日常需求,企业对CItrix vGPU桌面的需求越来越高。本文章介绍在企业设计生产中,vGPU云桌面ifont字体助手显示黑框问题。
环境介绍
下面是生产环境信息介绍:
- 系统底层
- VMware ESXI, 7.0 U2
- 控制平面
- Citrix Virtual Apps and Desktops 1912 CU3
- Virtual Delivery Agent
- 版本 1912 CU3
- StoreFront
- 版本 1912 CU3
- Citrix Workspace 应用程序
- Windows:版本 1912 或更高版本
- Mac:版本 1912 或更高版本
- iOS:Apple App Store 中提供的最新版本
- Android:Google Play 中提供的最新版本
- Citrix Gateway (ADC)
- 13.0.83.29
- 显卡
- NVIDIA RTX 6000
问题现象
在vGPU桌面中使用ifont字体助手,内容短暂显示后消失并转为黑色边框,排查过程如下:
- 输入以下命令查看输出结果是disabled
- "C:\Program Files\Citrix\ICAService\NvFBCEnable.exe" -checkstatus
- 输入以下命令,测试ifont字体助手显示情况,未解决
- "C:\Program Files\Citrix\ICAService\NvFBCEnable.exe" -enable
- 收集CDF日志分析
- 当字体助手启动时我们使用的是NVFBC_D3D9模式来抓取图形,字体助手可以正常显示。但是几秒中之后NVIDIA 驱动 API NvFBCToDx9VidGrabFrame返回了NVFBC_ERROR_PROTECTED_CONTENT错误,导致我们使用的图形模式回退到了DDAPI_D3D11,然后字体助手不能正常显示。NVIDIA返回上面错误的原因是NVIDIA显卡检测到字体助手显示的区域有类似受保护的内容,参考:https://developer.download.nvidia.com/designworks/capture-sdk/docs/7.1/NVIDIA%20Capture%20SDK%20Programming%20Guide.pdf
解决方案
在VDA的 HKLM\Software\Citrix\Graphics 路径下面新创建一个Key: AdapterMerits,然后添加两个键值 DWORD CitrixDoD = 3 DWORD CitrixDoDMax=3,重启VDA之后解决。
[HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\Graphics\AdapterMerits]
"CitrixDoD"=dword:00000003
"CitrixDoDMax"=dword:00000003
效果图如下