Como mostrar o contador de FPS em jogos Linux

Como mostrar o contador de FPS em jogos Linux
O Linux Gaming recebeu um grande impulso quando a Valve anunciou o suporte ao Linux para o Steam Client e seus jogos em 2012. Desde então, muitos jogos AAA e Indie foram para o Linux e o número de usuários que o jogo no Linux aumentaram consideravelmente.

Com o crescimento dos jogos do Linux, muitos usuários começaram a procurar maneiras adequadas de exibir "quadros por segundo" (FPS) Contador como uma sobreposição na execução de jogos do Linux. Um contador de FPS ajuda a ajustar o desempenho dos jogos de corrida, bem como em benchmarking, a capacidade geral de um PC de jogar em diferentes resoluções.

Infelizmente, não existe uma maneira unificada de exibir contador de fps em todos os jogos do Linux, independentemente das tecnologias subjacentes em que um jogo está sendo executado. Diferentes renderizadores e APIs têm maneiras diferentes de exibir contador de fps. Este guia explicará vários métodos que podem ser usados ​​para exibir um contador de FPS em jogos Linux.

Método 1 (vapor)

Notas de compatibilidade:

  • Trabalha com jogos OpenGL e Vulkan.
  • Trabalha com jogos nativos e jogos de prótons. Proton é uma camada de compatibilidade incluída no Steam para executar jogos do Windows no Linux. É baseado em projetos de vinhos, dxvk e d9vk de código aberto com patches adicionais e novos recursos adicionados por desenvolvedores de válvulas/vinhos.
  • Trabalhos com jogos comprados no Steam ou Games de terceiros adicionados ao Steam pelo usuário.
  • Testado trabalhando com placas de gráficos Intel e AMD integradas.
  • Não testado com cartões NVIDIA, pois eu não possuo um cartão NVIDIA. Mas, de acordo com os fóruns da comunidade Steam, o contador FPS embutido funciona bem nos cartões NVIDIA.

O vapor para Linux inclui um contador de FPS embutido que pode ser alternado a partir de configurações. Esta é provavelmente uma das opções mais compatíveis que funciona com a maioria dos jogos do Linux. No entanto, tive alguns problemas com os jogos de motores da Unity não exibindo o contador de FPS embutido. Esta opção também exige que você tenha uma conta de vapor e um cliente de vapor instalado em seu sistema.

O Steam até permite que você adicione jogos não comprados do Steam à Biblioteca de Jogos e o contador de FPS embutido também nesses jogos. Para adicionar um jogo não a vapor, clique em "Games" e clique em "Adicionar um jogo ininterrupto à minha biblioteca", como mostrado na captura de tela abaixo:

Navegue até a localização dos seus arquivos de jogo e depois alterne a opção "Todos os arquivos" na parte inferior.

Selecione o jogo executável e clique em "Adicionar programas selecionados", como mostrado na captura de tela abaixo:

Se você deseja executar um jogo apenas com Windows na camada de compatibilidade de prótons do Steam, você precisará ativar uma opção adicional nas propriedades do jogo.

Eu adicionei o executável SuperTuxkart na biblioteca Steam, e o contador FPS está funcionando bem aqui também. Observe que quaisquer jogos de terceiros adicionados à Steam Library não devem ter espaços no caminho da localização do arquivo.

Método 2 (libgl)

Notas de compatibilidade:

  • Trabalha apenas com jogos OpenGL.
  • Trabalha com jogos nativos e jogos de vinho.
  • Testado trabalhando com placas de gráficos Intel e AMD integradas com drivers de código aberto.
  • Não testado com cartões NVIDIA, pois eu não possuo um cartão NVIDIA. No entanto, deve funcionar com as GPUs NVIDIA com drivers de código aberto.

Libgl é uma biblioteca Mesa que expõe APIs OpenGL a aplicativos e jogos e está incluído em quase todas as distribuições Linux por padrão. Usando esta biblioteca e outro pacote que cria um HUD em exibição visível, mostraremos um contador de FPS em jogos Linux. Execute o seguinte comando para instalar o pacote necessário:

sudo apt install xosd-bin

Para mostrar o contador de FPS nos jogos nativos do Linux, use o comando abaixo após substituir/caminho/para/executável por seu próprio jogo executável caminho. Você pode saber mais sobre todas as opções de OSD-CAT daqui.

Libgl_show_fps = 1/caminho/para/executável 2> & 1 | Tee /dev /stderr | sed -u -n -e '/^libgl: fps =/s/.* \ ([^]* \) = /\ 1 /; p '| osd_cat -lines = 1 - -color = amarelo - -outline = 1 --pos = top --Align = esquerda

Para mostrar o contador do FPS nos jogos do Windows em execução no Linux através do vinho, use o comando abaixo após substituir/caminho/para/executável por seu próprio jogo executável caminho.

WiedeBug = FPS Wine/Path/para/Executável 2> & 1 | Tee /dev /stderr | sed -u -n -e '/ trace/ s/.*aprox // p '| osd_cat -lines = 1 - -cor = amarelo -outline = 1 --pos = top --align = centro

Se você estiver usando um prefixo de vinho, o comando seria (substituir/path/to/wine/prefix e/path/to/executável):

Winedebug = fps wineprefix =/path/to/wine/prefixi wine/path/to/executável 2> & 1 | Tee /dev /stderr | sed -u -n -e '/ trace/ s/.*aprox // p '| osd_cat -lines = 1 - -cor = amarelo -outline = 1 --pos = top --align = centro

Este método tem uma pequena limitação. Embora você possa personalizar o HUD OSD-CAT, ele permanece em uma posição fixa na área de exibição sem levar em consideração a geometria da janela do jogo. Na captura de tela acima, o contador FPS é mostrado acima da janela do jogo, não dentro dele. Jogos em execução em tela cheia não são afetados por isso.

Método 3 (Gallium3D)

Notas de compatibilidade:

  • Trabalha apenas com jogos OpenGL.
  • Trabalha com jogos nativos e jogos de vinho.
  • Testado trabalhando com placas gráficas AMD com drivers de código aberto.
  • O suporte ao Gallium3D para a Intel está em andamento, então ainda não está funcionando.
  • Não testado com cartões NVIDIA, pois eu não possuo um cartão NVIDIA. Como o driver de código aberto da NVIDIA está ativado pelo Gallium3D, esse método deve funcionar.

Gallium3D é uma API que facilita o desenvolvimento de drivers para placas gráficas, fornecendo um conjunto de bibliotecas e interfaces padrão. Os drivers de código aberto da AMD e NVIDIA são construídos em Gallium3D.

Para mostrar o contador de FPS nos jogos nativos do Linux, use o comando abaixo depois de substituir/caminho/para/executável pelo seu próprio caminho executável: caminho:

Gallium_hud = "simples, fps"/path/to/executável

Para mostrar o contador do FPS nos jogos do Windows em execução no Linux através do vinho, use o comando abaixo após substituir/caminho/para/executável por seu próprio jogo executável caminho.

Gallium_hud = "simples, fps" vinho/caminho/para/executável

Se você estiver usando um prefixo de vinho, o comando seria (substituir/path/to/wine/prefix e/path/to/executável):

Gallium_hud = "simples, fps" wineprefix =/path/to/wine/prefix wine/path/to/executável

Na captura de tela acima, estou usando uma variável Gallium_hud personalizada que mostra temperaturas de GPU e CPU também. Este comando personalizado é diferente para diferentes configurações de PC. Para ler mais sobre todas as opções de personalização, execute comandos:

sudo apt install mesa-utils
Gallium_hud = ajuda GlxGears

Apenas para referência, aqui está o comando personalizado que usei nas capturas de tela acima:

Gallium_hud = "simples, fps; sensores_temp_cu-amdgpu-pci-1c00.temp1; sensores_temp_cu-k10temp-pci-00c3.Tdie "/path/to/executável

Método 4 (Sobreposição de Mesa Vulkan)

Notas de compatibilidade:

  • Trabalha apenas com jogos vulkan.
  • Trabalha com o Ubuntu 19.10+ somente e outras distribuições com o Mesa mais recente com camada de sobreposição de vulkan.
  • Funciona com jogos nativos e jogos de prótons Steam em execução com suporte DXVK/D9VK.
  • Trabalha com jogos de vinho correndo com DXVK/D9VK LIBS.
  • Status de trabalho desconhecido para o vkd3d do Wine. Como essa é uma camada vulkan, ele deve funcionar com qualquer coisa enquanto a Mesa for construída com o suporte VK_LAYER_MESA_OVERLAY.
  • Testado trabalhando com placas gráficas AMD e cartões Intel integrados com drivers de código aberto.
  • Não testado com cartões NVIDIA, pois eu não possuo um cartão NVIDIA. Como essa é uma camada vulkan, ele deve funcionar com qualquer coisa enquanto a Mesa for construída com o suporte VK_LAYER_MESA_OVERLAY.

Mesa Vulkan Sobreposição é uma nova camada de vulkan adicionada a construções recentes de Mesa. Ele exibe várias informações sobre o aplicativo em execução usando uma sobreposição.

Para mostrar o contador de FPS nos jogos nativos do Linux, use o comando abaixo depois de substituir/caminho/para/executável pelo seu próprio caminho executável: caminho:

Vk_instance_layers = VK_LAYER_MESA_OVERLAY VK_LAYER_MESA_OVERLAY_CONFIG = POSICIONE = TOP-LEFT/PATH/TO/TO

Para mostrar o contador do FPS nos jogos do Windows em execução no Linux através do Wine e DXVK, use o comando abaixo após substituir/caminho/para/executável pelo seu próprio caminho executivo de jogo:

Vk_instance_layers = VK_LAYER_MESA_OVERLAY VK_LAYER_MESA_OVERLAY_CONFIG = POSICIONE = WINE/PATH/PATH/PATH/PATH/TO/executável

Se você estiver usando um prefixo de vinho, o comando seria (substituir/path/to/wine/prefix e/path/to/executável):

Vk_instance_layers = VK_LAYER_MESA_OVERLAY VK_LAYER_MESA_OVERLAY_CONFIG = POSIÇÃO = Wineprefix de Top-Left =/Path/To/Wine/Prefix Wine/Path/to/Executável

Método 5 (DXVK HUD)

Notas de compatibilidade:

  • Funciona apenas com jogos Vulkan em WINE e PROTON com DXVK/D9VK LIBS.
  • Testado trabalhando com AMD e cartões gráficos Intel integrados com drivers de código aberto.
  • Não testado com cartões NVIDIA, pois eu não possuo um cartão NVIDIA. O código -fonte tem comete que mencionam o suporte da NVIDIA para que esse método funcione.

O DXVK fornece uma camada de tradução baseada em Vulkan para D3D10 e D3D11, permitindo que os usuários joguem jogos diretos de 10/11 no Linux. O D9VK usa o back -end DXVK para fornecer uma implementação direta 3D9 adicional que pode ser usada para jogar jogos construídos no D3D9.

Para mostrar o contador do FPS nos jogos DXVK em Linux através do vinho, use o comando abaixo após substituir/caminho/para/executável pelo seu próprio caminho executável:

Dxvk_hud = FPS Wine/Path/para/executável

Se você estiver usando um prefixo de vinho, o comando seria (substituir/path/to/wine/prefix e/path/to/executável):

Dxvk_hud = fps wineprefix =/path/to/wine/prefix wine/path/to/executável

Isso marca o final deste post. Para concluir, eu mencionaria um pequeno detalhe omitido de cima. Todos os métodos não-lados explicados acima também funcionarão para jogos a vapor. Você deve substituir "/path/to/executável" ou "wine/path/to/executável" ou "wineprefix =/path/to/wine/prefixi wine/path/to/executável" com "%comando%" no mesmos comandos usados ​​acima. Basta adicionar o comando completo para iniciar as opções nas propriedades do jogo no aplicativo Steam, conforme mostrado na captura de tela abaixo:

Nova atualização: Método 6 (Mangohud)

Mangohud é um contador de fps universal para Linux que mostra quadros de tempo real por segundo para quase todos os jogos que podem ser executados no Linux. Funciona com jogos nativos e baseados em vinho e funciona bem com os renderizadores OpenGL e Vulkan. Além do FPS, ele mostra cargas de CPU e GPU também. Aqui está uma pequena animação mostrando como ela se parece como uma sobreposição (créditos do GIF):

Mangohud foi integrado ao console de jogos portátil baseado em Linux da Valve, chamado "Steam Deck" (lançado em 2022). Está disponível nos repositórios padrão da versão mais recente do Ubuntu, para que você possa instalá -lo executando o comando abaixo:

$ sudo apt install mangohud

Você pode instalar a versão mais recente dele no Ubuntu e em outras distribuições Linux, baixando sua mais nova compilação daqui. Depois de baixado, extraia o arquivo e execute o seguinte comando para instalá -lo:

$ ./Mangohud-setup.SH install

Agora você pode usar o mangohud com qualquer jogo Linux executando um comando no formato a seguir (substitua o caminho do arquivo):

$ mangohud/caminho/para/game/executável/arquivo

Se você estiver executando um jogo do cliente Steam, acesse a caixa de diálogo Propriedades do jogo clicando com o botão direito do mouse em um título de jogo instalado. No campo "Opções de lançamento", adicione o seguinte comando para ativar o mangohud para esse jogo:

$ mangohud %comando %

Por padrão, Mangohud mostra métricas detalhadas de jogos, como mostrado na animação acima. Se você deseja personalizar o tamanho e o layout da sobreposição, pode ajustar seu extenso arquivo de configuração seguindo as instruções oficiais disponíveis aqui.