图形配置与精细化调整
本文介绍了 Linux VDA 图形配置和微调。
配置设置
优化 3D 图形工作负载
此设置配置了最适合图形密集型工作负载的相应默认值。为工作负载侧重于图形密集型应用程序的用户启用此设置。仅当会话可用 GPU 时才应用此策略。任何明确覆盖此策略设置的默认值的其他设置都将优先。
默认情况下,优化 3D 图形工作负载处于禁用状态。
用于压缩的视频编解码器
Thinwire 是 Linux VDA 中使用的显示远程处理技术。该技术允许将一台计算机上生成的图形(通常通过网络)传输到另一台计算机进行显示。
使用视频编解码器进行压缩图形策略设置默认图形模式,并为不同的用例提供以下选项:
- 首选时使用。此设置为默认值。无需额外配置。它确保为所有 Citrix® 连接选择 Thinwire,并针对可伸缩性、带宽和典型桌面工作负载的卓越图像质量进行优化。
- 针对整个屏幕。通过全屏 H.264 或 H.265 交付 Thinwire,以优化用户体验和带宽,尤其是在大量使用 3D 图形的情况下。当选择针对整个屏幕或选择首选时使用并启用优化 3D 图形工作负载时,支持会话水印。
-
针对活动变化区域。Thinwire 中的自适应显示技术可识别移动图像(视频、运动中的 3D)。它仅在图像移动的屏幕部分使用 AV1、H.265 或 H.264。选择性地使用 AV1、H.265 或 H.264 视频编解码器使 HDX Thinwire 能够检测和编码屏幕中频繁更新的部分。屏幕的其余部分(包括文本和摄影图像)继续使用静止图像压缩(JPEG、RLE)和位图缓存。用户可以获得更低的带宽消耗和更好的视频内容质量,同时在其他地方获得无损文本或高质量图像。当视觉质量策略设置为始终无损或构建为无损时,不支持选择性使用 AV1 和 H.265。

其他一些策略设置(包括以下视觉显示策略设置)可用于微调显示远程处理的性能:
AV1/H.265/H.264 硬件编码
对视频编解码器使用硬件编码策略允许在可用时使用 GPU 硬件加速,以使用视频编解码器压缩屏幕元素。GPU 硬件加速优化了硬件资源利用率,并显著提高了每秒帧数 (FPS) 的性能。
GPU 硬件加速涵盖了由 使用视频编解码器进行压缩 策略设置的所有图形模式:
- 首选时使用
- 用于整个屏幕
- 用于活动更改区域
要启用硬件视频压缩,请完成以下步骤:
- 将对视频编解码器使用硬件编码策略设置为已启用。
- 将使用视频编解码器进行压缩设置为首选时使用、用于整个屏幕或用于活动更改区域。确保未将其设置为不使用视频编解码器。
要使其可用,必须在 VDA 和 Citrix Workspace 应用程序上支持并启用 AV1 或 H.265 视频编解码器。在编解码器协商期间,AV1 优先于 H.265 和 H.264。如果不支持 AV1,则协商 H.265。如果 AV1 和 H.265 均不受支持,则会话将回退到使用 H.264 视频编解码器。如果 GPU 硬件不可用,VDA 将回退到使用软件视频编解码器的基于 CPU 的编码。
AV1 硬件编码的要求
VDA
- VDA: 2311 或更高版本
- GPU: NVIDIA Ada Lovelace 或更高版本(有关 NVIDIA GPU 支持的视频编解码器矩阵,请参阅 https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new 处的 NVIDIA 文档。)
- NVIDIA 显卡驱动程序 522.25 或更高版本(视频编解码器 SDK v12.0)
客户端
- Citrix Workspace™ app 2305 for Windows or later
- 支持 AV1 解码的客户端 GPU:
- 英伟达 安培 或更高版本
- Intel 第 11 代 / Arc 或更高版本
- AMD Radeon RX 6000 / Radeon Pro W6000 series (RDNA2) or later
H.265 硬件编码要求
客户端
- 适用于 Windows 的 思杰接收器 4.10 到 4.12
- 适用于 Windows 的 思杰 Workspace 应用程序 1808 及更高版本
要在客户端上启用 H.265 硬件编码,请参阅H.265 视频编码。
H.265/H.264 无损压缩
H.265/H.264 无损压缩可用于 NVIDIA GPU 的 HDX 3D PRO 硬件加速。H.265 无损压缩需要适用于 Windows 的 Citrix Workspace 应用程序 2305 及更高版本。H.264 无损压缩需要以下客户端:
- 适用于 Windows 操作系统的 Citrix Workspace 应用程序 2303 及更高版本
- 适用于 Mac 的 Citrix Workspace 应用程序 2301 及更高版本(带 Apple M1 芯片)
要启用 H.265/H.264 无损压缩,请完成以下步骤:
- 将使用硬件编码进行视频编解码策略设置为已启用。
-
将使用视频编解码器进行压缩策略设置为用于整个屏幕。
- 将视觉质量策略设置为始终有损或构建为无损。
允许使用视觉无损压缩
允许视觉无损压缩策略允许对图形使用视觉无损压缩,而不是真正的无损压缩。视觉无损比真正的无损提高了性能,但存在肉眼无法察觉的轻微损失。此设置会更改视觉质量设置值的使用方式。
允许视觉无损压缩策略默认处于禁用状态。要启用视觉无损压缩,请将允许视觉无损压缩设置为已启用,并将视觉质量策略设置为构建为无损。
如果使用视频编解码器进行压缩策略设置为不使用视频编解码器,则视觉无损压缩适用于静态图像编码。如果使用视频编解码器进行压缩策略设置为不使用视频编解码器以外的图形模式,则视觉无损压缩适用于 H.264 编码。
有关视觉质量和使用视频编解码器进行压缩策略设置的详细信息,请参阅视觉显示策略设置和图形策略设置。
图形质量滑块
我们已在您的虚拟 Linux 会话中运行的图形状态指示器工具中包含了一个图形质量滑块。该滑块有助于在图像质量和交互性之间找到适当的平衡。
要使用该滑块,请完成以下步骤:
-
在 Citrix Studio 中启用图形状态指示器策略。
图形状态指示器策略(/zh-cn/linux-virtual-delivery-agent/2511/media/graphic-status-indicator-policy.png)
-
打开终端并运行
ctxslider命令。滑块用户界面随即出现。注意:
-
如果已将视觉质量策略设置为始终无损或构建到无损,则不会显示滑块用户界面。
-
您可以从终端和系统托盘启动滑块用户界面。
图形质量滑块(/zh-cn/linux-virtual-delivery-agent/2511/media/graphic-quality-slider.png)
以下选项现已可供选择:
- 要更改图像质量,请移动滑块。滑块支持 0–9 的范围。
- 要使用系统定义的设置,请选择让系统决定。
- 要切换到无损模式,请选择像素完美。
-
根据带宽估算结果调整平均比特率
Citrix 通过根据带宽估算调整平均比特率来增强 HDX™ 3D Pro 硬件编码。
当使用 HDX 3D Pro 硬件编码时,VDA 可以间歇性地估算网络带宽并相应地调整编码帧的比特率。此新功能提供了一种在清晰度和流畅性之间取得平衡的机制。
此功能默认启用。要禁用它,请运行以下命令:
sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "DisableReconfigureEncoder" -d "0x00000001" --force
<!--NeedCopy-->
除了使用此功能外,您还可以运行以下命令来调整清晰度和流畅度。AverageBitRatePercent 和 MaxBitRatePercent 参数设置带宽使用率的百分比。设置的值越高,图形越清晰,但流畅度越低。建议设置范围为 50–100。
sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "AverageBitRatePercent" -d "90" --force
sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "MaxBitRatePercent" -d "100" --force
<!--NeedCopy-->
在平均比特率调整中,当屏幕静止不动时,最新帧保持低质量状态,因为没有发送新帧。锐化支持可以通过重新配置并立即以最高质量发送最新帧来解决此问题。
有关 Linux VDA Thinwire 支持的策略的完整列表,请参阅 策略支持列表。
有关 Linux VDA 上多显示器支持配置的信息,请参阅 CTX220128。
并行化处理
Thinwire 可以通过并行化某些任务来提高每秒帧数 (FPS),但会略微增加整体 CPU 消耗。此功能默认处于禁用状态。要启用此功能,请在 VDA 上运行以下命令:
sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "ParallelProcessing" -d "0x00000001" --force
<!--NeedCopy-->
故障排除
检查正在使用的图形模式
运行以下命令以检查正在使用的图形模式(0 表示 TW+。1 表示全屏视频编解码器):
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep GraphicsMode
<!--NeedCopy-->
结果如下所示:
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "GraphicsMode" -d "0x00000000" --force
验证 AV1 是否正在使用
注意:
要验证当前会话正在使用哪个视频编解码器,可以运行下面提供的命令,也可以通过 系统托盘检查图形状态。
运行以下命令以验证 AV1 是否正在使用(0 表示未使用。1 表示正在使用):
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep AV1
<!--NeedCopy-->
例如,结果可能如下所示:
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "AV1" -d "0x00000000" --force
验证 H.265 是否正在使用
运行以下命令以验证全屏 H.265 是否正在使用(0 表示未使用,1 表示正在使用):
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep H265
<!--NeedCopy-->
例如,结果可能如下所示:
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "H265" -d "0x00000000" --force
验证 H.264 是否正在使用
运行以下命令以验证 H.264 是否正在使用(0 表示未使用,1 表示正在使用):
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep H264
<!--NeedCopy-->
例如,结果可能如下所示:
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "H264" -d "0x00000000" --force
检查正在使用哪种 YUV 编码方案
运行以下命令以检查正在使用哪种 YUV 编码方案(0 表示 YUV420,1 表示 YUV422,2 表示 YUV444):
注意:
仅当正在使用视频编解码器时,YUVFormat 的值才有意义。
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep YUVFormat
<!--NeedCopy-->
例如,结果可能如下所示:
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "YUVFormat" -d "0x00000000" --force
验证 YUV444 软件编码是否正在使用
运行以下命令以验证 YUV444 软件编码是否正在使用:
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep Graphics
<!--NeedCopy-->
当 YUV444 正在使用时,结果如下所示:
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "GraphicsMode" -d "0x00000001" --force
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "H264" -d "0x00000001" --force
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "HardwareEncoding" -d "0x00000000" --force
create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "YUVFormat" -d "0x00000002" --force
验证 HDX 3D Pro 是否已启用
运行以下命令以验证 HDX 3D Pro 是否已启用:
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep ProductEdition
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep StackSessionMode
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep 3DPro
<!--NeedCopy-->
当 HDX 3D Pro 已启用时,结果如下所示:
create -k "HKLM\Software\Citrix\VirtualDesktopAgent\State" -t "REG_SZ" -v "ProductEdition" -d "<PLT or ENT>" --force
create -k "HKLM\System\CurrentControlSet\Control\Citrix\WinStations\tcp" -t "REG_DWORD" -v "StackSessionMode" -d "0x00000000" --force
create -k "HKLM\System\CurrentControlSet\Control\Citrix" -t "REG_DWORD" -v "3DPro" -d "0x00000000" --force
要验证 HDX 3D Pro 所需的 NVIDIA 库是否已加载,请在 Linux VDA 上运行 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-->
验证 3D Pro 是否正在使用硬件编码
运行以下命令(0 表示未使用。1 表示正在使用):
sudo /opt/Citrix/VDA/bin/ctxreg dump | grep HardwareEncoding
<!--NeedCopy-->
当 3D Pro 正在使用时,结果类似于:
create -k "HKLM\Software\Citrix\Ica\Session\1\Graphics" -t "REG_DWORD" -v "HardwareEncoding" -d "0x00000001" --force
验证 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(以前称为 Citrix Hypervisor™)的本地控制台会显示 ICA 桌面会话的屏幕
解决方法:通过运行以下命令禁用 VM 的本地 VGA 控制台:
[root@xenserver® ~]# xe vgpu-param-set uuid=vgpu-uuid extra_args=disable_vnc=1
<!--NeedCopy-->
Gnome 3 桌面弹出窗口登录缓慢
这是 Gnome 3 桌面会话启动的限制。
调整 Citrix Workspace 应用程序窗口大小时,某些 OpenGL/WebGL 应用程序渲染效果不佳
调整 Citrix Workspace 应用程序窗口大小会更改屏幕分辨率。NVIDIA 专有驱动程序会更改一些内部状态,可能需要应用程序做出相应响应。例如,WebGL 库元素 lightgl.js 可能会引发错误,提示 不支持渲染到此纹理(不完整的帧缓冲区)。