Linux Virtual Delivery Agent

Configuración y ajuste de gráficos

En este artículo se ofrece una guía para configurar los gráficos y ajustes precisos en Linux VDA.

Para obtener más información, consulte Requisitos del sistema y la sección Información general de la instalación.

Configuración

Códec de vídeo para compresión

Thinwire es la tecnología de pantallas remotas que se utiliza en Linux Virtual Delivery Agent. Esta tecnología permite que los gráficos generados en una máquina se transmitan (normalmente a través de una red) a otra máquina para que se vean desde allí.

La directiva Usar códec de vídeo para compresión establece el modo de gráficos predeterminado y ofrece estas opciones para diferentes casos de uso:

  • Usar si se prefiere. Este es el valor predeterminado. No se requiere ninguna configuración adicional. Esto garantiza que se seleccionará Thinwire para todas las conexiones de Citrix, y se optimizará para la escalabilidad, el ancho de banda y una calidad de imagen superior para cargas de trabajo típicas de escritorio.
  • Para la pantalla entera. Entrega Thinwire con H.264 o H.265 en pantalla completa para mejorar la experiencia del usuario y optimizar el ancho de banda, sobre todo cuando haya un uso intensivo de gráficos 3D.
  • Para áreas en cambio constante. La tecnología de pantalla adaptable de Thinwire identifica imágenes en movimiento (vídeo, 3D en movimiento). Utiliza H.264 solo en aquella parte de la pantalla donde se mueva la imagen. El uso selectivo de un códec de vídeo H.264 permite a HDX Thinwire detectar y codificar partes de la pantalla que se actualizan con frecuencia mediante el códec de vídeo H.264. La compresión de imágenes fijas (JPEG, RLE) y el almacenamiento en caché de mapas de bits siguen utilizándose para el resto de la pantalla, incluido el texto y las fotografías. Los usuarios obtienen el beneficio de un menor consumo del ancho de banda y una mejor calidad para el contenido de vídeo, junto con imágenes de alta calidad o texto sin pérdida de calidad. Para habilitar esta funcionalidad, establezca la directiva Usar códec de vídeo para compresión en Usar si se prefiere (valor predeterminado) o Para áreas en cambio constante. Para obtener más información, consulte Configuraciones de directiva de gráficos. Para habilitar la codificación por hardware H.264 para esta función, consulte Codificación por hardware H.264.

    Para toda la pantalla seleccionada

Varias configuraciones de directiva más, incluidas las siguientes configuraciones de directiva de Presentación visual, se pueden usar para optimizar el rendimiento de la tecnología de pantallas remotas:

Codificación por hardware H.264

La directiva Usar codificación por hardware para códec de vídeo permite el uso de hardware de gráficos, si está disponible, para comprimir los elementos en pantalla con el códec de vídeo. Si no está disponible, el VDA recurre a la codificación basada en CPU con el códec de vídeo del software.

A partir de la versión 2204, Linux VDA admite el uso selectivo del códec de hardware H.264 para áreas en cambio constante. Esta funcionalidad reduce la carga de CPU en la compresión de vídeo con ayuda de hardware y mejora la calidad de la imagen y el número de fotogramas por segundo (FPS). Para habilitar esta funcionalidad, haga lo siguiente:

  1. Habilite la directiva Usar codificación por hardware para códec de vídeo.

  2. Habilite la directiva Usar códec de vídeo para compresión y seleccione Para áreas en cambio constante.

Permitir compresión sin pérdida visual

La directiva Permitir compresión sin pérdida visual permite usar compresión sin pérdida visual, en lugar de compresión sin pérdida verdadera, para los gráficos. La compresión sin pérdida visual mejora el rendimiento en mayor medida que la compresión sin pérdida verdadera, con una pérdida menor que no se nota a la vista. Este parámetro cambia el modo en que se usan los valores de la configuración Calidad visual.

La directiva Permitir compresión sin pérdida visual está inhabilitada de forma predeterminada. Para habilitar la compresión sin pérdida visual, establezca Permitir compresión sin pérdida visual en Habilitado y la directiva Calidad visual en Gradual sin pérdida.

Si la directiva Usar códec de vídeo para compresión está establecida en No usar códec de vídeo, la compresión sin pérdida visual se aplica a la codificación de imágenes estáticas. Si la directiva Usar códec de vídeo para compresión se establece en un modo de gráficos distinto de No usar códec de vídeo, la compresión sin pérdida visual se aplica a la codificación H.264.

Los siguientes clientes admiten Selective H.264:

  • Citrix Receiver para Windows 4.9 a 4.12
  • Citrix Receiver para Linux 13.5 a 13.10
  • Aplicación Citrix Workspace para Windows 1808 y versiones posteriores
  • Aplicación Citrix Workspace 1808 para Linux y versiones posteriores

Para obtener más información sobre las configuraciones de directiva Calidad visual y Usar códec de vídeo para compresión, consulte Configuraciones de directiva de Presentación visual y Configuraciones de directiva de Gráficos.

Compatibilidad con el códec de vídeo H.265

A partir de la versión 7.18, Linux VDA admite el códec de vídeo H.265 en la aceleración de hardware para gráficos y vídeos remotos.

Puede usar esta función en:

  • Citrix Receiver para Windows 4.10 a 4.12
  • Aplicación Citrix Workspace para Windows 1808 y versiones posteriores

Para utilizar esta función, debe habilitarla tanto en Linux VDA como en su cliente. Si la GPU en su dispositivo cliente no admite la decodificación H.265 mediante la interfaz DXVA, la configuración de directiva “Decodificación H.265 para gráficos” se ignora y las sesiones recurren al uso del códec de vídeo H.264. Para obtener más información, consulte Codificación de vídeo H.265.

Para habilitar la codificación por hardware H.265 en el VDA:

  1. Habilite la directiva Usar codificación por hardware para códec de vídeo.
  2. Habilite la directiva Optimizar para cargas de trabajo de gráficos 3D.
  3. Compruebe que la directiva Usar códec de vídeo para compresión esté establecida en el valor predeterminado o en Para la pantalla entera.
  4. Compruebe que la directiva Calidad visual no esté establecida en Gradual sin pérdida o Siempre sin pérdida.

Para habilitar la codificación por hardware H.265 en su dispositivo cliente, consulte Codificación de vídeo H.265.

Compatibilidad con la codificación por software YUV444

Linux VDA admite la codificación por software YUV444 El esquema de codificación YUV asigna valores de brillo y color a cada píxel. En YUV, “Y” representa el brillo o el valor “luma” y “UV” representa el color o el valor “croma”. Puede usar esta función en Citrix Receiver para Windows versiones 4.10 a 4.12 y en la aplicación Citrix Workspace 1808 para Windows y versiones posteriores.

Cada valor único de Y, U, o V comprende 8 bits, o un byte, de datos. El formato de datos YUV444 transmite 24 bits por píxel. El formato de datos YUV422 comparte los valores U y V entre dos píxeles, lo que resulta en una velocidad media de transmisión de 16 bits por píxel. La siguiente tabla muestra una comparación intuitiva entre YUV444 y YUV420.

YUV444 YUV420
YUV444 YUV420

Para habilitar la codificación por software YUV444 en el VDA:

  1. Compruebe que la directiva Usar códec de vídeo para compresión esté establecida en Para la pantalla entera.
  2. Compruebe que la directiva Calidad visual esté establecida en Siempre sin pérdida o Gradual sin pérdida.

Control deslizante de calidad gráfica

Hemos incluido un control deslizante de calidad gráfica en la herramienta Indicador de estado de gráficos que se ejecuta en las sesiones virtuales de Linux. El control deslizante ayuda a encontrar un buen equilibrio entre calidad de imagen e interactividad.

Para utilizar el control deslizante, siga estos pasos:

  1. Habilite la directiva Indicador de estado de gráficos en Citrix Studio.

    Directiva Indicador de estado de gráficos

  2. Abra el terminal y ejecute el comando ctxslider. Aparecerá la interfaz de usuario del control deslizante.

    Nota:

    Si ha establecido la directiva Calidad visual en Siempre sin pérdida o Gradual sin pérdida, no se muestra la interfaz de usuario del control deslizante.

    Control deslizante de calidad gráfica

    Ahora están disponibles las siguientes opciones:

    • Para cambiar la calidad de la imagen, mueva el control deslizante. El control deslizante admite un intervalo de 0 a 9.
    • Para utilizar la configuración definida por el sistema, seleccione Dejar que el sistema decida.
    • Para cambiar al modo sin pérdida, selecciona Píxel perfecto.

Ajuste la velocidad media de bits según los cálculos estimados del ancho de banda

Citrix mejora la codificación por hardware HDX 3D Pro mediante el ajuste de la velocidad media de bits según los cálculos estimados de ancho de banda.

Cuando la codificación por hardware HDX 3D Pro se está utilizando, el VDA puede estimar intermitentemente el ancho de banda de la red y ajustar la velocidad de bits de los fotogramas codificados en consecuencia. Esta nueva funcionalidad proporciona un mecanismo para equilibrar la nitidez y la fluidez.

Esta función está habilitada de manera predeterminada. Para inhabilitarlo, ejecute este comando.

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

Además de utilizar esta función, también puede ejecutar los siguientes comandos para ajustar entre nitidez y fluidez. Los parámetros AverageBitRatePercent y MaxBitRatePercent establecen el porcentaje de uso del ancho de banda. Cuanto más altos sean los valores que establezca, obtendrá mejor nitidez y fluidez. El intervalo de parámetros recomendado es de 50 a 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-->

En el ajuste de velocidad media de bits, cuando su pantalla está quieta, el fotograma más reciente se mantiene en un estado de baja calidad porque no se envían fotogramas nuevos. El proceso de nitidez puede solucionar este problema reconfigurando y enviando inmediatamente el fotograma más reciente con la mayor calidad.

Para obtener una lista completa de las directivas disponibles en Linux VDA Thinwire, consulte Lista de directivas disponibles.

Para obtener información sobre la configuración de la compatibilidad con varios monitores en Linux VDA, consulte CTX220128.

Procesamiento paralelo

Thinwire puede mejorar la cantidad de fotogramas por segundo (FPS) al paralelizar ciertas tareas, con la sobrecarga de un consumo general de CPU ligeramente mayor. Esta función está inhabilitada de forma predeterminada. Para habilitar esta función, ejecute este comando en el VDA:

sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Thinwire" -t "REG_DWORD" -v "ParallelProcessing" -d "0x00000001" --force
<!--NeedCopy-->

Solución de problemas

Compruebe el modo de gráficos en uso

Ejecute este comando para comprobar qué modo de gráficos se está utilizando (0 significa TW+; 1 significa códec de vídeo para la pantalla entera):

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep GraphicsMode
<!--NeedCopy-->

El resultado es similar a:

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "GraphicsMode" -d "0x00000000" --force

Compruebe si H.264 se está utilizando

Ejecute este comando para comprobar si H.264 se está utilizando (0 significa que no se usa; 1 significa que sí se usa):

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep H264
<!--NeedCopy-->

El resultado es similar a:

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "H264" -d "0x00000000" --force

Compruebe si H.265 se está utilizando

Ejecute este comando para comprobar si H.265 en pantalla completa se está utilizando (0 significa que no se usa; 1 significa que sí se usa):

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep H265
<!--NeedCopy-->

El resultado es similar a:

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "H265" -d "0x00000000" --force

Compruebe qué esquema de codificación YUV se utiliza

Ejecute el siguiente comando para comprobar qué esquema de codificación YUV se está utilizando (0 significa YUV420; 1 significa YUV422; 2 significa YUV444):

Nota: El valor de YUVFormat es importante solo cuando se utiliza el códec de vídeo.

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep YUVFormat
<!--NeedCopy-->

El resultado es similar a:

create -k "HKLM\Software\Citrix\Ica\Session\4\Graphics" -t "REG_DWORD" -v "YUVFormat" -d "0x00000000" --force

Compruebe si la codificación por software YUV444 se está utilizando

Ejecute el siguiente comando para comprobar si la codificación por software YUV444 se está utilizando:

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep Graphics
<!--NeedCopy-->

Cuando YUV444 se está utilizando, el resultado se asemeja a:

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

Compruebe si se utiliza la codificación por hardware para 3D Pro

Ejecute este comando (0 significa que no se usa; 1 significa que sí se usa):

sudo /opt/Citrix/VDA/bin/ctxreg dump | grep HardwareEncoding
<!--NeedCopy-->

El resultado es similar a:

create -k "HKLM\Software\Citrix\Ica\Session\1\Graphics" -t "REG_DWORD" -v "HardwareEncoding" -d "0x00000001" --force

Otra forma de averiguarlo es usar el comando nvidia-smi. Los resultados son similares a lo siguiente si se utiliza la codificación por hardware:

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

Compruebe si el controlador de gráficos NVIDIA GRID se ha instalado correctamente

Para verificar si el controlador de gráficos NVIDIA GRID se ha instalado correctamente, ejecute nvidia-smi. El resultado es similar a:

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

Establezca la configuración correcta para la tarjeta:

etc/X11/ctx-nvidia.sh

Problemas de actualización de pantalla en varios monitores con HDX 3D Pro

Si ve problemas de actualización en pantallas que no sean el monitor principal, compruebe que la licencia de NVIDIA GRID está disponible.

Comprobar registros de error Xorg

El archivo de registro Xorg recibe un nombre similar a Xorg.{DISPLAY}.log en la carpeta /var/log/.

Problemas conocidos y limitaciones

Para vGPU, la consola local de Citrix Hypervisor muestra la pantalla de la sesión de escritorio ICA

Solución temporal: Inhabilite la consola VGA local de la máquina virtual mediante estos comandos:

Para Citrix Hypervisor 8.1 y versiones posteriores:

[root@xenserver ~]# xe vgpu-param-set uuid=vgpu-uuid extra_args=disable_vnc=1
<!--NeedCopy-->

Para versiones de Citrix Hypervisor anteriores a 8.1:

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

Los elementos emergentes de escritorio Gnome 3 son lentos cuando se inicia sesión

Esta es una limitación del inicio de sesiones en escritorios Gnome 3.

Algunas aplicaciones OpenGL o WebGL no se generan correctamente después de cambiar el tamaño de la ventana de la aplicación Citrix Workspace

Si cambia el tamaño de la ventana de la aplicación Citrix Workspace, cambiará la resolución de pantalla. El controlador propietario NVIDIA cambia algunos estados internos y puede requerir que las aplicaciones respondan adecuadamente. Por ejemplo, el elemento de la biblioteca WebGL. lightgl.js podría generar el error ‘Rendering to this texture is not supported (incomplete frame buffer)’.

Configuración y ajuste de gráficos