Come mostrare il contatore FPS nei giochi Linux

Come mostrare il contatore FPS nei giochi Linux
Linux Gaming ha avuto una spinta importante quando Valve ha annunciato il supporto Linux per Steam Client e i loro giochi nel 2012. Da allora, molti giochi AAA e Indie si sono fatti strada a Linux e il numero di utenti che giochi su Linux sono aumentati considerevolmente.

Con la crescita dei giochi Linux, molti utenti hanno iniziato a cercare modi adeguati per visualizzare il contatore "FPS) (FPS) come sovrapposizione sul funzionamento di Linux Games. Un contatore FPS aiuta a modificare le prestazioni dei giochi in esecuzione e nel benchmarking della capacità generale di un PC di giocare a diverse risoluzioni.

Sfortunatamente non esiste un singolo modo unificato per visualizzare il contatore FPS in tutti i giochi Linux indipendenti dalle tecnologie sottostanti che un gioco sta in esecuzione. Diversi rendering e API hanno modi diversi per visualizzare il contatore FPS. Questa guida spiegherà vari metodi che possono essere utilizzati per visualizzare un contatore FPS nei giochi Linux.

Metodo 1 (Steam)

Note di compatibilità:

  • Funziona con i giochi OpenGL e Vulkan.
  • Funziona con giochi nativi e giochi protonici. Proton è un livello di compatibilità incluso in Steam per l'esecuzione di giochi Windows in Linux. Si basa su progetti open source con vino, DXVK e D9VK con ulteriori patch e nuove funzionalità aggiunte dagli sviluppatori di valvole/vino.
  • Funziona con i giochi acquistati su vapore o giochi di terze parti aggiunti a Steam dall'utente.
  • Testato di lavoro con schede grafiche Intel e AMD integrate.
  • Non testato con le carte Nvidia in quanto non possiedo una carta Nvidia. Ma secondo i forum di Steam Community, il contatore FPS incorporato funziona bene sulle carte Nvidia.

Steam per Linux include un contatore FPS incorporato che può essere attivato dalle impostazioni. Questa è probabilmente una delle opzioni più compatibili che funziona con la maggior parte dei giochi Linux. Tuttavia ho avuto alcuni problemi con i giochi di motori unity che non mostravano il contatore FPS incorporato. Questa opzione richiede anche di avere un account Steam e un client Steam installato sul sistema.

Steam ti consente anche di aggiungere giochi non acquistati da Steam alla libreria di giochi e il contatore FPS incorporato funziona anche in questi giochi. Per aggiungere un gioco non Steam, fai clic su "Giochi", quindi fai clic su "Aggiungi un gioco non steam alla mia libreria", come mostrato nello screenshot seguente:

Sfoglia la posizione dei file di gioco e quindi attiva l'opzione "Tutti i file" in basso.

Seleziona l'eseguibile del gioco, quindi fai clic su "Aggiungi programmi selezionati" come mostrato nello screenshot seguente:

Se si desidera eseguire un gioco solo Windows nel livello di compatibilità protonica di Steam, dovrai abilitare un'opzione aggiuntiva nelle proprietà del gioco.

Ho aggiunto Supertuxkart eseguibile nella libreria Steam e anche FPS Counter funziona bene qui. Si noti che eventuali giochi di terze parti aggiunti alla libreria Steam non dovrebbero avere spazi nel percorso di posizione del file.

Metodo 2 (libgl)

Note di compatibilità:

  • Funziona solo con i giochi OpenGL.
  • Funziona con giochi nativi e giochi di vino.
  • Test di lavoro con schede grafiche Intel e AMD integrate con driver open source.
  • Non testato con le carte Nvidia in quanto non possiedo una carta Nvidia. Dovrebbe tuttavia funzionare con le GPU Nvidia con driver open source.

Libgl è una libreria MESA che espone API OpenGL ad app e giochi ed è incluso in quasi tutte le distribuzioni Linux per impostazione predefinita. Utilizzando questa libreria e un altro pacchetto che crea un HUD sul display visibile, mostreremo un contatore FPS in Linux Games. Esegui il comando seguente per installare il pacchetto richiesto:

SUDO APT Installa XOSD-Bin

Per mostrare il contatore FPS nei giochi Native Linux, usa il comando di seguito dopo aver sostituito/percorso/to/eseguibile con il tuo percorso eseguibile del gioco. Puoi saperne di più su tutte le opzioni OSD-CAT da qui.

Libgl_show_fps = 1/path/to/eseguibile 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 = a sinistra

Per mostrare il contatore FPS nei giochi di Windows in esecuzione su Linux attraverso il vino, usa il comando seguente dopo aver sostituito/percorso/to/eseguibile con il tuo percorso eseguibile del gioco.

VinideBug = FPS Wine/Path/TO/Executable 2> & 1 | Tee /Dev /Stderr | sed -u -n -e '/ trace/ s/.*ca./ p '| OSD_CAT -LINES = 1 - -COLOR = Yellow --Outline = 1 --POS = TOP --ALIGN = CENTRO

Se si utilizza un prefisso del vino, il comando sarebbe (sostituire/percorso/to/vino/prefisso e/percorso/to/eseguibile):

Vinidebug = fps wineprefix =/path/to/wine/prefisso vino/percorso/to/eseguibile 2> & 1 | Tee /Dev /Stderr | sed -u -n -e '/ trace/ s/.*ca./ p '| OSD_CAT -LINES = 1 - -COLOR = Yellow --Outline = 1 --POS = TOP --ALIGN = CENTRO

Questo metodo ha una piccola limitazione. Mentre è possibile personalizzare l'HUD OSD-CAT, rimane in una posizione fissa sull'area del display senza prendere in considerazione la geometria della finestra del gioco. Nello screenshot sopra, il contatore FPS viene mostrato sopra la finestra del gioco, non al suo interno. I giochi in esecuzione a schermo intero non ne sono influenzati.

Metodo 3 (Gallio3D)

Note di compatibilità:

  • Funziona solo con i giochi OpenGL.
  • Funziona con giochi nativi e giochi di vino.
  • Testato lavorando con schede grafiche AMD con driver open source.
  • Il supporto di gallio per Intel è in corso, quindi non funziona ancora.
  • Non testato con le carte Nvidia in quanto non possiedo una carta Nvidia. Poiché il driver open source di Nvidia è abilitato al gallio, questo metodo dovrebbe funzionare.

Galium3D è un'API che rende più semplice lo sviluppo dei driver per le schede grafiche fornendo una serie di librerie e interfacce standard. I conducenti open source AMD e NVIDIA sono costruiti su Gallio3D.

Per mostrare il contatore FPS nei giochi Native Linux, utilizzare il comando seguente dopo aver sostituito/percorso/a/eseguibile con il tuo percorso eseguibile:

Gallio_hud = "semplice, fps"/path/to/eseguibile

Per mostrare il contatore FPS nei giochi di Windows in esecuzione su Linux attraverso il vino, usa il comando seguente dopo aver sostituito/percorso/to/eseguibile con il tuo percorso eseguibile del gioco.

Gallio_hud = "semplice, fps" vino/percorso/a/eseguibile

Se si utilizza un prefisso del vino, il comando sarebbe (sostituire/percorso/to/vino/prefisso e/percorso/to/eseguibile):

Gallio_hud = "semplice, fps" wineprefix =/path/to/wine/prefisso vino/path/to/eseguibile

Nello screenshot sopra, sto usando una variabile Gallium_hud personalizzata che mostra anche le temperature della GPU e della CPU. Questo comando personalizzato è diverso per diverse configurazioni di PC. Per saperne di più su tutte le opzioni di personalizzazione, eseguire i comandi:

SUDO APT Installa Mesa-Utils
Gallium_hud = help glxgears

Solo per riferimento, ecco il comando personalizzato che ho usato nelle schermate sopra:

Gallio_hud = "semplice, fps; sensors_temp_cu-amdgpu-pci-1c00.temp1; sensors_temp_cu-k10temp-pci-00c3.TDIE "/PATH/TO/eseguibile

Metodo 4 (Overlay Mesa Vulkan)

Note di compatibilità:

  • Funziona solo con i giochi vulkan.
  • Funziona con Ubuntu 19.Solo 10+ e altre distribuzioni che hanno l'ultimo MESA con strato di overlay vulkan.
  • Funziona con giochi nativi e giochi di protoni Steam in esecuzione con supporto DXVK/D9VK.
  • Funziona con giochi di vino che corrono con libs DXVK/D9VK.
  • Stato di lavoro sconosciuto per il vkd3d di vino. Poiché questo è un livello vulkan, dovrebbe funzionare con qualsiasi cosa fintanto che Mesa è costruita con il supporto VK_LAYER_MESA_OVERLAY.
  • Testato lavorando con schede grafiche AMD e schede Intel integrate con driver open source.
  • Non testato con le carte Nvidia in quanto non possiedo una carta Nvidia. Poiché questo è un livello vulkan, dovrebbe funzionare con qualsiasi cosa fintanto che Mesa è costruita con il supporto VK_LAYER_MESA_OVERLAY.

Mesa Vulkan Overlay è un nuovo livello vulkano aggiunto alle recenti build di Mesa. Visualizza varie informazioni sull'esecuzione dell'applicazione utilizzando un overlay.

Per mostrare il contatore FPS nei giochi Native Linux, utilizzare il comando seguente dopo aver sostituito/percorso/a/eseguibile con il tuo percorso eseguibile:

Vk_instance_layers = vk_layer_mesa_overlay vk_layer_mesa_overlay_config = position = top-left/path/to/eseguibile

Per mostrare il contatore FPS nei giochi di Windows in esecuzione su Linux tramite vino e DXVK, utilizzare il comando seguente dopo aver sostituito/percorso/to/eseguibile con il tuo percorso eseguibile del gioco:

Vk_instance_layers = vk_layer_mesa_overlay vk_layer_mesa_overlay_config = position = top-left wine/path/to/eseguibile

Se si utilizza un prefisso del vino, il comando sarebbe (sostituire/percorso/to/vino/prefisso e/percorso/to/eseguibile):

Vk_instance_layers = vk_layer_mesa_overlay vk_layer_mesa_overlay_config = position = top-left wineprefix =/path/to/wine/prefisso wine/to pheat/to/eseguibile

Metodo 5 (DXVK HUD)

Note di compatibilità:

  • Funziona solo con i giochi vulkan che corrono in vino e protone con libs DXVK/D9VK.
  • Testato di lavoro con AMD e schede grafiche Intel integrate con driver open source.
  • Non testato con le carte Nvidia in quanto non possiedo una carta Nvidia. Il codice sorgente ha commit che menzionano il supporto Nvidia, quindi questo metodo dovrebbe funzionare.

DXVK fornisce un livello di traduzione basato su Vulkan per D3D10 e D3D11 che consente agli utenti di giocare a giochi 10/11 Direct3D su Linux. D9VK utilizza il backend DXVK per fornire un'implementazione Direct3D9 aggiuntiva che può essere utilizzata per giocare a giochi basati su D3D9.

Per mostrare il contatore FPS nei giochi DXVK in esecuzione su Linux attraverso il vino, usa il comando seguente dopo aver sostituito/percorso/to/eseguibile con il tuo percorso eseguibile per il gioco:

Dxvk_hud = fps wine/percorso/to/eseguibile

Se si utilizza un prefisso del vino, il comando sarebbe (sostituire/percorso/to/vino/prefisso e/percorso/to/eseguibile):

Dxvk_hud = fps wineprefix =/path/to/wine/prefisso vino/path/to/eseguibile

Questo segna la fine di questo post. Per concludere, menzionerei un piccolo dettaglio omesso dall'alto. Tutti i metodi non steam spiegati sopra funzionano anche per i giochi Steam. È necessario sostituire "/percorso/to/eseguibile" o "vino/percorso/to/eseguibile" o "wineprefix =/path/to/wine/prefisso vino/path/to/eseguibile" con "%comando%" nel Stessi comandi usati sopra. Basta aggiungere il comando completo per avviare le opzioni nelle proprietà del gioco all'interno dell'app Steam, come mostrato nello screenshot seguente:

Nuovo aggiornamento: Metodo 6 (Mangohud)

Mangohud è un contatore FPS universale per Linux che mostra frame in tempo reale al secondo per quasi tutti i giochi che possono funzionare su Linux. Funziona con giochi nativi e basati sul vino e funziona bene con i rendering OpenGL e Vulkan. Oltre a FPS, mostra anche carichi di CPU e GPU. Ecco una piccola animazione che mostra come appare come un overlay (crediti GIF):

Mangohud è stato integrato nella console di gioco portatile basata su Linux di Valve chiamata "Steam Deck" (lanciata nel 2022). È disponibile nei repository predefiniti dell'ultima versione di Ubuntu, quindi puoi installarlo eseguendo il comando di seguito:

$ sudo apt install mangohud

È possibile installare l'ultima versione in Ubuntu e altre distribuzioni Linux scaricando la sua nuova build da qui. Una volta scaricato, estrarre l'archivio ed eseguire il seguente comando per installarlo:

$ ./mangohud-setup.Installa SH

Ora puoi usare Mangohud con qualsiasi gioco Linux eseguendo un comando nel seguente formato (sostituire il percorso del file):

$ mangohud/percorso/to/game/eseguibile/file

Se stai eseguendo un gioco dal client Steam, accedi alla finestra di dialogo Proprietà del gioco facendo clic con il pulsante destro del mouse su un titolo di gioco installato. Nel campo "Opzioni di lancio", aggiungi il seguente comando per abilitare Mangohud per quel gioco:

$ mangohud %comando %

Per impostazione predefinita, Mangohud mostra metriche di gioco dettagliate, come mostrato nell'animazione sopra. Se si desidera personalizzare le dimensioni e il layout dell'overlay, puoi modificare il suo ampio file di configurazione seguendo le istruzioni ufficiali disponibili qui.