Com o crescimento dos jogos Linux, muitos usuários começaram a procurar maneiras adequadas de exibir o contador de “frames por segundo” (FPS) como uma sobreposição em jogos Linux em execução. Um contador de FPS ajuda a ajustar o desempenho de jogos em execução, bem como a comparar a capacidade geral de um PC de jogar em diferentes resoluções.
Infelizmente, não há uma maneira unificada de exibir o contador de FPS em todos os jogos Linux que seja independente das tecnologias subjacentes nas quais um jogo está sendo executado. Diferentes renderizadores e APIs têm diferentes maneiras de exibir o contador de FPS. Este guia irá explicar vários métodos que podem ser usados para exibir um contador FPS em jogos Linux.
Método 1 (Steam)
Notas de compatibilidade:
- Funciona com jogos OpenGL e Vulkan.
- Funciona com jogos nativos e Proton Proton é uma camada de compatibilidade incluída no Steam para rodar jogos do Windows no Linux. É baseado em projetos de código aberto Wine, DXVK e D9VK com patches adicionais e novos recursos adicionados por desenvolvedores da Valve / Wine.
- Funciona com jogos comprados no Steam ou jogos de terceiros adicionados ao Steam pelo usuário.
- Testado em funcionamento com placas gráficas Intel e AMD integradas.
- Não testado com placas NVIDIA porque não tenho uma placa NVIDIA. Mas de acordo com os fóruns da comunidade Steam, o contador de fps integrado funciona bem em placas NVIDIA.
O Steam para Linux inclui um contador de FPS integrado que pode ser alternado nas configurações. Esta é provavelmente uma das opções mais compatíveis que funcionam com a maioria dos jogos Linux. No entanto, tive alguns problemas com os jogos do motor Unity que não exibiam o contador de FPS integrado. Esta opção também requer que você tenha uma conta Steam e um cliente Steam instalado em seu sistema.
O Steam permite até que você adicione jogos não comprados do Steam à biblioteca de jogos e o contador de FPS integrado também funciona nesses jogos. Para adicionar um jogo não Steam, clique em “Jogos” e depois clique em “Adicionar um jogo não Steam à minha biblioteca”, conforme mostrado na imagem abaixo:
Navegue até o local dos seus arquivos de jogo e, em seguida, alterne a opção “Todos os arquivos” na parte inferior.
Selecione o executável do jogo e clique em “ADICIONAR PROGRAMAS SELECIONADOS” conforme mostrado na imagem abaixo:
Se você deseja executar um jogo somente para Windows na camada de compatibilidade Proton do Steam, você terá que habilitar uma opção adicional nas propriedades do jogo.
Eu adicionei o executável SuperTuxKart na biblioteca do Steam e o contador de FPS também está funcionando bem aqui. Observe que quaisquer jogos de terceiros adicionados à biblioteca do Steam não devem ter nenhum espaço no caminho de localização do arquivo.
Método 2 (LibGL)
Notas de compatibilidade:
- Funciona apenas com jogos OpenGL.
- Funciona com jogos nativos e jogos Wine.
- Testado trabalhando com placas gráficas Intel e AMD integradas com drivers de código aberto.
- Não testado com placas NVIDIA porque não tenho uma placa NVIDIA. No entanto, deve funcionar com GPUs NVIDIA com drivers de código aberto.
LibGL é uma biblioteca Mesa que expõe APIs OpenGL para aplicativos e jogos e está incluída em quase todas as distribuições Linux por padrão. Usando esta biblioteca e outro pacote que cria um HUD em tela visível, mostraremos um contador de FPS em jogos Linux. Execute o seguinte comando para instalar o pacote necessário:
sudo apt install xosd-binPara mostrar o contador de FPS em jogos Linux nativos, use o comando abaixo após substituir / path / to / executable pelo seu próprio caminho executável de jogo. Você pode saber mais sobre todas as opções de osd-cat aqui.
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 = yellow --outline = 1 --pos = top --align = left
Para mostrar o contador de FPS em jogos do Windows rodando no Linux através do Wine, use o comando abaixo após substituir / path / to / executable pelo seu próprio caminho executável.
WINEDEBUG = fps vinho / caminho / para / executável 2> & 1 | tee / dev / stderr |sed -u -n -e '/ trace / s /.* aprox // p '| osd_cat --lines = 1 --color = yellow
--contorno = 1 --pos = topo --align = centro
Se você estiver usando um prefixo Wine, o comando seria (substitua / caminho / para / wine / prefixo e / caminho / para / executável):
WINEDEBUG = fps WINEPREFIX = / caminho / para / vinho / prefixo vinho/ caminho / para / executável 2> & 1 | tee / dev / stderr | sed -u -n -e '/ trace / s /
.* aprox // p '| osd_cat --lines = 1 --color = yellow --outline = 1 --pos = top
--alinhar = 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 de FPS é mostrado acima da janela do jogo, não dentro dela. Os jogos em tela cheia não são afetados por isso.
Método 3 (Gallium3D)
Gallium3D é uma API que torna mais fácil desenvolver drivers para placas gráficas, fornecendo um conjunto de bibliotecas e interfaces padrão. Os drivers de código aberto AMD e NVIDIA são desenvolvidos com base no Gallium3D. Para mostrar o contador de FPS em jogos Linux nativos, use o comando abaixo após substituir / path / to / executable pelo seu próprio caminho executável de jogo: Para mostrar o contador de FPS em jogos do Windows rodando no Linux através do Wine, use o comando abaixo após substituir / path / to / executable pelo seu próprio caminho executável do jogo. Se você estiver usando um prefixo Wine, o comando seria (substitua / caminho / para / wine / prefixo e / caminho / para / executável): Na captura de tela acima, estou usando uma variável GALLIUM_HUD personalizada que mostra as temperaturas da GPU e da 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 os comandos: Apenas para referência, aqui está o comando personalizado que usei nas capturas de tela acima: Notas de compatibilidade: A sobreposição do Mesa Vulkan é uma nova camada do Vulkan adicionada às compilações recentes do Mesa. Ele exibe várias informações sobre o aplicativo em execução usando uma sobreposição. Para mostrar o contador de FPS em jogos Linux nativos, use o comando abaixo após substituir / path / to / executable pelo seu próprio caminho executável de jogo: Para mostrar o contador de FPS em jogos do Windows em execução no Linux por meio do Wine e DXVK, use o comando abaixo após substituir / path / to / executable pelo seu próprio caminho executável do jogo: Se você estiver usando um prefixo Wine, o comando seria (substitua / caminho / para / wine / prefixo e / caminho / para / executável): Notas de compatibilidade: DXVK fornece uma camada de tradução baseada em Vulkan para D3D10 e D3D11, permitindo aos usuários jogar jogos Direct3D 10/11 no Linux. O D9VK usa back-end DXVK para fornecer uma implementação Direct3D9 adicional que pode ser usada para jogar jogos baseados no D3D9. Para mostrar o contador de FPS em jogos DXVK em execução no Linux por meio do Wine, use o comando abaixo após substituir / path / to / executable pelo seu próprio caminho executável de jogo: Se você estiver usando um prefixo Wine, o comando seria (substitua / caminho / para / wine / prefixo e / caminho / para / executável): Isso marca o fim desta postagem. Para concluir, eu mencionaria um pequeno detalhe omitido acima. Todos os métodos não Steam explicados acima funcionarão também para jogos Steam. Você deve substituir “/ caminho / para / executável” ou “vinho / caminho / para / executável” ou “WINEPREFIX = / caminho / para / vinho / prefixo vinho / caminho / para / executável” por “% command%” no mesmos comandos usados acima. Basta adicionar o comando completo para iniciar as opções nas propriedades do jogo dentro do aplicativo Steam, conforme mostrado na imagem abaixo:
GALLIUM_HUD = ajuda glxgears
sensores_temp_cu-k10temp-pci-00c3.Tdie "/ caminho / para / executável Método 4 (sobreposição Mesa Vulkan)
VK_LAYER_MESA_OVERLAY_CONFIG = posição = superior esquerdo
WINEPREFIX = / caminho / para / vinho / prefixo vinho / caminho / para / executável Método 5 (DXVK HUD)