配置图形
本文提供 Linux VDA 图形配置和微调指南。
配置参数
在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Citrix\Thinwire 下有多个与图形相关的配置参数,您可以使用 ctxreg 实用程序进行调整。
如何启用 Thinwire Plus
Thinwire Plus 默认启用,适用于标准 VDA 和 3D Pro。
如何启用 H.264
除了操作系统要求外,H.264 对 Citrix Workspace 应用程序(以前称为 Citrix Receiver)版本也有最低要求。如果客户端不满足要求,则会回退到 Thinwire Plus。
| 操作系统 | H.264 的最低要求 |
|---|---|
| Windows | 3.4 或更高版本 |
| Mac OS X | 11.8 或更高版本 |
| Linux | 13.0 或更高版本 |
| Android | 3.5 |
| iOS | 5.9 |
| Chrome OS | 1.4 |
Citrix Workspace 应用程序的最新功能矩阵可在 https://docs.citrix.com/en-us/citrix-workspace-app/citrix-workspace-app-feature-matrix.html 获取。
运行以下命令以在 VDA 上通告 H.264 编码:
- sudo ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "AdvertiseH264" -d "0x00000001" --force
<!--NeedCopy-->
如何在 HDX™ 3D Pro 中启用硬件编码
对于 HDX 3D Pro,AdvertiseH264 设置仅启用软件 H.264 编码。
- 运行以下命令以启用硬件编码:
sudo ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "HardwareEncoding" -d "0x00000001" --force
<!--NeedCopy-->
-
注意:
-
如果您收到
ctxreg command can't be found错误,请使用带有完整路径的ctxreg命令。例如,使用sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "AdvertiseH264" -d "0x00000001" –force而不是sudo ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "AdvertiseH264" -d "0x00000001" –force。
-
如何为低带宽微调 Thinwire Plus
- MaxColorDepth
```
Default 0x20, type DWORD
<!--NeedCopy--> ```
此选项指定通过 Thinwire 协议传输到客户端的图形的颜色深度。
为节省带宽,请将其设置为 0x10(表示简单图形的首选颜色深度)或 0x8(实验性低带宽模式)。
- Quality
视觉质量
```
Default: 0x1(medium), type: DWORD, valid values: 0x0(low), 0x1(medium), 0x2(high), 0x3(build to lossless), 0x4 always lossless.
<!--NeedCopy--> ```
为节省带宽,请将 Quality 设置为 0x0(低)。
-
更多参数
-
TargetFPS
目标帧率
Default: 0x1e (30), Type: DWORD <!--NeedCopy--> -
MinFPS
目标最小帧率
Default: 0xa (10), Type: DWORD <!--NeedCopy--> -
MaxScreenNum
客户端可拥有的最大显示器数量
Default: 0x2, Type: DWORD <!--NeedCopy-->对于标准 VDA,最大值可设置为 10。对于 3D Pro,允许的最大值为 4。
-
故障排除
检查正在使用的编码
运行以下命令以检查是否正在使用 H.264 编码(1 表示 H.264;0 表示 TW+):
sudo ctxreg dump | grep H264
<!--NeedCopy-->
结果类似于:
create -k "HKLM\Software\Citrix\Ica\Session\1\Graphics" -t "REG_DWORD" -v "H264" -d "0x00000001" --force
create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "AdvertiseH264" -d "0x00000001" --force
检查 3D Pro 是否正在使用硬件编码
运行以下命令(0 表示未使用;1 表示正在使用):
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep HardwareEncoding
<!--NeedCopy-->
结果类似于:
create -k "HKLM\Software\Citrix\Ica\Session\1\Graphics" -t "REG_DWORD" -v "HardwareEncoding" -d "0x00000001" --force
另一种方法是使用 nvidia-smi 命令。如果正在使用硬件编码,输出类似于:
Tue Apr 12 10:42:03 2016
+------------------------------------------------------+
| NVIDIA-SMI 361.28 Driver Version: 361.28 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GRID K1 Off | 0000:00:05.0 Off | N/A |
| N/A 42C P0 14W / 31W | 207MiB / 4095MiB | 8% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 2164 C+G /usr/local/bin/ctxgfx 106MiB |
| 0 2187 G Xorg 85MiB |
+-----------------------------------------------------------------------------+
<!--NeedCopy-->
验证 NVIDIA GRID 图形驱动程序是否已正确安装
要验证 NVIDIA GRID 图形驱动程序是否已正确安装,请运行 nvidia-smi。结果类似于:
+------------------------------------------------------+
| NVIDIA-SMI 352.70 Driver Version: 352.70 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla M60 Off | 0000:00:05.0 Off | Off |
| N/A 20C P0 37W / 150W | 19MiB / 8191MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
<!--NeedCopy-->
为显卡设置正确的配置:
etc/X11/ctx-nvidia.sh
HDX 3D Pro 多显示器重绘问题
如果您在主显示器以外的屏幕上看到重绘问题,请检查 NVIDIA GRID 许可证是否可用。
检查 Xorg 错误日志
Xorg 的日志文件名为 /var/log/ 文件夹中的 Xorg.{DISPLAY}.log。
已知问题和限制
对于 vGPU,XenServer® 本地控制台显示 ICA 桌面会话屏幕
解决方法:通过运行以下命令禁用 VM 的本地 VGA 控制台:
xe vm-param-set uuid=<vm-uuid> platform:vgpu_extra_args="disable_vnc=1"
<!--NeedCopy-->
NVENC API 在 8Q 以外的 vGPU 配置文件中不受支持
NVIDIA Tesla M60 显卡除 8Q 以外的 vGPU 配置文件不支持 cuda,因此 NVENC API 和 Citrix® 3D Pro 硬件编码不可用。
NVIDIA K2 显卡在直通模式下不支持 YUV444 硬件编码
这是 NVIDIA K2 显卡的限制。
Gnome 3 桌面登录时弹出窗口缓慢
这是 Gnome 3 桌面会话启动的限制。
调整 Citrix Receiver 窗口大小时,某些 OpenGL/WebGL 应用程序渲染不佳
调整 Citrix Receiver 窗口大小会更改屏幕分辨率。NVIDIA 专有驱动程序会更改一些内部状态,可能需要应用程序做出相应响应。例如,WebGL 库元素 lightgl.js 可能会报错,提示“Rendering to this texture is not supported (incomplete frame buffer)”。