viernes, 31 de agosto de 2018

Monitorizar gráficos híbridos en Linux Ubuntu 18.04/20.04 con GALLIUM HUD

GALLIUM HUD forma parte de GALLIUM3d y es una herramienta de superposición de información en aplicaciones OpenGL para Linux.
La monitorización de los distintos parámetros de un CPU/GPU ("Carga de GPU", "Temperatura", "Frecuencia", "FPS", "Frametime", entre otros) es de gran importancia. De esta forma, podemos identificar si algo está mal en el software de renderizado o en el hardware utilizado, por ejemplo, una temperatura del GPU demasiado alta o zonas mal optimizadas en un videojuego.

En Windows, existen herramientas fáciles de utilizar para la monitorización de los gráficos híbridos tal como "MSI Afterburner", "GPU-Z", "FRAPS", etc. Pero en Linux, son pocas, aunque la más conocida (al día de esta publicación) es GALLIUM HUD.
Si están interesados en utilizar esta herramienta, continúen la lectura.
NOTA: Esta publicación es válida para portátiles con gráficos híbridos equipados con un dGPU AMD o Nvidia.
ADVERTENCIA: Esta publicación requiere exclusivamente los "Drivers Open-Source" (Drivers Mesa incluidos en el kernel de Linux). Si desean seguir esta guía, entonces instalar un "Driver Open-Source" como: "nouveau", "amdgpu", "radeon", etc.
ADVERTENCIA: Esta publicación no funcionará con un iGPU Intel (por el momento).

Antes de empezar son necesarios algunos requisitos:

Requisitos de lectura:
  1. "Notebooks con Modo Fijo y Dinámico AMD".
  2. "Limitaciones de AMD Enduro".
  3. "Configurar gráficos híbridos en Linux Ubuntu 18.04 LTS con PRIME".
Requisitos de software (Dependencias):
  1. mesa-utils
  2. Mesa 18.1 o superior (Sólo para el modo simple de GALLIUM HUD)
Comandos para instalar las dependencias:
  1. mesa-utils ("sudo apt-get install mesa-utils")
  2. Mesa 18.1 o superior ("sudo add-apt-repository ppa:ubuntu-x-swat/updates", "sudo apt-get update && sudo apt-get dist-upgrade")
NOTA: A partir de Ubuntu 18.04.2 LTS se incluye una versión de Mesa superior a 18.1.
Con todo aclarado, empecemos.
Como todo usuario de un portátil con gráficos híbridos y bajo la necesidad de utilizar Linux para mi trabajo, me sentí en la necesidad de buscar una herramienta de monitorización gráfica (para mi dGPU AMD), en otras palabras, una herramienta de superposición de información a pantalla completa para aplicaciones de renderizado 3D y videojuegos. Lamentablemente, en Linux muchas herramientas de este tipo dejaron de funcionar desde hace años, otras ni compilan en versiones actuales de este sistema operativo y las restantes, de por si no muestran información confiable.
Es entonces cuando encuentro GALLIUM HUD, una herramienta incluida con los "Drivers Open-Source".

Equipo de prueba:
  • HP Pavilion G4-2082la
  • Dual Boot: Windows 7 + Kubuntu 18.04 LTS
  • Intel HD 3000 + AMD Radeon HD 7670M

I. ¿Qué es GALLIUM HUD?
GALLIUM HUD forma parte de GALLIUM3D y es una herramienta de superposición de información para aplicaciones OpenGL en Linux altamente personalizable. Únicamente funciona con controladores habilitados para GALLIUM3D, en otras palabras, "Drivers Open-Source" como: "nouveau", "amdgpu", "radeon", etc.
Pero en término estrictos, GALLIUM HUD es una variable de entorno.

II. ¿Cómo utilizar de manera fácil GALLIUM HUD?
Para empezar, utilizaremos glxgears:
[1]. Abrir un terminal.
[2]. Escribir el siguiente comando:
  1. glxgears
No olvidar que glxgears está incluido con mesa-utils.
Deberían visualizar una ventana nueva cuyo contenido son unos engranajes en movimiento, además, en el terminal debería aparecer un contador de FPS.
[3]. Cerrar la ventana cuando lo crean conveniente con la tecla [ESC].
"glxgears renderiza contenido gráfico (como si de un videojuego se tratase), el objetivo de utilizarlo es para superponer la información generada por GALLIUM HUD (a modo de práctica, para luego utilizar el código personalizado final en las aplicaciones que deseemos). Además, al tratarse de un renderizado simple, no consume recursos ni tiempo de espera."

Listo, ahora empecemos con GALLIUM HUD:
GALLIUM HUD es una variable, por lo que posee una nomenclatura y es la siguiente:
  1. GALLIUM_HUD=comando
Aquí es cuando les menciono que existen muchos comandos, pero como estamos iniciando lo mejor será utilizar el comando help:

NOTA: GALLIUM_HUD no funciona con el iGPU Intel, por lo que si el portátil utilizado posee este iGPU, en su lugar deberán utilizar GALLIUM_HUD con el dGPU usando el comando DRI_PRIME=1. Los que poseen un APU, no tendrán este problema (porque el iGPU es AMD).
NOTA IMPORTANTE: A partir de este momento, utilizaré DRI_PRIME=1 (como prefijo) para usar el dGPU AMD Radeon 7670M. Les recomiendo utilizar el prefijo mencionado para uniformizar los siguientes procedimientos; caso contrario, omitirlo.
[1]. En un terminal, escribir:
  1. GALLIUM_HUD=help DRI_PRIME=1 glxgears
Ayuda de GALLIUM_HUD. En la imagen aparecen pocos "Nombres disponibles", pero vean que existe una barra de desplazamiento.
[2]. Cerrar la ventana de glxgears con la tecla [ESC]
En el terminal debería de aparecer un texto con la forma de utilizar GALLIUM_HUD, y más abajo, los distintos comandos ("Nombres disponibles") a ser representados como "Carga de GPU", "Temperatura", "FPS", etc. La gran mayoría de estos "Nombres disponibles", tendrán un nombre distinto dependiendo del hardware/driver utilizado, pero los siguientes son los que se mantienen para cualquier hardware (y los utilizaremos como ejemplos):
  • fps (Frames per second)
  • cpu (Carga de CPU %)
  • GPU-load (Carga de GPU %)
Los nombres y cantidad de los principales comandos que cambiarán dependiendo del hardware son:
  • Hilos de CPU
  • Frecuencia de CPU
  • Temperatura de GPU
Por ejemplo, si quiero representar un gráfico con la "Carga de CPU" para cada "Hilo de CPU", entonces debo saber cuántos hilos tiene mi procesador (Intel Core i5-2450M tiene 4 hilos), luego debo buscar en la lista generada 4 comandos (por ser 4 hilos) que hagan referencia a lo que estoy buscando.
También, digamos como ejemplo que el comando "temperature" obtiene la temperatura de un dGPU Radeon 6700M, ese mismo comando puede no funcionar en un dGPU Radeon M360, en su lugar el comando puede ser "sensors_temp_cu-amdgpu-pci-0100.temp1".

Dejando de lado el tema de los "Nombres disponibles", concentrémonos en lo que sabemos, los comandos que se mantienen constantes para cualquier equipo. De esta manera, generaremos el primer gráfico importante, FPS:
[1]. En un terminal, escribir:
  1. GALLIUM_HUD=fps DRI_PRIME=1 glxgears
Gráfico de FPS con GALLIUM HUD en glxgears.
¿Ven lo fácil que es? Ahora, avancemos un poco.

II. ¿Cómo personalizar GALLIUM HUD?
Seguramente en internet encuentren un gráfico en cuyo contenido se representan 3 o más curvas, también gráficos apilados horizontal o verticalmente. Con GALLIUM HUD podemos obtener dichos resultados si usamos los 03 "Nombres disponibles" conocidos de la siguiente manera:
[1]. En un terminal, escribir:
  1. GALLIUM_HUD=GPU-load,cpu,fps DRI_PRIME=1 glxgears
Personalizando GALLIUM HUD. Apilación de gráficos en forma vertical.
Como se puede observar, obtenemos 03 gráficos apilados verticalmente (usando el símbolo ',' como separador).

También podemos representar estos gráficos en uno solo (usando el símbolo '+' como separador):
[2]. En un terminal, escribir:
  1. GALLIUM_HUD=GPU-load+cpu+fps DRI_PRIME=1 glxgears
Personalizando GALLIUM HUD. Combinación de gráficos.
O de apilarlos de forma horizontal usando comillas ("" ó '') y ';' como separador. Personalmente, prefiero este tipo de distribución.
[3]. En un terminal, escribir:
  1. GALLIUM_HUD="GPU-load;cpu;fps" DRI_PRIME=1 glxgears
Personalizando GALLIUM HUD. Apilación de gráficos en forma horizontal.
IMPORTANTE: Al combinar varias curvas en un gráfico, deben compartir las mismas unidades, es decir: porcentaje (%) con porcentaje (%). Por ejemplo, si se combinan gráficos de frecuencia (MHz, GHz) con temperatura (°C), se mostrarán datos erróneos.

Lo que acabo de mencionar es lo más importante, pero para continuar se necesita la siguiente información:

Ajustar el gráfico a un límite máximo:
Puede darse el caso que un gráfico, por ejemplo de FPS, presente valores en crecimiento de 60, 200, 300 y se necesite modificar el código para representar correctamente la información. Para ello existen los siguientes prefijos:
  • .cvalor (Donde valor es el límite máximo para el gráfico: 60, 200, 300, etc)
  • .d (El límite máximo del gráfico se ajustará dependiendo de la información mostrada)
Aquí tienen un ejemplo:
  1. GALLIUM_HUD=.dfps DRI_PRIME=1 glxgears
Ajuste automático del gráfico dependiendo de la cantidad de FPS.
Ajustar el tamaño y posición del gráfico:
Dependiendo de la resolución actual del monitor, existe una cantidad determinada de pixeles, donde a mayor sea la resolución, más gráficos e información podremos añadir. Obviamente, si nuestro monitor es de 1920x1080p, entonces por lógica, no ubicaremos un gráfico en la posición x=1921px y/o y=1081px (sin considerar el ancho del gráfico jajajaja).
Además, debemos tener en cuenta que el origen de coordenadas se encuentra en la esquina superior izquierda, desde esa posición se contarán los pixeles.

Semejante al caso anterior, existen los siguiente prefijos:
  • .w (Ancho del gráfico en pixeles, debe ser superior o igual a 80px)
  • .h (Alto del gráfico en pixeles, debe ser superior o igual a 50px)
  • .x (Posición horizontal del gráfico en pixeles, debe ser superior o igual a 0)
  • .y (Posición vertical del gráfico en pixeles, debe ser superior o igual a 0)

Aquí tienen un ejemplo:
  1. GALLIUM_HUD=".w160.h80fps;.x200.w160.h80cpu,.x10.y120.w160.h80GPU-load" DRI_PRIME=1 glxgears
Personalizando GALLIUM HUD. Apilando gráficos de forma horizontal y vertical, cambiando la posición y tamaño de los gráficos.
Ajustar el intervalo de muestreo de GALLIUM HUD:
Por defecto, como todo software de monitorización, GALLIUM HUD muestra información cada cierto tiempo (0.5 s), pero para tener un mayor control especificaremos el valor y lo reduciremos a 0.25 s. Para realizarlo, utilizaremos la siguiente variable como prefijo:
  1. GALLIUM_HUD_PERIOD=0.25
Como ejemplo, la forma de aplicarlo es:
  1. GALLIUM_HUD_PERIOD=0.25 GALLIUM_HUD=fps DRI_PRIME=1 glxgears

Con esto finaliza el tutorial de personalización. Ahora es tu turno de encontrar los nombres de los comandos de interés ("Nombres disponibles"). Puede ser un poco complicado, pero una vez que se coge el truco, el esfuerzo habrá valido la pena.

III. ¿Cómo mostrar/ocultar el HUD en aplicaciones ejecutadas?
GALLIUM HUD cuenta con dos variables de entorno adicionales llamadas GALLIUM_HUD_VISIBLE y GALLIUM_HUD_TOGGLE_SIGNAL que deben ser ejecutadas junto a GALLIUM_HUD.
 
GALLIUM_HUD_VISIBLE puede tomar el argumento "true" o "false" (sin comillas), por defecto se le asignada el valor "true" por más que no especifiquemos la variable. Si la especificamos, podemos iniciar aplicaciones con el HUD oculto de la siguiente manera:
  1. GALLIUM_HUD_VISIBLE=false GALLIUM_HUD=fps DRI_PRIME=1 glxgears
 
En cambio, GALLIUM_HUD_TOGGLE_SIGNAL no viene asignada por defecto y su función es alternar, en tiempo real, el argumento de GALLIUM_HUD_VISIBLE de "true" a "false" (y viceversa) siempre y cuando lo activemos mediante una señal externa. El argumento puede ser 10 o 20 y a partir de este punto se utilizará 10:
  1. GALLIUM_HUD_VISIBLE=false GALLIUM_HUD_TOGGLE_SIGNAL=10 GALLIUM_HUD=fps DRI_PRIME=1 glxgears
Si desean iniciar la aplicación con el HUD activo, no es necesario especificar GALLIUM_HUD_VISIBLE=false:
  1. GALLIUM_HUD_TOGGLE_SIGNAL=10 GALLIUM_HUD=fps DRI_PRIME=1 glxgears

Muy bien, al iniciar la aplicación con estas variables de entorno tendremos todo preparado para mostrar/ocultar el HUD. El paso siguiente consiste en mandar la señal a GALLIUM_HUD_TOGGLE_SIGNAL, pero antes se necesita conocer el número PID de la aplicación lanzada con esta variable usando el comando pgrep y especificando el nombre exacto de la aplicación (si no es exacto, no se mostrará el PID correcto), en este caso la aplicación es glxgears, entonces en un terminal escribimos:
  1. pgrep glxgears

La salida del comando anterior nos mostrará uno o varios números PID de acuerdo a la cantidad de procesos abiertos con el mismo nombre, elegir el deseado (en mi caso es 2246) y proceder de la siguiente forma:
  1. kill -n 10 2246
Entonces, ejecutando el comando anterior (una y otra vez) la señal es mandada y de esta forma el HUD se mostrará/ocultará. El problema de este método es que es específico para cada aplicación (no muestra/oculta el HUD para todas las aplicaciones), en otras palabras, deberemos conocer el PID preciso y enviar la señal para cada proceso.

Para solventar este problema, me di a la tarea de crear "GalliumToggle" un script que se encarga de mandar la señal a GALLIUM_HUD_TOGGLE_SIGNAL de forma automática para todas las aplicaciones o para aplicaciones específicas (en el segundo caso, muestra todos los PIDS asociados a GALLIUM_HUD_TOGGLE_SIGNAL y permite seleccionar la aplicación deseada).
Para descargar y ejecutar GalliumToggle, proceder de la siguiente manera:
[1]. Ingresar en un terminal lo siguiente:
  1. sudo apt install git
  2. git clone https://github.com/nestor-ld93/GalliumToggle
[2]. Ingresar a la carpeta clonada:
  1. cd GalliumToggle
[3]. Ejecutar el script:
  1. ./GalliumToggle.bash
Es todo, de esta manera ya no es necesario conocer el PID ni el nombre del proceso, el único requisito es que la variable GALLIUM_HUD_TOGGLE_SIGNAL=10 se encuentre asignada a las aplicaciones en ejecución.
NOTA: Para mostrar/ocultar el HUD en aplicaciones específicas utilizar el modo "manual". Más información en: https://github.com/nestor-ld93/GalliumToggle.
NOTA: Las aplicaciones lanzadas como superusuario requieren modificación del código. Más información en: https://github.com/nestor-ld93/GalliumToggle.
NOTA IMPORTANTE: GalliumToggle en su modo "auto" (por defecto), no depende del terminal, en otras palabras, se puede ejecutar con doble clic y funcionará sin problemas. Este último comportamiento permite que sea posible la asignación de una combinación de teclas por medio del sistema operativo.

IV. ¿Cuál es el código personalizado que utilizo para las capturas del blog?
Después de muchas combinaciones, encontré la que más me agrada. Pero, considerando la pantalla de mi portátil HP y mi Smart TV, utilizo dos códigos para las dos resoluciones y un código para el modo simple:

Para una resolución de 1366x768p:
  1. GALLIUM_HUD_PERIOD=0.25 GALLIUM_HUD_TOGGLE_SIGNAL=10 GALLIUM_HUD='.w160.h80cpufreq-cur-cpu0+cpufreq-cur-cpu1+cpufreq-cur-cpu2+cpufreq-cur-cpu3;.w160.h80.x250memory-clock+shader-clock;.w350.h80.x490.dfps;.w160.h80.x890.c100sensors_temp_cu-radeon-pci-0100.temp1+GPU-load+cpu;.w160.h80.x1140requested-VRAM+VRAM-usage'

Para una resolución de 1920x1080p:
  1. GALLIUM_HUD_PERIOD=0.25 GALLIUM_HUD_TOGGLE_SIGNAL=10 GALLIUM_HUD='.w190.h80cpufreq-cur-cpu0+cpufreq-cur-cpu1+cpufreq-cur-cpu2+cpufreq-cur-cpu3;.w190.h80.x290.c100cpu0+cpu1+cpu2+cpu3;.w360.h80.x520memory-clock+shader-clock;.w360.h80.x980.dfps;.w190.h80.x1400.c100sensors_temp_cu-radeon-pci-0100.temp1+GPU-load+cpu;.w190.h80.x1650requested-VRAM+VRAM-usage'
Para cualquier resolución (Modo simple):
  1. GALLIUM_HUD_PERIOD=0.25 GALLIUM_HUD_TOGGLE_SIGNAL=10 GALLIUM_HUD=simple,'cpufreq-cur-cpu0+cpufreq-cur-cpu1+cpufreq-cur-cpu2+cpufreq-cur-cpu3,memory-clock+shader-clock,sensors_temp_cu-radeon-pci-0100.temp1,GPU-load+cpu,requested-VRAM+VRAM-usage,fps'
Si eres de los usuarios que no les gustan los gráficos superpuestos (trazas de tiempo) a la aplicación de renderizado, ya sea por incomodidad o porque simplemente no los quieres, puedes utilizar el "Modo simple" de GALLIUM HUD en el cual únicamente se mostrará la información texto-número deseada.
Les compartos 04 capturas y 02 vídeos (01 tutorial para aplicar el código de GALLIUM HUD simple en un juego de Steam y 01 pequeño gameplay de L4D2):
Pantalla de inicio de Left4Dead 2 a 1366x768p con GALLIUM HUD.
Pantalla de inicio de Left4Dead 2 a 1920x1080p con GALLIUM HUD.
Portal 2 y el "Modo simple" de GALLIUM HUD.
Tomb Raider (2013), me sorprendió el port optimizado para Linux, no está a la altura de Windows, pero se puede jugar sin problemas.

 Configurar juegos de Steam en el dGPU y mostrar un HUD de monitorización simple (Linux)

Monitorizando L4D2 con GALLIUM HUD simple en Kubuntu 18.04.2


Traté de reducir lo más posible los gráficos de GALLIUM HUD para la resolución de 1366x768, pero no se compara al resultado en 1920x1080.
Como pueden observar, estos códigos incluyen la "Frecuencia por hilo de CPU", la "Carga por hilo de CPU", "Frecuencias de GPU", "FPS", "Temperatura de GPU", "Carga de GPU", "Carga de CPU" y "VRAM". Pueden personalizarlo a su gusto y obviamente algunos "Nombres disponibles" serán distintos.

V. ¿Cómo utilizar el código personalizado de GALLIUM HUD con un ALIAS local?
Un ALIAS local, es como su nombre lo dice, otra forma de llamar a cierto comando, es muy útil cuando un código es demasiado largo como para escribirlo varias veces. Haciendo una analogía con las matemáticas, es un cambio de variable. En mi caso, a mi me parece demasiado molesto tener que estar escribiendo todo el código (bueno, quise decir copiar y pegar xD) para cada aplicación, por lo que creé 03 alias llamados MONITOR_PRIME_768p, MONITOR_PRIME_1080p y MONITOR_PRIME_simple.

Para ello, deberán realizar:
[1]. Abrir un terminal.
[2]. Ingresar al directorio personal: "/home/usuario/"
  1. cd /home/nestor/
Donde:
usuario: Es el nombre del usuario local, en mi caso es "nestor" (sin las comillas).
[3]. Escribir el siguiente comando:
  1. kate .bashrc &
Por fin le doy uso al .bashrc en juegos.
NOTA: Si utilizan otras distribuciones de Linux, pueden instalar gedit o simplemente usar otro editor de texto (también es válido el editor del terminal, nano), en mi caso utilizo kate por comodidad.
[4]. Ingresar el siguiente código en la última línea del archivo de texto.
  1. #1366x768p
  2. alias MONITOR_PRIME_768p="GALLIUM_HUD_PERIOD=0.25 GALLIUM_HUD_TOGGLE_SIGNAL=10 GALLIUM_HUD='.w160.h80cpufreq-cur-cpu0+cpufreq-cur-cpu1+cpufreq-cur-cpu2+cpufreq-cur-cpu3;.w160.h80.x250memory-clock+shader-clock;.w350.h80.x490.dfps;.w160.h80.x890.c100sensors_temp_cu-radeon-pci-0100.temp1+GPU-load+cpu;.w160.h80.x1140requested-VRAM+VRAM-usage'"
  3. #1920x1080p
  4. alias MONITOR_PRIME_1080p="GALLIUM_HUD_PERIOD=0.25 GALLIUM_HUD_TOGGLE_SIGNAL=10 GALLIUM_HUD='.w190.h80cpufreq-cur-cpu0+cpufreq-cur-cpu1+cpufreq-cur-cpu2+cpufreq-cur-cpu3;.w190.h80.x290.c100cpu0+cpu1+cpu2+cpu3;.w360.h80.x520memory-clock+shader-clock;.w360.h80.x980.dfps;.w190.h80.x1400.c100sensors_temp_cu-radeon-pci-0100.temp1+GPU-load+cpu;.w190.h80.x1650requested-VRAM+VRAM-usage'"
  5. #Simple (cualquier resolución)
  6. alias MONITOR_PRIME_simple="GALLIUM_HUD_PERIOD=0.25 GALLIUM_HUD_TOGGLE_SIGNAL=10 GALLIUM_HUD=simple,'cpufreq-cur-cpu0+cpufreq-cur-cpu1+cpufreq-cur-cpu2+cpufreq-cur-cpu3,memory-clock+shader-clock,sensors_temp_cu-radeon-pci-0100.temp1,GPU-load+cpu,requested-VRAM+VRAM-usage,fps'"
[5]. Guardar el archivo y cerrar el terminal.
Resultado final del ALIAS. Esta es una captura antigua con menos código, pero sirve de ejemplo.
Listo, ahora en vez de escribir todo el código personalizado para cada aplicación, simplemente deberán escribir el alias de su preferencia, en este caso:
  • MONITOR_PRIME_768p: Para la resolución 1366x768p
  • MONITOR_PRIME_1080p: Para la resolución 1920x1080p
  • MONITOR_PRIME_simple: Para cualquier resolución (modo simple)

Les mostraré algunos ejemplos utilizando el ALIAS MONITOR_PRIME_1080p y MONITOR_PRIME_simple:

Para un juego de Steam nativo de Linux:
[1]. Abrir un terminal.
[2]. Escribir el siguiente comando:
  1. MONITOR_PRIME_1080p steam
Ingresando MONITOR_PRIME_1080p como prefijo.
[3]. Ejecutamos el juego normalmente.
Left4Dead 2 Linux con DRI_PRIME=1 y MONITOR_PRIME_1080p. Aparece 23 FPS porque así se grabó el video de la intro.
Left4Dead 2 Linux con DRI_PRIME=1 y MONITOR_PRIME_1080p. Aparacen algunos picos en el gráfico de FPS por estar tomando capturas de pantalla.
NOTA: Al utilizar el comando "MONITOR_PRIME_1080p steam", no aparecerá ningún gráfico de superposición en la ventana principal de Steam. Esto es debido a que Steam, en su estado actual, utiliza sus propias librerias. Es más, DRI_PRIME=1 como prefijo para Steam no surtirá efecto en dicha aplicación, pero a la hora de abrir los juegos si funcionará.

Para un juego de Windows utilizando Wine:
[1]. Abrir un terminal.
[2]. Ingresar a la ubicación del ejecutable del juego (Se realiza por simplicidad).
[3]. Escribir el siguiente comando seguido de la instrucción deseada:
  1. MONITOR_PRIME_1080p
Ejecutando portal2.exe usando GALLIUM HUD.
[4]. Presionar [ENTER] para ejecutar la instrucción.
Portal 2 Linux con DRI_PRIME=1 y MONITOR_PRIME_1080p.
NOTA: Esta es la forma más fácil de utilizar wine, existen otros comandos adicionales para personalizarlo, pero no es el motivo de este post.
Para cualquier aplicación de renderizado usando el modo simple de GALLIUM HUD:
[1]. Abrir un terminal.
[2]. Escribir el siguiente comando seguido de la instrucción deseada:
  1. MONITOR_PRIME_simple
Modo simple de GALLIUM HUD en acción para glxgears.
Y es todo por hoy, ahora ya pueden monitorizar sus gráficos híbridos en Linux.

Imagen bonus: Así estuve varias horas.
Mi laptop HP y mi SmartTV.

REFERENCIAS:

Palabras finales
Hola a todos, aquí quantum-phy en otra publicación.
Y después de mucho, pero mucho tiempo les comparto un nuevo tema. No fue fácil realizarlo, sobre todo por el tiempo; pero aprovechando que el 30 de agosto fue feriado y el 31 pedí un día libre en mi trabajo, me dije ¿Por qué no publico algo en el blog? Y este es el resultado. Cabe destacar que estas dos últimas publicaciones son exclusivas del blog y no se encuentran en el Foro HP.

Aún queda mucho por mejorar en este post, por ejemplo, GALLIUM_HUD posee un modo simple donde no se muestran gráficos, sino textos con números. Cuando tenga tiempo, agregaré dichos detalles. Ahora se encuentra disponible el modo simple de GALLIUM HUD en esta publicación, además añadí algunos gifs y un pequeño gameplay para que se entienda mejor.
Ahora se encuentra disponible en esta publicación la variable GALLIUM_HUD_TOGGLE_SIGNAL y el script GalliumToggle, este último creado por mi. GalliumToggle permite mostrar/ocultar de forma automática el HUD para todas las aplicaciones o para aplicaciones específicas que son detectadas por el propio script. Es más, GalliumToggle permite ser asociado a una combinación de teclas mediante el sistema operativo, lo probé con KDE Plasma y Gnome funcionando de maravilla.

Como mencioné, estuve buscando una herramienta semejante a MSI Afterburner (para monitorizar mi dGPU), encontré muchas, pero gracias a que utilizo drivers "Open-Source" me topé con GALLIUM HUD.
En un inicio, estuve creando mi propio código personalizado, pero más adelante me encontré con el blog de manero (referencia 2), prácticamente una parte de esta publicación es de allí (obviamente no es un plagio de palabra por palabra jajajajaja, me basé en su contenido para generar uno nuevo a mi manera) pero centrado y adaptado a los gráficos híbridos. También, aquí encontrarán la aplicación del ALIAS a este tema y el uso del modo simple de GALLIUM_HUD que no se encuentra en el blog de manero (por el momento). En otras palabras, este post se complementa con el de manero (a quien aprovecho en agradecer por compartir su conocimiento). Les recomiendo su blog, encontrarán muchas publicaciones útiles para Linux.

Espero que esta información/tutorial sea de ayuda.
Un saludo.

Estado

=======================================
Recomiendo este post donde se recopila mucho contenido útil y en español para jugar en Linux.
-¿Jugar en Linux?, están locos estos pingüinos

[Linux] ¿Fidelity FX Super Resolution (FSR) en cualquier juego?
- Pruebas en el canal de YouTube

[Linux] GalliumToggle publicado en GitHub.
=======================================

quantum-phy (NestorBase11)

Videos Destacados

Entradas recientes