MangoHUD - Monitor de FPS e utilização da GPU em Vulkan

Talvez não seja novidade nem para quem daqui que entende inglês e é ativo no Reddit nem para o @CanalOCaraDoTI que tava há uns dias no issue tracker desse programa, mas como não vi ninguém falando dele aqui, acho bom criar um tópico.

Que é isso?

MangoHUD é uma alternativa muito mais fácil de usar para o Mesa Vulkan Overlay com muitas das mesmas funções (FPS, Frametime) e mais algumas (Logging, Análise, mostrar versão do DXVK, etc.)


Eis o aplicativo de teste do Vulkan (VKCube) rodando com o MangoHUD.

Uso

Uma vez instalado as versões de 32 e 64 bits do MangoHUD, rodar um aplicativo com ele é simples assim, no terminal:

MANGOHUD=1 app_vulkan

No Lutris, isso pode ser definido com as variáveis de ambiente: Botão direito no jogo > Configure > System Options > Add e pondo:

Funções

Mostrar FPS e Frametime

Obviamente, a função obrigatória de todo HUD para jogos de respeito. Isso é o padrão, basta seguir as instruções acima para obtê-lo. Não só isso, ele também mostra a versão do DXVK em uso caso seja rodado junto com o Wine (lembrando, ele só pega em Vulkan, não em OpenGL; para OpenGL temos o Gallium HUD).

Mais detalhes

Com as configurações detalhadas aqui é possível colocar mais detalhes no seu HUD.

Basta por, além de MANGOHUD=1 nas suas variáveis de ambiente/terminal, MANGOHUD_CONFIG=oquevocêquerver (ou mais uma linha na configuração do Lutris, com key MANGOHUD_CONFIG e o Value que você quer ver).

Por exemplo:
MANGOHUD_CONFIG=vram,ram,cpu_temp,gpu_temp MANGOHUD=1 app_vulkan


Batman desaponta todos anunciando parceria com o Pinguim

Logging

Além disso, com MANGOHUD_OUTPUT=/home/usuario/arquivo é possível gerar históricos das taxas de framerate que podem ser analisados no site do criador. Por padrão, defininir MANGOHUD_OUTPUT + aperta F2 para começar + apertar F2 para parar é o procedimento.

Se quiser mudar a tecla para ativar/parar, basta colocar toggle_logging=TECLA no MANGOHUD_CONFIG acima. Por exemplo:

MANGOHUD_CONFIG=toggle_logging=L MANGOHUD=1 app_vulkan

Procedimento para enviar aqui (vídeo)

Infelizmente não há uma ferramenta para análise local dos logs.

Instalação

No Arch Linux e Manjaro, o MangoHUD está no AUR. Pode-se instalar via Pamac ou no terminal:

Arch com Yay:
yay -S mangohud lib32-mangohud

Manjaro:
pamac build mangohud lib32-mangohud

Para outras distros, basta ir no site deles, olhar a primeira seção Assets, baixar o MangoHUD-(VERSÃO).tar.gz, extrair na sua home e rodar o ./install.sh no terminal.

(Recentemente disseram que consertaram pro Zorin, então acho que o @CanalOCaraDoTI poderia dar uma olhada.)

Depois de instalado, só seguir o procedimento no início do tópico.

10 Curtidas

Excelente post. Mangohud é realmente uma ferramenta incrível. Agora eu tenho uma dúvida boba, ela só funciona em Vulkan certo? Como vou saber se minha aplicação está rodando em Vulkan? Além disso, os jogos que rodam viam Proton, rodam pelo DXVK automaticamente ou não? Valeu!

Exatamente. O HUD nem sequer aparece em apps OpenGL.

Isso meio complicado de saber. Não custa muito rodar com MANGOHUD=1 e ver se aparece ou consultar sites como PCGamingWiki.

Jogos de DirectX 9 a 12 rodam via DXVK automaticamente (no Proton 5.0).

Do Proton 4.11 ao 5.0, DirectX 9, por padrão, rodava pelo OpenGL do Wine, mas você pode ativar o DXVK por meio da opção de inicialização PROTON_USE_D9VK=1 %command% (não tem D 9 VK para Proton antes do 4.11).

DirectX 8 anteriores só tem o OpenGL do Wine, mas acho que não tem nenhum muito sentido ostentar FPS em jogo dos anos 90. (e mesmo se quiser, tem o Gallium HUD com muitas das mesmas funções).

1 Curtida



caraca, o negocio não funcionava pra mim mas agora funciona.

1 Curtida

Eu tava ajudando eles a resolverem umas coisas pra galera q usa o Ubuntu 18.04.4 LTS como base, pois ali no script deles nao tinha essa galera kkkkk mas creio q em breve saia um artigo no blog mostrando essa tool, q eu achei muito boa e que vá facilitar pra quem precise de algo nessa area.

2 Curtidas

Notei que pra todos que postaram screenshots, assim como no meu PC, o uso da GPU sempre está em zero.

Agora aparece

Uma pena que nele não dá pra criar exceções, como no Rivatuner/Afterburnner. Se eu ativar o suporte Vulkan em um Chrome ou Brave ou Vivaldi, lá estará ele em funcionamento.

Algumas atualizações/mudanças que ocorreram desde que eu escrevi esse tópico:

Uso

O MangoHUD agora possui um comando próprio:

mangohud game

Esse novo comando, além de Vulkan, trouxe compatibilidade com apps OpenGL:
ksnip_20201001-202628

Alguns apps OpenGL mais “birrentos” podem exigir uma opção especial para funcionar, que muda o método de “intromissão” do MangoHUD:

mangohud --dlsym jogo

Por exemplo, precisei disso para ter o MangoHUD em alguns ports de Doom.

O método MANGOHUD=1 app_vulkan continua válido, mas somente para aplicativos Vulkan.

Funções

Compatibilidade com Steam de Flatpak

No Flathub, há o pacote com.valvesoftware.Steam.Utility.MangoHud que, ao ser instalado, adiciona o MangoHUD à Steam de Flatpak. Daí só por MANGOHUD=1 %command% ou mangohud %command% nas opções de inicialização, como você faria com a Steam nativa.

Arquivos de configuração

Além de MANGOHUD_CONFIG=, agora é possível colocar configurações em arquivos individualizados. Em vez de separar por vírgulas, você bota uma linha para cada coisa que você quer ver!

Em /home/seuusuario/.config/MangoHud/MangoHud.conf é possível definir configurações globais para todos os aplicativos.

Além disso, é possível definir configurações por cada aplicativo em /home/seuusuario/.config/MangoHud/nome_do_executavel.conf ou jogando um MangoHud.conf na pasta com o executável.

@MotaC: Talvez seja possível simular essas funções usando no_display na configuração por aplicativo (/home/motac/.config/MangoHud/chrome.conf ?)

2 Curtidas

Opaa, funcionou certinho. Obrigado amigo.