Cómo mostrar el contador de FPS en los juegos de Linux

Cómo mostrar el contador de FPS en los juegos de Linux
Linux Gaming obtuvo un impulso importante cuando Valve anunció el soporte de Linux para Steam Client y sus juegos en 2012. Desde entonces, muchos juegos AAA e independientes han llegado a Linux y la cantidad de usuarios que juegan en Linux han aumentado considerablemente.

Con el crecimiento de Linux Gaming, muchos usuarios comenzaron a buscar formas adecuadas de mostrar "marcos por segundo" (FPS) contador como una superposición en la ejecución de juegos de Linux. Un contador de FPS ayuda a ajustar el rendimiento de los juegos de ejecución, así como en la evaluación comparativa de la capacidad general de una PC para jugar a diferentes resoluciones.

Desafortunadamente, no hay una sola forma unificada de mostrar el contador de FPS en todos los juegos de Linux que es independiente de las tecnologías subyacentes en las que se está ejecutando un juego. Diferentes renderistas y API tienen diferentes formas de mostrar el contador de FPS. Esta guía explicará varios métodos que se pueden usar para mostrar un contador de FPS en los juegos de Linux.

Método 1 (Steam)

Notas de compatibilidad:

  • Funciona con OpenGL y Vulkan Games.
  • Funciona con juegos nativos y juegos de protones. Proton es una capa de compatibilidad incluida en Steam para ejecutar juegos de Windows en Linux. Se basa en proyectos de código abierto de vino, DXVK y D9VK con parches adicionales y nuevas características agregadas por Valve/Wine Developers.
  • Funciona con juegos comprados en juegos de Steam o de terceros agregados a Steam por el usuario.
  • Probado trabajando con tarjetas gráficas integradas Intel y AMD.
  • No probado con tarjetas nvidia ya que no tengo una tarjeta nvidia. Pero de acuerdo con los foros de Steam Community, el mostrador de FPS incorporado funciona bien en las tarjetas Nvidia.

Steam para Linux incluye un contador de FPS incorporado que se puede alternar desde la configuración. Esta es probablemente una de las opciones más compatibles que funciona con la mayoría de los juegos de Linux. Sin embargo, tuve algunos problemas con los juegos de Unity Engine no mostrando el mostrador de FPS incorporado. Esta opción también requiere que tenga una cuenta de vapor y un cliente de Steam instalado en su sistema.

Steam incluso te permite agregar juegos que no se compran desde Steam a la biblioteca de juegos y el mostrador de FPS incorporado también funciona en estos juegos. Para agregar un juego no Steam, haga clic en "Juegos" y luego haga clic en "Agregar un juego no acelerado a mi biblioteca", como se muestra en la captura de pantalla a continuación:

Explore la ubicación de sus archivos de juego y luego altere la opción "Todos los archivos" en la parte inferior.

Seleccione el ejecutable del juego y luego haga clic en "Agregar programas seleccionados" como se muestra en la captura de pantalla a continuación:

Si desea ejecutar un juego de Windows Only en la capa de compatibilidad de protones de Steam, tendrá que habilitar una opción adicional en las propiedades del juego.

He agregado ejecutable Supertuxkart en la biblioteca de Steam, y el contador FPS también funciona bien aquí. Tenga en cuenta que cualquier juego de terceros agregado a la biblioteca Steam no debe tener ningún espacio en la ruta de ubicación de su archivo.

Método 2 (libgl)

Notas de compatibilidad:

  • Funciona solo con los juegos de OpenGL.
  • Funciona con juegos nativos y juegos de vino.
  • Probado de trabajo con tarjetas gráficas integradas Intel y AMD con controladores de código abierto.
  • No probado con tarjetas nvidia ya que no tengo una tarjeta nvidia. Sin embargo, debería funcionar con las GPU de NVIDIA con controladores de código abierto.

Libgl es una biblioteca de Mesa que expone las API de OpenGL a aplicaciones y juegos y se incluye en casi todas las distribuciones de Linux de forma predeterminada. Usando esta biblioteca y otro paquete que crea un HUD en la pantalla visible, mostraremos un mostrador de FPS en los juegos de Linux. Ejecute el siguiente comando para instalar el paquete requerido:

sudo apt install xosd-bin

Para mostrar el contador de FPS en los juegos nativos de Linux, use el comando a continuación después de reemplazar/ruta/a/ejecutable con su propio juego. Puede saber más sobre todas las opciones de OSD-CAT desde aquí.

Libgl_show_fps = 1/ruta/a/ejecutable 2> & 1 | Tee /dev /stderr | sed -u -n -e '/^libgl: fps =/s/.* \ ((^]* \) = /\ 1 /; P '| OSD_CAT --lines = 1 - -Color = Yellow --outline = 1 - -Pos = Top --align = izquierda

Para mostrar el contador de FPS en los juegos de Windows que se ejecutan en Linux a través del vino, use el comando a continuación después de reemplazar/ruta/a/ejecutable con su propio juego.

WinedeBug = FPS Wine/Path/to/Ejecutable 2> & 1 | Tee /dev /stderr | sed -u -n -e '/ traza/ s/.*aprox // p '| OSD_CAT --lines = 1 - -Color = Yellow --outline = 1 -Pos = Top --align = Center

Si está utilizando un prefijo de vino, el comando sería (reemplazar/ruta/a/wine/prefijo y/ruta/a/ejecutable):

WinedeBug = fps wineprefix =/rath/to/wine/prefix wine/rath/to/ejecutable 2> & 1 | Tee /dev /stderr | sed -u -n -e '/ traza/ s/.*aprox // p '| OSD_CAT --lines = 1 - -Color = Yellow --outline = 1 -Pos = Top --align = Center

Este método tiene una pequeña limitación. Si bien puede personalizar el HUD OSD-CAT, permanece en una posición fija en el área de visualización sin tener en cuenta la geometría de la ventana del juego. En la captura de pantalla de arriba, el contador FPS se muestra sobre la ventana del juego, no dentro de ella. Los juegos que se ejecutan en pantalla completa no se ven afectados por esto.

Método 3 (Gallium3d)

Notas de compatibilidad:

  • Funciona solo con los juegos de OpenGL.
  • Funciona con juegos nativos y juegos de vino.
  • Probado trabajando con tarjetas gráficas AMD con controladores de código abierto.
  • El soporte de Gallium3d para Intel está en curso, por lo que aún no funciona.
  • No probado con tarjetas nvidia ya que no tengo una tarjeta nvidia. Dado que el controlador de código abierto NVIDIA está habilitado Gallium3D, este método debería funcionar.

Gallium3d es una API que facilita desarrollar controladores para tarjetas gráficas al proporcionar un conjunto de bibliotecas e interfaces estándar. Los conductores de código abierto AMD y Nvidia se construyen en Gallium3d.

Para mostrar el contador de FPS en los juegos nativos de Linux, use el comando a continuación después de reemplazar/ruta/a/ejecutable con su propio juego

Gallium_hud = "Simple, FPS"/Path/to/Ejecutable

Para mostrar el contador de FPS en los juegos de Windows que se ejecutan en Linux a través del vino, use el comando a continuación después de reemplazar/ruta/a/ejecutable con su propio juego.

Gallium_hud = "simple, fps" vino/ruta/a/ejecutable

Si está utilizando un prefijo de vino, el comando sería (reemplazar/ruta/a/wine/prefijo y/ruta/a/ejecutable):

Gallium_hud = "Simple, FPS" Wineprefix =/Path/To/Wine/Prefix Wine/Path/To/Ejecutable

En la captura de pantalla anterior, estoy usando una variable Gallium_hud personalizada que muestra temperaturas de GPU y CPU también. Este comando personalizado es diferente para diferentes configuraciones de PC. Para leer más sobre todas las opciones de personalización, ejecute comandos:

sudo apto install mesa-uss
Gallium_hud = Ayuda GlxGears

Solo como referencia, aquí está el comando personalizado que utilicé en las capturas de pantalla anteriores:

Gallium_hud = "simple, fps; sensores_temp_cu-amdgpu-pci-1c00.TEMP1; Sensors_temp_cu-k10temp-pci-00c3.TDIE "/Path/TO/Ejecutable

Método 4 (superposición de Mesa Vulkan)

Notas de compatibilidad:

  • Funciona solo con los juegos de Vulkan.
  • Funciona con Ubuntu 19.Más de 10+ y otras distribuciones tienen la última mesa con Vulkan Superla.
  • Funciona con juegos nativos y juegos de protones de Steam con soporte DXVK/D9VK.
  • Funciona con juegos de vinos corriendo con DXVK/D9VK LIBS.
  • Estado de trabajo desconocido para VKD3D de Wine. Dado que esta es una capa Vulkan, debería funcionar con cualquier cosa siempre que Mesa esté construida con VK_LAYER_MESA_OVERLAY Support.
  • Probado trabajando con tarjetas gráficas AMD y tarjetas Intel integradas con controladores de código abierto.
  • No probado con tarjetas nvidia ya que no tengo una tarjeta nvidia. Dado que esta es una capa Vulkan, debería funcionar con cualquier cosa siempre que Mesa esté construida con VK_LAYER_MESA_OVERLAY Support.

Mesa Vulkan Overlay es una nueva capa de Vulkan agregada a las compilaciones recientes de Mesa. Muestra varias información sobre la aplicación en ejecución utilizando una superposición.

Para mostrar el contador de FPS en los juegos nativos de Linux, use el comando a continuación después de reemplazar/ruta/a/ejecutable con su propio juego

VK_INSTANCE_LAYERS = VK_LAYER_MESA_OVERLAY VK_LAYER_MESA_OVERLAY_CONFIG = POSICIÓN = TOP-LEFT/PATH/TO/Ejecutable

Para mostrar el contador de FPS en los juegos de Windows que se ejecutan en Linux a través de Wine y DXVK, use el comando a continuación después de reemplazar/ruta/a/ejecutable con su propio juego de ejecutable:

VK_INSTANCE_LAYERS = VK_LAYER_MESA_OVERLAY VK_LAYER_MESA_OVERLAY_CONFIG = Position = Top-left Wine/Path/TO/Ejecutable

Si está utilizando un prefijo de vino, el comando sería (reemplazar/ruta/a/wine/prefijo y/ruta/a/ejecutable):

Vk_instance_layers = vk_layer_mesa_overlay vk_layer_mesa_overlay_config = posicion = top-left wineprefix =/path/to/wine/prefix wine/rath/to/ejecutable

Método 5 (DXVK HUD)

Notas de compatibilidad:

  • Funciona solo con Vulkan Games corriendo en Wine and Proton con DXVK/D9VK Libs.
  • Probado trabajando con AMD y tarjetas gráficas Intel integradas con controladores de código abierto.
  • No probado con tarjetas nvidia ya que no tengo una tarjeta nvidia. El código fuente tiene compromisos que mencionan el soporte de NVIDIA, por lo que este método debería funcionar.

DXVK proporciona una capa de traducción basada en Vulkan para D3D10 y D3D11, lo que permite a los usuarios jugar juegos Direct3D 10/11 en Linux. D9VK utiliza el backend de DXVK para proporcionar una implementación adicional de Direct3D9 que se puede usar para jugar juegos construidos en D3D9.

Para mostrar el contador FPS en los juegos DXVK que se ejecutan en Linux a través del vino, use el comando a continuación después de reemplazar/ruta/a/ejecutable con su propio juego de ejecutable:

Dxvk_hud = fps wine/rath/to/ejecutable

Si está utilizando un prefijo de vino, el comando sería (reemplazar/ruta/a/wine/prefijo y/ruta/a/ejecutable):

Dxvk_hud = fps wineprefix =/path/to/wine/prefix wine/rath/to/ejecutable

Esto marca el final de esta publicación. Para concluir, mencionaría un pequeño detalle omitido de arriba. Todos los métodos que no se explican anteriormente también funcionarán para los juegos de Steam. Tiene que reemplazar "/ruta/a/ejecutable" o "vino/ruta/a/ejecutable" o "wineprefix =/rath/to/wine/prefix wine/rath/to/ejecutable" con "%command%" en el Los mismos comandos utilizados arriba. Simplemente agregue el comando completo para iniciar opciones en las propiedades del juego dentro de la aplicación Steam, como se muestra en la captura de pantalla a continuación:

Nueva actualización: Método 6 (Mangohud)

Mangohud es un mostrador de FPS universal para Linux que muestra marcos en tiempo real por segundo para casi todos los juegos que pueden ejecutarse en Linux. Funciona con juegos nativos y basados ​​en vino y funciona bien con OpenGL y Vulkan Renderers. Además de FPS, muestra cargas de CPU y GPU también. Aquí hay una pequeña animación que muestra cómo se parece a una superposición (créditos GIF):

MangoHud se ha integrado en la consola de juegos de mano de Valve Linux llamada "Steam Deck" (lanzada en 2022). Está disponible en repositorios predeterminados de la última versión de Ubuntu, por lo que puede instalarlo ejecutando el comando a continuación:

$ sudo apt install mangohud

Puede instalar la última versión en Ubuntu y otras distribuciones de Linux descargando su nueva construcción desde aquí. Una vez descargado, extraiga el archivo y ejecute el siguiente comando para instalarlo:

ps ./mangohud-setup.Instalar SH

Ahora puede usar MangoHud con cualquier juego de Linux ejecutando un comando en el siguiente formato (reemplace la ruta del archivo):

$ Mangohud/Path/To/Game/Ejecutable/File

Si está ejecutando un juego desde el cliente Steam, acceda al cuadro de diálogo de propiedades del juego haciendo clic derecho en un título de juego instalado. En el campo "Opciones de lanzamiento", agregue el siguiente comando para habilitar MangoHud para ese juego:

$ MANGOHUD %Comando %

Por defecto, MangoHud muestra métricas de juego detalladas, como se muestra en la animación anterior. Si desea personalizar el tamaño y el diseño de la superposición, puede ajustar su extenso archivo de configuración siguiendo las instrucciones oficiales disponibles aquí.