Linux Virtual Delivery Agent 2104

配置图形

本文提供有关 Linux VDA 图形配置和微调的指导。

有关详细信息,请参阅系统要求安装概述部分。

  • 配置

  • Thinwire 是 Linux VDA 中使用的显示远程处理技术。该技术允许将一台计算机上生成的图形传输到另一台计算机进行显示,通常通过网络进行传输。

使用视频编解码器进行压缩 图形策略设置默认图形模式,并为不同的用例提供以下选项:

  • 在首选时使用。此设置为默认值。无需进行额外配置。保持此设置可确保为所有 Citrix® 连接选择 Thinwire,并针对可伸缩性、带宽和典型桌面工作负载的卓越图像质量进行优化。
  • 用于整个屏幕。通过全屏 H.264 或 H.265 提供 Thinwire,以优化用户体验和带宽,尤其是在大量使用 3D 图形的情况下。
  • 用于活动更改区域。Thinwire 中的自适应显示技术可识别移动图像(视频、运动中的 3D),并且仅在图像移动的屏幕部分使用 H.264。选择性使用 H.264 视频编解码器 使 HDX Thinwire 能够检测并使用 H.264 视频编解码器对频繁更新的屏幕部分(例如视频内容)进行编码。静止图像压缩 (JPEG、RLE) 和位图缓存继续用于屏幕的其余部分,包括文本和摄影图像。用户可以从视频内容的低带宽和更高质量中受益,同时获得无损文本或其他高质量图像。要启用此功能,请将策略设置 使用视频编解码器进行压缩 更改为 在首选时使用(默认)或 用于活动更改区域。有关详细信息,请参阅图形策略设置

Image of for the entire screen

其他一些策略设置(包括以下视觉显示策略设置)可用于微调显示远程处理的性能:

在 Thinwire 中将 H.264 用于构建到无损

默认情况下,视觉质量 策略设置的 构建到无损 首选项现在是 H.264,而不是用于移动图像的 JPEG。

H.264 编码提供卓越的图像质量。使用视频编解码器进行压缩 策略控制该首选项,默认值为 在首选时使用。要强制 构建到无损 使用 JPEG,请将 使用视频编解码器进行压缩 策略设置为 不使用视频编解码器。如果您的客户端不支持选择性 H.264,则无论策略设置如何,构建到无损 都会回退到 JPEG。适用于 Windows 的 Citrix Receiver 4.9 到 4.12、适用于 Linux 的 Citrix Receiver 13.5 到 13.10、适用于 Windows 的 Citrix Workspace 应用程序 1808 及更高版本以及适用于 Linux 的 Citrix Workspace 应用程序 1808 及更高版本支持选择性 H.264。有关 视觉质量使用视频编解码器进行压缩 策略设置的详细信息,请参阅视觉显示策略设置图形策略设置

支持 H.265 视频编解码器

从 7.18 版本开始,Linux VDA 支持 H.265 视频编解码器,用于远程图形和视频的硬件加速。您可以在适用于 Windows 的 Citrix Receiver 4.10 到 4.12 以及适用于 Windows 的 Citrix Workspace 应用程序 1808 及更高版本上使用此功能。要受益于此功能,请在 Linux VDA 和客户端上都启用它。如果客户端的 GPU 不支持使用 DXVA 接口进行 H.265 解码,则图形策略设置的 H.265 解码将被忽略,并且会话将回退到使用 H.264 视频编解码器。有关详细信息,请参阅 H.265 视频编码

要在 VDA 上启用 H.265 硬件编码:

  1. 启用 使用视频编解码器进行硬件编码 策略。
  2. 启用 优化 3D 图形工作负载 策略。
  3. 确保 使用视频编解码器进行压缩 策略为默认值或设置为 用于整个屏幕
  4. 确保 视觉质量 策略设置为 构建到无损始终无损

要在客户端上启用 H.265 硬件编码,请参阅 H.265 视频编码

支持 YUV444 软件编码

Linux VDA 支持 YUV444 软件编码。YUV 编码方案为每个像素分配亮度和颜色值。在 YUV 中,’Y’ 表示亮度或“luma”值,’UV’ 表示颜色或“chroma”值。您可以在适用于 Windows 的 Citrix Receiver 4.10 到 4.12 以及适用于 Windows 的 Citrix Workspace 应用程序 1808 及更高版本上使用 Linux VDA 的此功能。

每个唯一的 Y、U 和 V 值包含 8 位或一个字节的数据。YUV444 数据格式每像素传输 24 位。YUV422 数据格式在两个像素之间共享 U 和 V 值,这导致平均传输速率为每像素 16 位。下表显示了 YUV444 和 YUV420 之间的直观比较。

YUV444 YUV420
image of yuv444 image of yuv420

要在 VDA 上启用 YUV444 软件编码:

  1. 确保 使用视频编解码器进行压缩 策略设置为 用于整个屏幕
  2. 确保 视觉质量 策略设置为 始终无损构建到无损

根据带宽估算调整平均比特率

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-->

除了使用此功能外,您还可以运行以下命令来调整清晰度和流畅度。AverageBitRatePercentMaxBitRatePercent 参数设置带宽使用百分比。设置的值越高,图形越清晰,流畅度越低。建议的设置范围是 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

故障排除

检查正在使用的图形模式

运行以下命令以检查正在使用的图形模式(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

检查 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

检查 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

检查正在使用哪种 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

检查 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,Citrix Hypervisor™ 本地控制台显示 ICA 桌面会话屏幕

解决方法: 通过运行以下命令禁用 VM 的本地 VGA 控制台:

xe vm-param-set uuid=<vm-uuid> platform:vgpu_extra_args="disable_vnc=1"
<!--NeedCopy-->

NVIDIA K2 显卡在直通模式下不支持 YUV444 硬件编码

通过策略设置启用 Build to Lossless 后,当用户使用 NVIDIA K2 显卡启动应用程序/桌面会话时,会出现黑屏或灰屏。出现此问题的原因是 NVIDIA K2 显卡在直通模式下不支持 YUV444 硬件编码。有关详细信息,请参阅视频编码和解码 GPU 支持矩阵

登录时 Gnome 3 桌面弹出窗口速度缓慢

这是 Gnome 3 桌面会话启动的限制。

调整 Citrix Workspace 应用程序窗口大小时,某些 OpenGL/WebGL 应用程序无法正常呈现

调整 Citrix Workspace 应用程序窗口大小时,会更改屏幕分辨率。NVIDIA 专有驱动程序会更改一些内部状态,可能需要应用程序做出相应响应。例如,WebGL 库元素 lightgl.js 可能会引发错误,指出“Rendering to this texture is not supported (incomplete frame buffer)”。

配置图形