Sådan vises FPS -tæller i Linux -spil

How Show Fps Counter Linux Games



Linux -gaming fik et stort skub, da Ventil annonceret Linux -understøttelse af Steam -klient og deres spil i 2012. Siden da har mange AAA- og indie -spil gjort deres vej til Linux, og antallet af brugere, der spiller på Linux, er steget betydeligt.

Med væksten i Linux -spil begyndte mange brugere at lede efter rigtige måder at vise frames per sekund (FPS) -tæller som et overlay på at køre Linux -spil. En FPS -tæller hjælper med tilpasning af ydeevne for løbende spil samt benchmarking af en pc's samlede evne til at spille spil i forskellige opløsninger.







Desværre er der ikke en samlet måde at vise FPS -tæller i alle Linux -spil, der er uafhængig af underliggende teknologier, et spil kører på. Forskellige renderere og API'er har forskellige måder at vise FPS -tæller på. Denne vejledning forklarer forskellige metoder, der kan bruges til at vise en FPS -tæller i Linux -spil.



Kompatibilitetsnotater:



  • Fungerer med OpenGL og Vulkan spil.
  • Arbejder med native spil og Proton Proton er et kompatibilitetslag inkluderet i Steam til at køre Windows -spil i Linux. Det er baseret på Vin , DXVK og D9VK open source -projekter med yderligere patches og nye funktioner tilføjet af Valve/Wine -udviklere.
  • Fungerer med spil købt på Steam eller tredjepartsspil tilføjet til Steam af brugeren.
  • Testet med at arbejde med integrerede Intel- og AMD -grafikkort.
  • Uprøvet med NVIDIA -kort, da jeg ikke ejer et NVIDIA -kort. Men ifølge Steam-fællesskabsfora fungerer den indbyggede fps-tæller fint på NVIDIA-kort.

Steam til Linux indeholder en indbygget FPS-tæller, der kan skiftes fra indstillinger. Dette er sandsynligvis en af ​​de mest kompatible muligheder, der fungerer med et flertal af Linux -spil. Jeg havde dog nogle problemer med Unity-motorspil, der ikke viste den indbyggede FPS-tæller. Denne mulighed kræver også, at du har en Steam -konto og Steam -klient installeret på dit system.







Steam giver dig endda mulighed for at tilføje spil, der ikke er købt fra Steam, til spilbiblioteket, og den indbyggede FPS-tæller fungerer også i disse spil. Hvis du vil tilføje et spil uden damp, skal du klikke på Spil og derefter klikke på Føj et spil uden damp til mit bibliotek, som vist på skærmbilledet herunder:

Gennemse til placeringen af ​​dine spilfiler, og skift derefter alle filer i bunden.

Vælg spillet, der kan eksekveres, og klik derefter på TILFØJ VALGTE PROGRAMMER som vist på skærmbilledet herunder:

Hvis du vil køre et Windows -spil kun i Steams Proton -kompatibilitetslag, skal du aktivere en ekstra mulighed i spilegenskaber.

Jeg har tilføjet SuperTuxKart eksekverbar i dampbibliotek, og FPS -tælleren fungerer også fint her. Bemærk, at tredjepartsspil tilføjet til Steam -biblioteket ikke må have mellemrum i deres filplaceringssti.

Metode 2 (LibGL)

Kompatibilitetsnotater:

  • Fungerer kun med OpenGL -spil.
  • Fungerer med indfødte spil og vinspil.
  • Testet med at arbejde med integrerede Intel- og AMD -grafikkort med open source -drivere.
  • Uprøvet med NVIDIA -kort, da jeg ikke ejer et NVIDIA -kort. Det skulle dog fungere med NVIDIA GPU'er med open source -drivere.

LibGL er et Mesa -bibliotek, der udsætter OpenGL API'er for apps og spil, og det er som standard inkluderet i næsten alle Linux -distributioner. Ved hjælp af dette bibliotek og en anden pakke, der skaber en HUD på synligt display, viser vi en FPS -tæller i Linux -spil. Kør følgende kommando for at installere den nødvendige pakke:

sudopassendeinstallerexosd-bin

For at vise FPS -tæller i native Linux -spil, skal du bruge kommandoen herunder efter at du har udskiftet/path/to/executable med din egen sti til spil. Du kan vide mere om alle osd-cat muligheder fra her .

LIBGL_SHOW_FPS = 1/sti/til/eksekverbar 2> & 1 |
tee /dev /stderr | sed -u -n -e '/^ libGL: FPS = /{s/.* ([^]* ) =/ 1/; p}' |
osd_cat --lines = 1 --farve = gul -disposition = 1 --pos = top --align = venstre

For at vise FPS -tæller i Windows -spil, der kører på Linux via Wine, skal du bruge kommandoen herunder efter at have udskiftet/path/to/executable med din egen sti til spil.

WINEDEBUG = fps vin/sti/til/eksekverbar 2> & 1 | tee /dev /stderr |
sed -u -n -e '/trace/s /.* ca // p' | osd_cat --lines = 1 --farve = gul
-disposition = 1 --pos = top --align = center

Hvis du bruger et vinpræfiks, vil kommandoen være (erstat/sti/til/vin/præfiks og/sti/til/eksekverbar):

WINEDEBUG = fps WINEPREFIX =/sti/til/vin/præfiksvin
/sti/til/eksekverbar 2> & 1 | tee /dev /stderr | sed -u -n -e '/ trace/ s/
.*ca. // p '| osd_cat --lines = 1 --farve = gul -outline = 1 --pos = top
--juster = center

Denne metode har en lille begrænsning. Selvom du kan tilpasse osd-cat HUD, forbliver den på en fast position på displayområdet uden at tage hensyn til geometrien i spilvinduet. På skærmbilledet ovenfor vises FPS -tælleren over spilvinduet, ikke inde i det. Spil, der kører i fuld skærm, påvirkes ikke af dette.

Metode 3 (Gallium3D)

  • Fungerer kun med OpenGL -spil.
  • Fungerer med indfødte spil og vinspil.
  • Testet med at arbejde med AMD -grafikkort med open source -drivere.
  • Gallium3D -understøttelse til Intel er i gang, så det fungerer ikke endnu.
  • Uprøvet med NVIDIA -kort, da jeg ikke ejer et NVIDIA -kort. Da NVIDIA open source -driver er Gallium3D aktiveret, bør denne metode fungere.
  • Gallium3D er en API, der gør det lettere at udvikle drivere til grafikkort ved at levere et sæt standardbiblioteker og grænseflader. AMD og NVIDIA open source -drivere er bygget på Gallium3D.

    For at vise FPS -tæller i native Linux -spil skal du bruge kommandoen herunder efter at have udskiftet/path/to/executable med din egen sti til eksekverbar spil:

    GALLIUM_HUD='enkel, fps' /sti/til/eksekverbar

    For at vise FPS -tæller i Windows -spil, der kører på Linux via Wine, skal du bruge kommandoen herunder efter at have udskiftet/path/to/executable med din egen sti til spil.

    GALLIUM_HUD='enkel, fps' vin /sti/til/eksekverbar

    Hvis du bruger et vinpræfiks, vil kommandoen være (erstat/sti/til/vin/præfiks og/sti/til/eksekverbar):

    GALLIUM_HUD = 'simple, fps' WINEPREFIX =/path/to/wine/prefix wine/path/to/executable

    I skærmbilledet ovenfor bruger jeg en tilpasset GALLIUM_HUD -variabel, der også viser GPU- og CPU -temperaturer. Denne brugerdefinerede kommando er forskellig for forskellige pc -konfigurationer. Hvis du vil læse mere om alle tilpasningsmuligheder, skal du køre kommandoer:

    sudopassendeinstallerebord-redskaber
    GALLIUM_HUD=Hjælpglxgears

    Bare for reference, her er den brugerdefinerede kommando, jeg brugte i skærmbillederne ovenfor:

    GALLIUM_HUD='simple, fps; sensors_temp_cu-amdgpu-pci-1c00.temp1;
    sensorer_temp_cu-k10temp-pci-00c3.Tdie '
    /sti/til/eksekverbar

    Metode 4 (Vulkan Overlay Table)

    Kompatibilitetsnotater:

    • Fungerer kun med Vulkan -spil.
    • Virker kun med Ubuntu 19.10+ og andre distributioner, der har det nyeste Mesa med vulkan -overlay lag.
    • Fungerer med native -spil og Steam Proton -spil, der kører med DXVK/D9VK -understøttelse.
    • Arbejder med vinspil, der kører med DXVK/D9VK libs.
    • Arbejdsstatus ukendt for Wine's Vkd3d . Da dette er et Vulkan -lag, bør det fungere med alt, så længe Mesa er bygget med VK_LAYER_MESA_overlay -understøttelse.
    • Testet med at arbejde med AMD -grafikkort og integrerede Intel -kort med open source -drivere.
    • Uprøvet med NVIDIA -kort, da jeg ikke ejer et NVIDIA -kort. Da dette er et Vulkan -lag, bør det fungere med alt, så længe Mesa er bygget med VK_LAYER_MESA_overlay -understøttelse.

    Vulkan overlay bord er et nyt Vulkan -lag tilføjet til de seneste builds af Mesa. Det viser forskellige oplysninger om den kørende applikation ved hjælp af et overlay.

    For at vise FPS -tæller i native Linux -spil skal du bruge kommandoen herunder efter at have udskiftet/path/to/executable med din egen sti til eksekverbar spil:

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG = position = øverst til venstre/sti/til/eksekverbar

    For at vise FPS -tæller i Windows -spil, der kører på Linux via Wine og DXVK, skal du bruge kommandoen herunder efter udskiftning/sti/til/eksekverbar med din egen spil -eksekverbare sti:

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG = position = vin øverst til venstre/sti/til/eksekverbar

    Hvis du bruger et vinpræfiks, vil kommandoen være (erstat/sti/til/vin/præfiks og/sti/til/eksekverbar):

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_overlay
    VK_LAYER_MESA_OVERLAY_CONFIG = position = øverst til venstre
    WINEPREFIX =/path/to/wine/prefix wine/path/to/executable

    Method 5 (DXVK HUD)

    Kompatibilitetsnotater:

    • Fungerer kun med Vulkan -spil, der kører i Wine og Proton med DXVK/D9VK libs.
    • Testet med at arbejde med AMD og integrerede Intel -grafikkort med open source -drivere.
    • Uprøvet med NVIDIA -kort, da jeg ikke ejer et NVIDIA -kort. Kildekoden har forpligtelser, der nævner NVIDIA -support, så denne metode burde fungere.

    DXVK leverer et Vulkan-baseret oversættelseslag til D3D10 og D3D11, så brugerne kan spille Direct3D 10/11 spil på Linux. D9VK bruger DXVK -backend til at levere en ekstra Direct3D9 -implementering, der kan bruges til at spille spil bygget på D3D9.

    For at vise FPS -tæller i DXVK -spil, der kører på Linux via Wine, skal du bruge kommandoen herunder efter udskiftning/sti/til/eksekverbar med din egen spileksekverbare sti:

    DXVK_HUD= fpsvin /sti/til/eksekverbar

    Hvis du bruger et vinpræfiks, vil kommandoen være (erstat/sti/til/vin/præfiks og/sti/til/eksekverbar):

    DXVK_HUD= fpsWINEPREFIX=/sti/til/vin/præfiksvin /sti/til/eksekverbar

    Dette markerer afslutningen på dette indlæg. Afslutningsvis vil jeg nævne en lille detalje udeladt ovenfra. Alle de ikke-damp-metoder, der er forklaret ovenfor, fungerer også for Steam-spil. Du skal erstatte/path/to/executable eller wine/path/to/executable eller WINEPREFIX =/path/to/wine/prefix wine/path/to/executable med % command % i de samme kommandoer, der bruges ovenfor. Tilføj bare den fulde kommando for at starte muligheder i spilegenskaber i Steam -appen, som vist på skærmbilledet herunder: