配置图形

本文指导如何完成 Linux VDA 图形配置和微调。

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

配置参数

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Citrix\Thinwire 下面有几个与图形相关的配置参数可以通过 ctxreg 实用程序进行调节。

如何启用 Thinwire Plus

对于标准 VDA 和 3D Pro,默认启用 Thinwire Plus。

如何启用 H.264

除了操作系统要求外,H.264 还对 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

https://www.citrix.com/content/dam/citrix/en_us/documents/data-sheet/citrix-workspace-app-feature-matrix.pdf 提供 Citrix Receiver 的最新功能表。

可以运行以下命令在 VDA 上播发 H.264 编码:

sudo ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "AdvertiseH264" -d "0x00000001" --force

如何在 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

注意:

如果您收到“找不到 ctxreg 命令”错误,请使用带完整路径的 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
    

    此选项指定通过 Thinwire 协议传输到客户端的图形的颜色深度。

    为了节省带宽,将其设置为 0x10(表示适用于简单图形的首选颜色深度)或 0x8(实验低带宽模式)。

  • 质量

    视觉质量

     Default: 0x1(medium), type: DWORD, valid values: 0x0(low), 0x1(medium), 0x2(high), 0x3(build to lossless), 0x4 always lossless.
    

    为了节省带宽,将“质量”设置为 0x0(low)。

  • 其他参数

    • TargetFPS

      目标帧速率

      Default: 0x1e (30), Type: DWORD
      
    • MinFPS

    目标最低帧速率

     默认值:0xa (10),类型:DWORD
    
    • MaxScreenNum

    客户端可以具有的最大监视器数

     默认值:0x2,类型:DWORD
    

    对于标准 VDA,最大值最高可以设置为 10。对于 3D Pro,允许的最大值是 4。

故障排除

检查正在使用哪种编码

运行以下命令可检查是否正在使用 H.264 编码(1 表示 H.264;0 表示 TW+):

sudo ctxreg dump | grep H264

结果类似于:

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

结果类似于:

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

确认 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                                                 |
+-----------------------------------------------------------------------------+

为图形卡设置正确的配置:

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"

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)

Version

配置图形