Met de groei van Linux-gaming gingen veel gebruikers op zoek naar goede manieren om de "frames per seconde" (FPS) -teller weer te geven als een overlay op het draaien van Linux-games. Een FPS-teller helpt bij het aanpassen van de prestaties van lopende games en bij het benchmarken van het algehele vermogen van een pc om games met verschillende resoluties te spelen.
Helaas is er geen enkele uniforme manier om de FPS-teller in alle Linux-games weer te geven die onafhankelijk is van de onderliggende technologieën waarop een game draait. Verschillende renderers en API's hebben verschillende manieren om FPS-teller weer te geven. In deze gids worden verschillende methoden uitgelegd die kunnen worden gebruikt om een FPS-teller in Linux-games weer te geven.
Methode 1 (stoom)
Compatibiliteit Opmerkingen:
- Werkt met OpenGL- en Vulkan-spellen.
- Werkt met native games en Proton Proton is een compatibiliteitslaag die is opgenomen in Steam voor het uitvoeren van Windows-games in Linux. Het is gebaseerd op Wine, DXVK en D9VK open source-projecten met extra patches en nieuwe functies toegevoegd door Valve/Wine-ontwikkelaars.
- Werkt met games die zijn gekocht op Steam of games van derden die door de gebruiker aan Steam zijn toegevoegd.
- Getest met geïntegreerde grafische kaarten van Intel en AMD.
- Niet getest met NVIDIA-kaarten omdat ik geen NVIDIA-kaart heb. Maar volgens Steam-communityforums werkt de ingebouwde fps-teller prima op NVIDIA-kaarten.
Steam voor Linux bevat een ingebouwde FPS-teller die kan worden omgeschakeld via instellingen. Dit is waarschijnlijk een van de meest compatibele opties die werkt met de meeste Linux-games. Ik had echter wat problemen met Unity-engine-games die de ingebouwde FPS-teller niet weergeven. Deze optie vereist ook dat je een Steam-account en Steam-client op je systeem hebt geïnstalleerd.
Met Steam kun je zelfs games die niet bij Steam zijn gekocht toevoegen aan de gamebibliotheek en de ingebouwde FPS-teller werkt ook in deze games. Om een niet-steamgame toe te voegen, klik je op "Games" en vervolgens op "Een niet-Steam-game toevoegen aan mijn bibliotheek", zoals weergegeven in de onderstaande schermafbeelding:
Blader naar de locatie van je gamebestanden en schakel vervolgens de optie "Alle bestanden" onderaan in.
Selecteer het uitvoerbare spel en klik vervolgens op "GESELECTEERDE PROGRAMMA'S TOEVOEGEN" zoals weergegeven in de onderstaande schermafbeelding:
Als je een game met alleen Windows wilt spelen in de Proton-compatibiliteitslaag van Steam, moet je een extra optie inschakelen in game-eigenschappen.
Ik heb het uitvoerbare SuperTuxKart-bestand toegevoegd aan de Steam-bibliotheek en de FPS-teller werkt hier ook prima. Merk op dat alle games van derden die aan de Steam-bibliotheek zijn toegevoegd, geen spaties in hun bestandslocatiepad mogen hebben.
Methode 2 (LibGL)
Compatibiliteit Opmerkingen:
- Werkt alleen met OpenGL-spellen.
- Werkt met native games en Wine-games.
- Getest werken met geïntegreerde Intel en AMD grafische kaarten met open source drivers.
- Niet getest met NVIDIA-kaarten omdat ik geen NVIDIA-kaart heb. Het zou echter moeten werken met NVIDIA GPU's met open source-stuurprogramma's.
LibGL is een Mesa-bibliotheek die OpenGL API's blootstelt aan apps en games en is standaard opgenomen in bijna alle Linux-distributies. Met behulp van deze bibliotheek en een ander pakket dat een HUD op een zichtbaar scherm maakt, zullen we een FPS-teller laten zien in Linux-games. Voer de volgende opdracht uit om het vereiste pakket te installeren:
sudo apt install xosd-binOm de FPS-teller in native Linux-games weer te geven, gebruikt u de onderstaande opdracht nadat u /path/to/executable hebt vervangen door het uitvoerbare pad van uw eigen game. U kunt hier meer weten over alle osd-cat-opties options.
LIBGL_SHOW_FPS=1 /pad/naar/uitvoerbaar 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=links
Om de FPS-teller weer te geven in Windows-games die op Linux worden uitgevoerd via Wine, gebruik je de onderstaande opdracht nadat je /path/to/executable hebt vervangen door het uitvoerbare pad van je eigen game.
WINEDEBUG=fps wijn /pad/naar/uitvoerbaar 2>&1 | tee /dev/stderr |sed -u -n -e '/trace/ s/.*ongeveer //p' | osd_cat --lines=1 --color=geel
--outline=1 --pos=top --align=center
Als u een Wine-prefix gebruikt, zou de opdracht zijn (vervang /path/to/wine/prefix en /path/to/executable):
WINEDEBUG=fps WINEPREFIX=/pad/naar/wijn/voorvoegsel wijn/pad/naar/uitvoerbaar 2>&1 | tee /dev/stderr | sed -u -n -e '/trace/ s/
.*ongeveer //p' | osd_cat --lines=1 --color=geel --outline=1 --pos=top
--align=center
Deze methode heeft een kleine beperking:. Hoewel u de osd-cat HUD kunt aanpassen, blijft deze op een vaste positie op het weergavegebied staan zonder rekening te houden met de geometrie van het spelvenster. In de bovenstaande schermafbeelding wordt de FPS-teller boven het spelvenster weergegeven, niet erin. Games die op volledig scherm worden uitgevoerd, worden hierdoor niet beïnvloed.
Methode 3 (Gallium3D)
Gallium3D is een API die het gemakkelijker maakt om stuurprogramma's voor grafische kaarten te ontwikkelen door een reeks standaardbibliotheken en interfaces te bieden. AMD en NVIDIA open source drivers zijn gebouwd op Gallium3D. Om de FPS-teller in native Linux-games weer te geven, gebruik je de onderstaande opdracht nadat je /path/to/executable hebt vervangen door het uitvoerbare pad van je eigen game: Om de FPS-teller weer te geven in Windows-games die op Linux worden uitgevoerd via Wine, gebruik je de onderstaande opdracht nadat je /path/to/executable hebt vervangen door het uitvoerbare pad van je eigen game. Als u een Wine-prefix gebruikt, zou de opdracht zijn (vervang /path/to/wine/prefix en /path/to/executable): In de bovenstaande schermafbeelding gebruik ik een aangepaste GALLIUM_HUD-variabele die ook GPU- en CPU-temperaturen laat zien. Deze aangepaste opdracht is verschillend voor verschillende pc-configuraties. Voer de volgende opdrachten uit om meer te lezen over alle aanpassingsopties: Ter referentie, hier is de aangepaste opdracht die ik in de bovenstaande schermafbeeldingen heb gebruikt: Compatibiliteit Opmerkingen: Mesa Vulkan-overlay is een nieuwe Vulkan-laag die is toegevoegd aan recente builds van Mesa. Het toont verschillende informatie over de actieve applicatie met behulp van een overlay. Om de FPS-teller in native Linux-games weer te geven, gebruik je de onderstaande opdracht nadat je /path/to/executable hebt vervangen door het uitvoerbare pad van je eigen game: Om de FPS-teller weer te geven in Windows-games die op Linux draaien via Wine en DXVK, gebruik je de onderstaande opdracht nadat je /path/to/executable hebt vervangen door het uitvoerbare pad van je eigen game: Als u een Wine-prefix gebruikt, zou de opdracht zijn (vervang /path/to/wine/prefix en /path/to/executable): Compatibiliteit Opmerkingen: DXVK biedt een op Vulkan gebaseerde vertaallaag voor D3D10 en D3D11 waarmee gebruikers Direct3D 10/11-games op Linux kunnen spelen. D9VK gebruikt DXVK-backend om een extra Direct3D9-implementatie te bieden die kan worden gebruikt om games te spelen die op D3D9 zijn gebouwd. Om de FPS-teller weer te geven in DXVK-games die op Linux draaien via Wine, gebruik je de onderstaande opdracht nadat je /path/to/executable hebt vervangen door het uitvoerbare pad van je eigen game: Als u een Wine-prefix gebruikt, zou de opdracht zijn (vervang /path/to/wine/prefix en /path/to/executable): Dit markeert het einde van dit bericht. Tot slot zou ik nog een klein detail willen noemen dat hierboven is weggelaten. Alle niet-stoommethoden die hierboven zijn uitgelegd, werken ook voor Steam-spellen. U moet "/path/to/executable" of "wine /path/to/executable" of "WINEPREFIX=/path/to/wine/prefix wine /path/to/executable" vervangen door "%command%" in de dezelfde commando's als hierboven gebruikt. Voeg gewoon de volledige opdracht toe om opties in game-eigenschappen in de Steam-app te starten, zoals weergegeven in de onderstaande schermafbeelding:
GALLIUM_HUD=help glxgears
sensors_temp_cu-k10temp-pci-00c3.Tdie" /pad/naar/uitvoerbaar Methode 4 (Mesa Vulkan-overlay)
VK_LAYER_MESA_OVERLAY_CONFIG=positie=linksboven
WINEPREFIX=/pad/naar/wijn/voorvoegsel wijn /pad/naar/uitvoerbaar Methode 5 (DXVK-HUD)