配置图形
本文指导如何完成 Linux VDA 显卡配置和微调。
配置参数
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Citrix\Thinwire 下面有几个与图形相关的配置参数可以通过 ctxreg 实用程序进行调节。
如何启用 Thinwire Plus
对于标准 VDA 和 3D Pro,默认启用 Thinwire Plus。
如何启用 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/zh-cn/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(实验低带宽模式)。
-
质量
视觉质量
Default: 0x1(medium), type: DWORD, valid values: 0x0(low), 0x1(medium), 0x2(high), 0x3(build to lossless), 0x4 always lossless. <!--NeedCopy-->
为了节省带宽,将“质量”设置为 0x0(low)。
-
更多参数
-
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 的日志文件命名类似于 Xorg.{DISPLAY}.log,位于 /var/log/ 文件夹中。
已知问题及限制
对于 vGPU,XenServer 本地控制台显示 ICA 桌面会话屏幕
解决方法: 通过运行以下命令禁用 VM 的本地 VGA 控制台:
xe vm-param-set uuid=<vm-uuid> platform:vgpu_extra_args="disable_vnc=1"
<!--NeedCopy-->
8Q 以外的 vGPU 配置文件不支持 NVENC API
8Q 以外的 NVIDIA Tesla M60 卡 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)
。