jueves, 29 de octubre de 2020

Monitorizar gráficos híbridos en Linux Ubuntu 20.04 LTS con MangoHud y GOverlay

MangoHud es una herramienta de superposición (overlay) para Vulkan y OpenGL con el objetivo de monitorizar FPS, temperatura, carga de CPU/GPU, y más.

Monitorizar parámetros tales como "Carga de CPU/GPU", "Temperatura de CPU/GPU", "Frametime", "FPS", entre otros, resulta importante para tener conocimiento si nuestro ordenador funciona correctamente al renderizar contenido o encontrarse en reposo.
En la actualidad, GNU/Linux presenta un buen panorama a la hora de realizar actividades profesionales y también en el ámbito recreativo, como es el caso de los videojuegos. Este último aspecto continúa en crecimiento gracias al proyecto WINE, Proton, DXVK, entre otros.
Para monitorizar parámetros de interés, contamos con herramientas como CPU-X, Nvidia-Settings, etc. Pero dichas alternativas no proporcionan un overlay para mostrar la información en pantalla (Nvidia-Settings presenta un contador de FPS, pero es limitado). Por dicho motivo, les presenté con anterioridad una herramienta OSD para la monitorización al renderizar contenido en el GPU, dicha herramienta se denomina GALLIUM_HUD, pero tiene dos defectos:

  1. Requiere Drivers Open-Source (Nvidia Prime no soportado)
  2. Funciona únicamente con OpenGL (Vulkan no soportado)

En Microsoft Windows, la herramienta más conocida para monitorizar parámetros de CPU y GPU, mediante overlay, es MSI Afterburner (incluye RivaTuner Statistics); en el caso de GNU/Linux, las herramientas que están ganando mucha popularidad desde el 2020 son MangoHud y GOverlay por el motivo que funcionan tanto con drivers Open-Source como privativos y también bajo el API OpenGL y Vulkan (obviamente DXVK se encuentra incluido).
En esta publicación nos centraremos en explicar estas dos últimas herramientas, sus ventajas, desventajas, su uso desde el punto de vista de los gráficos híbridos en equipos portátiles y todo lo necesario para su aplicación.
NOTA: Esta publicación es válida para portátiles con gráficos híbridos equipados con un dGPU AMD o Nvidia.
NOTA: Esta publicación es válida para portátiles con gráficos híbridos que utilizan drivers Open-Source y/o privativos.
ADVERTENCIA: Esta publicación NO es válida para portátiles con gráficos híbridos que utilizan el driver Open-Source "radeon".

Requisitos de software para ejecutar ejemplos (Dependencias):
  1. mesa-utils
  2. vulkan-tools
  3. vulkan-utils

Comandos para instalar las dependencias:
  1. mesa-utils ("sudo apt install mesa-utils") 
  2. vulkan-tools ("sudo apt install vulkan-tools")  
  3. vulkan-utils ("sudo apt install vulkan-utils")
Con todo aclarado, empecemos.

I. ¿Qué es MangoHud?
Es una herramienta de superposición (overlay) para Vulkan y OpenGL con el objetivo de monitorizar FPS, temperatura, carga de CPU/GPU, y más.
Creadorflightlessmango

Monitorizando glxgears con MangoHud en la gráfica dedicada.
Ventajas (al día 29/10/2020):
  1. Altamente personalizable
  2. Compatible con Vulkan y OpenGL
  3. Compatible con drivers Open-Source y privativos ("amdgpu", "amdgpu-pro", "nouveau", "nvidia")
  4. De código abierto
  5. Constante desarrollo

Desventajas (al día 29/10/2020):
  1. Carece de interfaz gráfica para la personalización
  2. Incompatible para mostrar todos los parámetros con GPUs AMD antiguos (driver Open-Source "radeon")
  3. Problemas de detección de parámetros al poseer múltiples GPUs (en portátiles como en PCs de escritorio)
  4. Problemas de detección de parámetros al poseer un APU con/sin dGPU (en portátiles como en PCs de escritorio)

II. ¿Cómo saber si el GPU AMD posee un driver incompatible para MangoHud?
Hasta el momento, sabemos que el driver Open-Source incompatible es "radeon" (MangoHud funcionará, pero no mostrará todos los parámetros del GPU), así que nos limitaremos a buscar el nombre de dicho driver, pero tener en cuenta que en el futuro otro puede no funcionar.

Método 01:
[1]. Ingresar a un terminal.
[2]. Escribir el siguiente comando:
  1. lspci | grep VGA
[3]. Tomar nota del PCI-ID
Estoy utilizando el APU A8-7600.
[4]. Escribir el siguiente comando (en este caso, el PCI-ID corresponde a 00:01.0):
  1. lspci -v -s 00:01.0
[5]. Verificar si la línea "Kernel driver in use:" presenta como salida un driver incompatible.
El terminal muestra que el driver "radeon" se encuentra en uso y por lo tanto es incompatible con MangoHud.
Método 02:
[1]. Ingresar a un terminal.
[2]. Escribir el siguiente comando:
  1. sudo apt install cpu-x
[3]. Proporcionar la contraseña de administrador y proceder con la instalación.
[4]. Desde el lanzador de aplicaciones, ejecutar CPU-X como Root.
[5]. Ingresar a la pestaña "Graphics" y verificar si la línea "Vendor" presenta como salida un driver incompatible.
CPU-X es la alternativa a CPU-Z.
Método 03 (Para distribuciones basadas en KDE Plasma):
[1]. Desde el lanzador de aplicaciones, ejecutar "kinfocenter".
[2]. Desplegar la opción "Información sobre gráficos" y dar clic a "OpenGL".
[3]. Verificar si la línea "Módulo de núcleo" presenta como salida un driver incompatible.
Kinfocenter muestra que el driver en uso es "radeon".

III. Mi GPU utiliza el driver "radeon" ¿Puedo utilizar "amdgpu" u otro para usar MangoHud?
La respuesta es: depende. Si el GPU no es muy antiguo, existe la posibilidad.

Para saber si efectivamente "amdgpu" u otro driver se encuentra soportado, se deberá seguir el "Método 01" del Capítulo II "¿Cómo saber si el GPU AMD posee un driver incompatible para MangoHud?". El resultado final se muestra a continuación:
Según la salida, "amdgpu" es compatible con el APU A8-7600.
La línea final "Kernel modules:" muestra que los drivers "radeon" y "amdgpu" son compatibles con el GPU asignado al PCI-ID 00:01:0.

Entonces, si "amdgpu" es compatible, se procede de la siguiente manera para su activación:
ADVERTENCIA: Este procedimiento puede no funcionar en otros equipos, tomar las precauciones del caso.

[1]. Abrir un terminal.
[2]. Escribir el siguiente comando:
  1. kate /etc/default/grub
NOTA: Si utilizan otras distribuciones de GNU/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.
[3]. Buscar la siguiente línea:
  1. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
[4]. Reemplazar la línea anterior por:
  1. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash radeon.cik_support=0 amdgpu.cik_support=1 radeon.si_support=0 amdgpu.si_support=1"
Modificando las opciones del GRUB.
[5]. Guardar los cambios y cerrar el editor de texto.
[6]. Escribir el siguiente comando:
  1. sudo update-grub
[7]. Reiniciar el equipo

Con estos pasos aplicados, el driver "amdgpu" debería encontrarse activo tal como se muestra en las siguiente capturas.
Resultado del terminal mostrando el driver "amdgpu" en uso.
CPU-X mostrando el nombre del driver "amdgpu".

IV. ¿Cuáles son los problemas de detección de parámetros que tiene MangoHud en portátiles con gráficos híbridos?
Hasta el momento, MangoHud se ve muy prometedor, tanto que incluso en muchos aspectos es superior a MSI Afterburner (dejando de lado las funcionalidad de overclock). Pero, en el caso de poseer más de un (01) GPU, MangoHud no es capaz de detectarlos correctamente.

Al día de esta publicación, el problema de detección de parámetros es el siguiente:
Al utilizar PRIME (Open-Source) o Nvidia-Prime On-Demand (Privativo), MangoHud asume que existe un GPU secundario (en el caso de los portátiles, el dGPU) y mostrará únicamente los parámetros del dGPU por más que se fuerce el uso del iGPU.
NOTA: Al utilizar Nvidia-Prime Performance (Privativo), MangoHud trabaja únicamente con el GPU principal, en este caso Nvidia y no presentará el problema.

A continuación, les muestro el problema. Estoy usando Nvidia Prime On-Demand renderizando contenido en el iGPU y únicamente las estadísticas del dGPU son las mostradas (por más que se desee monitorizar el iGPU):
MangoHud monitorizando el dGPU por más que sea de interés monitorizar el iGPU. El nombre del GPU renderizador se encuentra mal detectado.

V. ¿Qué es GOverlay?
Es una interfaz gráfica de usuario (GUI) destinada a administrar las superposiciones (overlay) para Vulkan y OpenGL al utilizar MangoHud; también, se encarga de administrar una capa de postprocesado para Vulkan al utilizar vkBasalt.

En palabras simples, y dejando de lado vkBasalt (no es motivo de esta publicación), GOverlay es la interfaz gráfica para MangoHud.
Creadorbenjamimgois

Interfaz gráfica de GOverlay.
Ventajas (al día 29/10/2020):
  1. Interfaz gráfica fácil de utilizar
  2. Previsualización
  3. Integración con glxgears y vkcube
  4. La compilación genera un ejecutable portable
  5. Permite habilitar/deshabilitar MangoHud/vkBasalt globalmente para aplicaciones Vulkan
  6. De código abierto
  7. Constante desarrollo

Desventajas (al día 29/10/2020):
  1. El ejecutable no se encuentra realmente instalado
  2. El ejecutable (producto de la compilación) deja de responder por unos segundos al guardar los cambios a diferencia de la versión Release-Portable
  3. No permite habilitar/deshabilitar MangoHud/vkBasalt globalmente para aplicaciones OpenGL
  4. Algunas opciones se encuentran limitadas (sólo permite algunas combinaciones de teclas para activar/desactivar el HUD, etc.)
_______________________________________________________________________________

VI. ¿Cómo instalar MangoHud?
De la siguiente manera:
[1]. Abrir un terminal.
[2]. Instalar la dependencia "git":
  1. sudo apt install git
[3]. Clonar el repositorio de "MangoHud" e ingresar a la carpeta clonada:
  1. git clone --recurse-submodules https://github.com/flightlessmango/MangoHud.git
  2. cd MangoHud
[4]. Iniciar la compilación:
  1. ./build.sh build
  2. ./build.sh package

NOTA: Antes de iniciar la compilación, se pedirá instalar las dependencias faltantes.

[5]. Iniciar la instalación:
  1. ./build.sh install
 
Una vez instalado, queda pendiente la actualización y duplicado del archivo "pci.ids" que contiene registrado los nombres de los dispositivos del sistema que MangoHud utilizará. Este paso se debe aplicar para mostrar correctamente el nombre del GPU en aplicaciones OpenGL.

 [6 - Adicional]. Ingresar el siguiente comando:
  1. sudo update-pciids
[7 - Adicional]. Copiar el archivo "pci.ids" a la carpeta "hwdata":
  1. sudo cp /usr/share/misc/pci.ids /usr/share/hwdata/
NOTA: La carpeta "hwdata" debe ser creada si no existiera.
NOTA: Se requieren permisos de administrador.

VII. ¿Cómo usar MangoHud en el GPU principal?
MangoHud se basa en prefijos para su activación (tal como DRI_PRIME=1 para renderizar contenido en el dGPU) y al igual que todo prefijo, debe ser usado para cada ejecutable si deseamos ver los parámetros. La siguiente tabla muestra los prefijos de acuerdo a la apertura de la aplicación:

Apertura en

API

Prefijo 1

(environment variable)

Prefijo 2

Terminal / 

Lutris

OpenGL

-

mangohud

Vulkan

MANGOHUD=1

mangohud

Lanzador de aplicaciones

OpenGL

-

env mangohud

Vulkan

env MANGOHUD=1

env mangohud

Aplicación/juego de Steam

OpenGL

-

mangohud %command%

Vulkan

MANGOHUD=1 %command%

mangohud %command%

Ahora, vamos a la práctica:

1. Para OpenGL en un terminal, se utilizará "glxgears":
[1]. Abrir un terminal e ingresar el comando:
  1. mangohud glxgears

2. Para Vulkan en un terminal, se utilizará "vkcube":
[1]. Abrir un terminal e ingresar el comando:
  1. MANGOHUD=1 vkcube
 
 3. Para OpenGL en Steam, se utilizará Tomb Raider (2013):
[1]. Abrir Steam.
[2]. Ingresar a la "Propiedades" del juego.
[3]. Clic en "DEFINIR PARÁMETROS DE LANZAMIENTO"
[4]. Ingresar el siguiente prefijo:
  1. mangohud %command%
[5]. Iniciar la aplicación.
 
4. Para Vulkan en Steam, se utilizará (DXVK) Resident Evil 2 Remake:
[1]. Abrir Steam.
[2]. Ingresar a la "Propiedades" del juego.
[3]. Clic en "DEFINIR PARÁMETROS DE LANZAMIENTO"
[4]. Ingresar cualquiera de los siguientes prefijos:
  1. mangohud %command%
  2. MANGOHUD=1 %command%
 [5]. Iniciar la aplicación.

VIII. ¿Cómo usar MangoHud en el GPU dedicado (dGPU / gráfica dedicada)?
La respuesta es, agregando un prefijo de acuerdo al tipo de driver/implementación instalado. La siguiente tabla muestra el resumen de los prefijos a ser aplicados:

API

PRIME (AMD y Nvidia)

Nvidia-Prime On-Demand

(Prime Render Offload)

Nvidia Prime Performance

OpenGL

DRI_PRIME=1

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia

-

Vulkan

DRI_PRIME=1

__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only

-

Ahora, vamos a la práctica, usaré Prime Render Offload (On-Demand) y combinaré tanto el prefijo para llamar a MangoHud como para usar la gráfica dedicada:

1. Para OpenGL en un terminal, se utilizará "glxgears":
[1]. Abrir un terminal e ingresar el comando:
  1. mangohud __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears

Monitorizando glxgears (OpenGL) con MangoHud.
 2. Para Vulkan en un terminal, se utilizará "vkcube":
[1]. Abrir un terminal e ingresar el comando:
  1. MANGOHUD=1 __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only vkcube
 
Monitorizando vkcube (Vulkan) con MangoHud.
 3. Para OpenGL en Steam, se utilizará Tomb Raider (2013):
[1]. Abrir Steam.
[2]. Ingresar a la "Propiedades" del juego.
[3]. Clic en "DEFINIR PARÁMETROS DE LANZAMIENTO"
[4]. Ingresar el siguiente prefijo:
  1. mangohud __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia %command%
 
Configurando Tomb Raider 2013 (OpenGL)
Monitorizando Tomb Raider 2013 (OpenGL) con MangoHud
4. Para Vulkan (DXVK) en Steam, se utilizará Resident Evil 2 Remake:
[1]. Abrir Steam.
[2]. Ingresar a la "Propiedades" del juego.
[3]. Clic en "DEFINIR PARÁMETROS DE LANZAMIENTO"
[4]. Ingresar cualquiera de los siguientes prefijos:
  1. mangohud __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only %command%
  2. MANGOHUD=1 __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only %command%
Configurando Resident Evil 2 Remake (DXVK) con MangoHud
Monitorizando Resident Evil 2 Remake (DXVK) con MangoHud

IX. ¿Cómo configurar MangoHud sin GOverlay?
Por defecto, MangoHud nos permite visualizar parámetros básicos. En el repositorio GitHub MangoHud, se nos muestra una tabla con muchos parámetros de personalización que deben ser activados en un archivo de texto; dicha tabla es muy fácil de entender y como ejemplo, les muestro el archivo de texto que utilizo:

  1. ### Limit the application FPS
  2. fps_limit=60

  3. ### Display the current CPU information
  4. cpu_stats
  5. cpu_temp
  6. # cpu_text = "CPU"

  7. ### Display the current GPU information
  8. gpu_stats
  9. gpu_temp
  10. gpu_core_clock
  11. gpu_mem_clock
  12. gpu_name
  13. # gpu_power
  14. # gpu_text = "GPU"
  15. vulkan_driver
  16. engine_version

  17. ### Display loaded MangoHud architecture
  18. arch

  19. ### Display the frametime line graph
  20. frame_timing
  21. #histogram

  22. ### Change the hud font size (default is 24)
  23. font_size=22
  24. # font_scale_media_player = 0.55

  25. ### Change the hud position (default is top-left)
  26. position=top-left

  27. ### Display the current CPU load & frequency for each core
  28. # core_load

  29. ### Display system ram / vram usage
  30. ram
  31. vram

  32. ### Hud transparency / alpha
  33. background_alpha=0.5
  34. # alpha=

  35. ### Change toggle keybinds for the hud & logging
  36. toggle_hud=Shift_L+1
  37. #toggle_logging=Shift_L+F2
  38. reload_cfg=Shift_L+2
NOTA: El símbolo "#", al inicio de cada línea, significa que dicha línea es un comentario y todo lo escrito ahí será ignorado por MangoHud.
NOTA: Según la línea 46, la combinación de teclas [Shift_Izquierda]+[1] activará/desactivará el overlay. Es posible asignar la combinación de teclas que deseen a la variable "toggle_hud".
 
El código mostrado deberá estar contenido en un archivo con el nombre "MangoHud.conf" en la siguiente ruta:
  1. /home/usuario/.config/MangoHud/
Donde:
usuario: Es el nombre del usuario local, en mi caso es "nestor" (sin las comillas).

De esta manera, solo deberemos modificar este archivo cada vez que deseemos cambiar la apariencia de los parámetros mostrados por MangoHud.
NOTA: Existen otras formas de configurar MangoHud, pero esta es la más fácil.
 
El resultado de usar este archivo, se muestra en la siguiente figura y video:
Monitorizando Resident Evil 2 Remake (DXVK) con MangoHud personalizado.
Resident Evil 2 Remake - Demo | Proton 5.9-GE-2-MF | Linux Kubuntu 18.04 LTS


X. ¿Cómo instalar GOverlay?
GOverlay, en su estado actual no es instalable, solo se puede utilizar mediante un ejecutable que puede ser obtenido mediante compilación o directamente desde el repositorio GitHub; en otras palabras, es un programa portable. No recomiendo la compilación (a no ser que quieran manipular el código fuente), simplemente sigan los "Preparativos" y luego procedan con el "Método 02".
NOTA: Un requisito es instalar vkBasalt, pero no es necesario si únicamente desean monitorizar los parámetros a través del overlay.
NOTA: Es obligatorio instalar MangoHud.

Preparativos:
[1]. Abrir un terminal.
[2]. Ingresar el siguiente comando y proceder a su instalación:
  1. sudo apt install mesa-demos vulkan-tools meson
[3]. Clonar el repositorio "vkBasalt" e ingresar a la carpeta clonada:
  1. git clone https://github.com/DadSchoorse/vkBasalt.git
  2. cd vkBasalt
[4]. Iniciar la compilación:
  1. meson --buildtype=release --prefix=/usr builddir
  2. ninja -C builddir install
NOTA: Durante el proceso de compilación se pedirá ingresar la contraseña de administrador.

1. Método 01 (Compilación):
[1]. Abrir un terminal.
[2]. Ingresar el siguiente comando y proceder a su instalación:
  1. sudo apt install lazarus
[3]. Clonar el repositorio "GOverlay" e ingresar a la carpeta clonada:
  1. git clone https://github.com/benjamimgois/goverlay.git
  2. cd goverlay
[4]. Iniciar la compilación:
  1. lazbuild -B goverlay.lpi
[5]. Iniciar el ejecutable generado:
  1. ./goverlay

2. Método 02 (Descargar y usar el ejecutable portable):
[1]. Ingresar al siguiente enlace:
[2]. Descargar el archivo ".xz" correspondiente a la última versión (o la de su preferencia). En este ejemplo se descarga el archivo:
  1. goverlay_0_3_8.tar.xz
[3]. Ingresar a la carpeta donde se encuentra el archivo descargado y extraer su contenido de forma gráfica o mediante el comando:
  1. tar -zxvf goverlay*.tar.xy
[4]. Abrir el ejecutable mediante doble clic o el comando:
  1. ./goverlay
NOTA: Para extraer y abrir el ejecutable mediante un terminal, se deberá usar la ruta del archivo de interés (comando "cd").

3. Creación de lanzador (acceso directo):
Como mencioné anteriormente, GOverlay no se encuentra realmente instalado, solo se generó un ejecutable portable sin ninguna asociación con el sistema operativo. Por lo tanto, propongo crear su lanzador mediante el siguiente procedimiento:
NOTA: Los pasos son para una distribución con interfaz gráfica KDE Plasma. El procedimiento es similar con Gnome.

[1]. Clic derecho en el lanzador de aplicaciones y clic en "Editar aplicaciones".
Iniciando la creación de un lanzador.
[2]. Localizar en qué categoría crear el lanzador y clic en "Nuevo elemento..." (en este ejemplo, uso la categoría "Gráficos").
Creando el lanzador de GOverlay.
[3]. Agregar la información de interés: "Nombre", "Icono" y "Orden" (también llamado "Acción"). "Orden" corresponde a la localización del ejecutable, en mi caso es:
  1. /home/nestor/.nestor-utils/Programas/goverlay
Propiedades del lanzador.
[4]. Clic en "Guardar"
[5]. Buscar la aplicación en el lanzador.
Ahora, GOverlay cuenta con su lanzador.

XI. ¿Cómo usar MangoHud con GOverlay?
La respuesta es: abriendo el ejecutable y seleccionando las opciones de interés.
La forma de trabajar de GOverlay es creando el archivo de texto "MangoHud.conf" en la ruta "/home/usuario/.config/MangoHud/"; de esta forma, no es necesaria la intervención en el archivo de texto y por lo tanto dependeremos exclusivamente de la interfaz gráfica.

El procedimiento es:
[1]. Abrir GOverlay.
[2]. Configurar y seleccionar las opciones de interés, por ejemplo: límite de FPS, sincronización vertical para OpenGL/Vulkan, combinación de teclas para activar/desactivar el HUD, activar/desactivar los distintos parámetros de interés a ser monitoreados, tamaño de fuente, color de fuente, etc.
Configurando MangoHud a través de GOverlay.
[3]. Clic en "Save".
[4 - Opcional]. Clic en "Run" para mostrar la previsualización en "glxgears" (OpenGL) y "vkcube" (Vulkan).
Vista previa del overlay.
[5]. Iniciar MangoHud normalmente para cada aplicación tal como se mostró en el capítulo VIII.

XII. ¿Es posible usar MangoHud sin la necesidad de agregar "mangohud" o "MANGOHUD=1" como prefijo para cada aplicación?
La respuesta es, depende.
Si la aplicación es Vulkan/DXVK es posible.
Si la aplicación es OpenGL, el prefijo es obligatorio para cada aplicación.

Para la activación en Vulkan, proceder de la siguiente manera:
[1]. Ingresar a GOverlay.
[2]. En la pestaña "MangoHud", activar la opción "Global Enable".
"Global Enable" se encuentra desactivado por defecto.
[3]. Reiniciar el equipo para que los cambios surtan efecto.
NOTA: Cerrar y volver a abrir sesión tiene el mismo efecto que reiniciar, solo que este último asegura la compatibilidad. Cerrar sesión es exclusivo si desean ganar tiempo.
Y es todo en esta publicación, ahora es posible la monitorización de parámetros del GPU con MangoHud y GOverlay.
 
REFERENCIAS

Palabras finales
Hola a todos, aquí quantum-phy (Néstor).
Debo decir wow, si que pasó mucho tiempo desde la última publicación (siempre digo lo mismo xD).
También debo decir: wow, MangoHud y GOverlay son increíbles.
 
Muy bien, empecemos con las críticas:
MangoHud es una gran herramienta, sobre todo cuando se trata de personalización, incluso MSI Afterburner es difícil de personalizar de la misma manera (vamos, que se puede, pero cuesta más, lo digo por experiencia).
Todo parece color de rosa al usar MangoHud, pero nada es perfecto, resulta que no funciona adecuadamente con gráficas antiguas que utilizan el driver "radeon", tal como es el caso de mi Radeon HD 7670M perteneciente al portátil HP G4-2082la. Intenté de todo, modifiqué el código fuente, compilé y nada, no hay forma (tampoco soy un experto programando). Por este motivo, no pude realizar la prueba con dicho portátil, aunque el lado bueno es que esta es una evidencia de la falta de soporte (GALLIUM_HUD si funciona con "radeon"). También, debo decir que MangoHud funciona con "radeon" pero de manera limitada (No se muestran parámetros como carga de GPU, temperatura de GPU, VRAM, etc.).
Ok, pero ¿Porqué dejar de lado el soporte para "radeon"? Fácil y sencillo, el futuro en GNU/Linux es Vulkan, y el driver "radeon" no soporta Vulkan. ¿Cómo se esto?, porque tengo un PC de escritorio con un APU que soporta Vulkan en Windows; en cambio, en Linux no soporta Vulkan con "radeon", así que al utilizar "amdgpu" se activó el soporte y pude realizar las pruebas con MangoHud en un APU (además de probar juegos con DXVK).
 
Vamos con GOverlay, el diseño de la interfaz gráfica es fenomenal. Pero, el problema más grave (de momento) es la optimización al guardar el archivo "MangoHud.conf". Resulta que, por cada parámetro activado se guarda el archivo (si tenemos 10 parámetros, se va a guardar 10 veces) en lugar de realizarlo 1 sola vez, esto explica el "cuelgue / tiempo de reacción" al dar clic en el botón "Save". Curiosamente, no ocurre en la versión release-portable (al menos en la 0.3.8).
Otro problema es la limitación de escoger una combinación de teclas para activar/desactivar el HUD y el Logging; este es el principal motivo por el cual no uso GOverlay. Para solucionarlo, modifiqué el código fuente y agregué la combinación de teclas de mi preferencia [Shift_L]+[1], compilé y listo, se encuentra como una opción seleccionable, pero el problema del "cuelgue / tiempo de reacción" persiste (para este último, se debe examinar más código y es posible que en el futuro se solucione).

Entonces, ¿Qué hacer si tengo el driver "radeon" y no existe posibilidad de usar "amdgpu"? La respuesta es, usar GALLIUM_HUD. GALLIUM_HUD no funciona con Vulkan y "radeon" tampoco, así que no hay mucho por lo que preocuparse.

Finalmente, debo decir que esta es una de las publicaciones más grandes que escribí y de las que más tiempo me demandó. Si llegaron hasta aquí, ¡Mucha gracias!

Espero que esta info 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