Hvordan vise FPS -teller i Linux -spill

Hvordan vise FPS -teller i Linux -spill
Linux Gaming fikk et stort trykk da Valve kunngjorde Linux -støtte for Steam -klient og spillene deres i 2012. Siden den gang har mange AAA- og indie -spill kommet til Linux og antall brukere som spiller på Linux har økt betydelig.

Med veksten av Linux -spill begynte mange brukere å se etter riktig måter å vise "rammer per sekund" (FPS) teller som et overlegg på å kjøre Linux -spill. En FPS -teller hjelper til med å finpusse ytelsen til å løpe spill så vel som i å benchmarking en PCs generelle evne til å spille spill i forskjellige oppløsninger.

Dessverre er det ingen enkelt enhetlig måte å vise FPS -teller i alle Linux -spill som er uavhengig av underliggende teknologier et spill kjører på. Ulike gjengivere og APIer har forskjellige måter å vise FPS -teller. Denne guiden vil forklare forskjellige metoder som kan brukes til å vise en FPS -teller i Linux -spill.

Metode 1 (damp)

Kompatibilitetsnotater:

  • Fungerer med OpenGL og Vulkan -spill.
  • Fungerer med Native Games og Proton Games. Proton er et kompatibilitetslag inkludert i Steam for å kjøre Windows -spill i Linux. Det er basert på vin-, DXVK- og D9VK -open source -prosjekter med flere lapper og nye funksjoner lagt til av Valve/Wine Developers.
  • Fungerer med spill kjøpt på Steam eller tredjeparts spill lagt til Steam av brukeren.
  • Testet arbeid med integrerte Intel- og AMD -grafikkort.
  • Uprøvd med Nvidia -kort, da jeg ikke eier et NVIDIA -kort. Men ifølge Steam Community Forums fungerer innebygde FPS-teller bra på NVIDIA-kort.

Steam for Linux inkluderer en innebygd FPS-teller som kan kobles fra innstillinger. Dette er sannsynligvis et av de mest kompatible alternativene som fungerer med et flertall av Linux -spill. Imidlertid hadde jeg noen problemer med enhetsmotorspill som ikke viser den innebygde FPS-telleren. Dette alternativet krever også at du har en Steam -konto og Steam -klient installert på systemet ditt.

Steam lar deg til og med legge til spill som ikke. For å legge til et ikke-Steam-spill, klikker du på "Spill" og klikker deretter på "Legg til et ikke-steam-spill i biblioteket mitt", som vist på skjermbildet nedenfor:

Bla gjennom plasseringen av spillfilene dine og slå deretter alternativet "alle filer" nederst.

Velg Game -kjørbar, og klikk deretter på "Legg til valgte programmer" som vist på skjermdumpen nedenfor:

Hvis du vil kjøre et Windows Only -spill i Steams protonkompatibilitetslag, må du aktivere et ekstra alternativ i spillegenskaper.

Jeg har lagt til supertuxkart kjørbar i Steam Library, og FPS -telleren fungerer bra her også. Merk at eventuelle tredjepartsspill som er lagt til Steam -biblioteket ikke skal ha noen mellomrom i filplasseringsveien.

Metode 2 (libgl)

Kompatibilitetsnotater:

  • Fungerer bare med opengl -spill.
  • Fungerer med innfødte spill og vinspill.
  • Testet arbeid med integrerte Intel- og AMD -grafikkort med open source -drivere.
  • Uprøvd med Nvidia -kort, da jeg ikke eier et NVIDIA -kort. Det bør imidlertid fungere med NVIDIA GPUer med open source -drivere.

Libgl er et MESA -bibliotek som utsetter OpenGL APIer for apper og spill, og det er inkludert i nesten alle Linux -distribusjoner som standard. Ved å bruke dette biblioteket og en annen pakke som oppretter en HUD på synlig skjerm, vil vi vise en FPS -teller i Linux -spill. Kjør følgende kommando for å installere den nødvendige pakken:

sudo apt install xosd-bin

For å vise FPS -teller i Native Linux -spill, bruk kommandoen nedenfor etter å ha erstattet/bane/til/kjørbar med din egen Game kjørbare bane. Du kan vite mer om alle OSD-kattalternativer herfra.

Libgl_show_fps = 1/sti/til/kjørbar 2> & 1 | tee /dev /stderr | sed -u -n -e '/^libgl: fps =/s/.* \ ([^]* \) = /\ 1 /; p '| OSD_CAT -Linjer = 1 --farge = Gul -Outline = 1 --Pos = TOPP -ALIGN = VENSTRE

For å vise FPS -teller i Windows -spill som kjører på Linux gjennom vin, bruk kommandoen nedenfor etter å ha erstattet/bane/til/kjørbar med din egen Game kjørbare bane.

WinedeBug = fps vin/sti/til/kjørbar 2> & 1 | tee /dev /stderr | sed -u -n -e '/ spor/ s/.*ca. // p '| OSD_CAT -Linjer = 1 --farge = Gul -Outline = 1 --Pos = TOPP -ALIGN = CENTER

Hvis du bruker et vinprefiks, vil kommandoen være (erstatte/bane/til/vin/prefiks og/bane/til/kjørbar):

WinedeBug = FPS WinePrefix =/Path/To/Wine/Prefix Wine/Path/To/kjørbar 2> & 1 | tee /dev /stderr | sed -u -n -e '/ spor/ s/.*ca. // p '| OSD_CAT -Linjer = 1 --farge = Gul -Outline = 1 --Pos = TOPP -ALIGN = CENTER

Denne metoden har en liten begrensning. Mens du kan tilpasse OSD-Cat HUD, holder den seg i en fast stilling på visningsområdet uten å ta hensyn til geometrien til spillvinduet. I skjermdumpen over vises FPS -telleren over spillvinduet, ikke inni det. Spill som kjører i fullskjerm påvirkes ikke av dette.

Metode 3 (Gallium3D)

Kompatibilitetsnotater:

  • Fungerer bare med opengl -spill.
  • Fungerer med innfødte spill og vinspill.
  • Testet arbeid med AMD -grafikkort med open source -drivere.
  • Gallium3D -støtte for Intel pågår, så fungerer ikke ennå.
  • Uprøvd med Nvidia -kort, da jeg ikke eier et NVIDIA -kort. Siden NVIDIA open source driver er gallium3d aktivert, skal denne metoden fungere.

Gallium3D er et API som gjør det lettere å utvikle drivere for grafikkort ved å tilby et sett med standardbiblioteker og grensesnitt. AMD og NVIDIA open source -sjåfører er bygget på gallium3d.

For å vise FPS -teller i innfødte Linux -spill, bruk kommandoen nedenfor etter å ha erstattet/bane/til/kjørbar med din egen Game kjørbare bane:

Gallium_hud = "enkel, fps"/sti/til/kjørbar

For å vise FPS -teller i Windows -spill som kjører på Linux gjennom vin, bruk kommandoen nedenfor etter å ha erstattet/bane/til/kjørbar med din egen Game kjørbare bane.

Gallium_hud = "enkel, fps" vin/sti/til/kjørbar

Hvis du bruker et vinprefiks, vil kommandoen være (erstatte/bane/til/vin/prefiks og/bane/til/kjørbar):

Gallium_hud = "enkel, fps" wineprefix =/sti/til/vin/prefiks vin/sti/til/kjørbar

På skjermbildet over bruker jeg en tilpasset gallium_hud -variabel som også viser GPU- og CPU -temperaturer. Denne tilpassede kommandoen er forskjellig for forskjellige PC -konfigurasjoner. For å lese mer om alle tilpasningsalternativer, kjør kommandoer:

sudo apt install mesa-utils
Gallium_hud = hjelp glxgears

Bare for referanse, her er den tilpassede kommandoen jeg brukte i skjermbildene ovenfor:

Gallium_hud = "enkel, fps; sensor_temp_cu-amdgpu-pci-1c00.temp1; Sensors_temp_cu-k10temp-pci-00c3.Tdie "/sti/til/kjørbar

Metode 4 (Mesa Vulkan Overlay)

Kompatibilitetsnotater:

  • Fungerer bare med Vulkan -spill.
  • Fungerer med Ubuntu 19.Bare 10+ og andre distribusjoner som har siste MESA med Vulkan Overlay Layer.
  • Fungerer med Native Games og Steam Proton Games som kjører med DXVK/D9VK -støtte.
  • Fungerer med vinspill som kjører med DXVK/D9VK LIBS.
  • Arbeidsstatus ukjent for vinens VKD3D. Siden dette er et Vulkan -lag, skal det fungere med alt så lenge MESA er bygget med VK_LAYER_MESA_OVERLAY -støtte.
  • Testet arbeid med AMD -grafikkort og integrerte Intel -kort med open source -drivere.
  • Uprøvd med Nvidia -kort, da jeg ikke eier et NVIDIA -kort. Siden dette er et Vulkan -lag, skal det fungere med alt så lenge MESA er bygget med VK_LAYER_MESA_OVERLAY -støtte.

Mesa Vulkan Overlay er et nytt Vulkan -lag lagt til nylige bygg av Mesa. Den viser forskjellige informasjon om den løpende applikasjonen ved hjelp av et overlegg.

For å vise FPS -teller i innfødte Linux -spill, bruk kommandoen nedenfor etter å ha erstattet/bane/til/kjørbar med din egen Game kjørbare bane:

VK_INSTANCE_LAYERS = VK_LAYER_MESA_OVERLAY VK_LAYER_MESA_OVERLAY_CONFIG = Posisjon = Top-Left/Path/To/kjørbar

For å vise FPS -teller i Windows -spill som kjører på Linux gjennom vin og DXVK, bruk kommandoen nedenfor etter å ha erstattet/bane/til/kjørbar med din egen Game kjørbare bane:

VK_INSTANCE_LAYERS = VK_LAYER_MESA_OVERLAY VK_LAYER_MESA_OVERLAY_CONFIG = Posisjon = Top-Left Wine/Path/To/kjørbar

Hvis du bruker et vinprefiks, vil kommandoen være (erstatte/bane/til/vin/prefiks og/bane/til/kjørbar):

VK_INSTANCE_LAYERS = VK_LAYER_MESA_OVERLAY VK_LAYER_MESA_OVERLAY_CONFIG = Posisjon = Top-Left WinePrefix =/Path/To/Wine/Prefix Wine/Path/To/kjørbar

Metode 5 (DXVK HUD)

Kompatibilitetsnotater:

  • Fungerer bare med Vulkan -spill som kjører i vin og proton med DXVK/D9VK LIBS.
  • Testet arbeid med AMD og integrerte Intel -grafikkort med open source -drivere.
  • Uprøvd med Nvidia -kort, da jeg ikke eier et NVIDIA -kort. Kildekode har forpliktelser som nevner NVIDIA -støtte, slik at denne metoden skal fungere.

DXVK gir et Vulkan-basert oversettelseslag for D3D10 og D3D11 slik at brukere kan spille Direct3d 10/11-spill på Linux. D9VK bruker DXVK Backend for å gi en ekstra Direct3D9 -implementering som kan brukes til å spille spill bygd på D3D9.

For å vise FPS -teller i DXVK -spill som kjører på Linux gjennom vin, bruk kommandoen nedenfor etter å ha erstattet/bane/til/kjørbar med din egen Game kjørbare bane:

Dxvk_hud = fps vin/sti/til/kjørbar

Hvis du bruker et vinprefiks, vil kommandoen være (erstatte/bane/til/vin/prefiks og/bane/til/kjørbar):

Dxvk_hud = fps wineprefix =/sti/til/vin/prefiks vin/sti/til/kjørbar

Dette markerer slutten på dette innlegget. For å konkludere, vil jeg nevne en liten detalj utelatt ovenfra. Alle ikke-steam-metodene som er forklart ovenfor, vil også fungere for Steam Games. Du må erstatte “/sti/til/kjørbar” eller “vin/sti/til/kjørbar” eller “wineprefix =/path/to/wine/prefix vin/sti/til/kjørbar” med “%kommando%” i Samme kommandoer brukt ovenfor. Bare legg til hele kommandoen for å starte alternativer i spillegenskaper inne i Steam -appen, som vist på skjermbildet nedenfor:

Ny oppdatering: Metode 6 (Mangohud)

Mangohud er en universell FPS -teller for Linux som viser sanntidsrammer per sekund for nesten alle spill som kan kjøre på Linux. Det fungerer med innfødte så vel som vinbaserte spill og fungerer bra med både OpenGL- og Vulkan -gjengivere. I tillegg til FPS, viser den også CPU- og GPU -belastninger. Her er en liten animasjon som viser hvordan det ser ut som et overlegg (GIF -studiepoeng):

Mangohud er integrert i Valves Linux -baserte håndholdte spillkonsoll kalt “Steam Deck” (lansert i 2022). Det er tilgjengelig i standard depoter av den siste versjonen av Ubuntu, slik at du kan installere den ved å kjøre kommandoen nedenfor:

$ sudo apt install Mangohud

Du kan installere den nyeste versjonen av den i Ubuntu og andre Linux -distribusjoner ved å laste ned den nyeste bygningen herfra. Når du er lastet ned, trekker du ut arkivet og kjører følgende kommando for å installere det:

$ ./Mangohud-Setup.SH -installasjon

Nå kan du bruke Mangohud med et hvilket som helst Linux -spill ved å kjøre en kommando i følgende format (erstatt filstien):

$ MangoHud/Path/To/Game/kjørbar/fil

Hvis du kjører et spill fra Steam -klienten, kan du få tilgang til dialogboksen Game Properties ved å høyreklikke på en installert spilltittel. I feltet "Lanseringsalternativer", legg til følgende kommando for å aktivere MangoHud for det spillet:

$ mangohud %kommando %

Som standard viser MangoHud detaljerte spillmålinger, som vist i animasjonen ovenfor. Hvis du ønsker å tilpasse størrelsen og utformingen av overlegget, kan du finpusse den omfattende konfigurasjonsfilen ved å følge offisielle instruksjoner som er tilgjengelige her.