Cum se afișează contorul FPS în jocurile Linux

How Show Fps Counter Linux Games



Jocurile Linux au avut o presiune majoră atunci când Valve anunțate Suport Linux pentru clientul Steam și jocurile acestora în 2012. De atunci, multe jocuri AAA și indie și-au făcut drum către Linux și numărul de utilizatori care joacă pe Linux au crescut considerabil.

Odată cu creșterea jocurilor Linux, mulți utilizatori au început să caute modalități adecvate de a afișa contorul de cadre pe secundă (FPS) ca o suprapunere la rularea jocurilor Linux. Un contor FPS ajută la îmbunătățirea performanței jocurilor care rulează, precum și la evaluarea comparativă a capacității generale a unui PC de a juca jocuri la diferite rezoluții.







Din păcate, nu există o singură modalitate unificată de a afișa contorul FPS în toate jocurile Linux, care este independent de tehnologiile de bază pe care rulează un joc. Renderele și API-urile diferite au moduri diferite de a afișa contorul FPS. Acest ghid va explica diverse metode care pot fi utilizate pentru a afișa un contor FPS în jocurile Linux.



Note de compatibilitate:



  • Funcționează cu jocurile OpenGL și Vulkan.
  • Funcționează cu jocuri native și Proton Proton este un strat de compatibilitate inclus în Steam pentru rularea jocurilor Windows în Linux. Se bazeaza pe Vin , DXVK și D9VK proiecte open source cu patch-uri suplimentare și noi caracteristici adăugate de dezvoltatorii Valve / Wine.
  • Funcționează cu jocuri achiziționate pe Steam sau jocuri de la terți adăugate la Steam de către utilizator.
  • Testat lucrând cu plăci grafice integrate Intel și AMD.
  • Netestat cu carduri NVIDIA deoarece nu dețin un card NVIDIA. Dar, conform forumurilor comunității Steam, contorul de fps încorporat funcționează bine pe cardurile NVIDIA.

Steam pentru Linux include un contor FPS încorporat care poate fi comutat din setări. Aceasta este probabil una dintre cele mai compatibile opțiuni care funcționează cu majoritatea jocurilor Linux. Cu toate acestea, am avut unele probleme cu jocurile cu motor Unity care nu afișau contorul FPS încorporat. Această opțiune necesită, de asemenea, să aveți un cont Steam și un client Steam instalat pe sistemul dvs.







Steam vă permite chiar să adăugați jocuri care nu au fost achiziționate de la Steam în biblioteca de jocuri, iar contorul FPS încorporat funcționează și în aceste jocuri. Pentru a adăuga un joc non-steam, faceți clic pe Jocuri, apoi faceți clic pe Add a Non-Steam Game to My Library, așa cum se arată în captura de ecran de mai jos:

Navigați la locația fișierelor dvs. de joc și apoi comutați opțiunea Toate fișierele din partea de jos.

Selectați executabilul jocului și apoi faceți clic pe ADĂUGARE PROGRAME SELECTATE așa cum se arată în captura de ecran de mai jos:

Dacă doriți să rulați un joc numai Windows în stratul de compatibilitate Proton al Steam, va trebui să activați o opțiune suplimentară în proprietățile jocului.

Am adăugat executabilul SuperTuxKart în Biblioteca Steam, iar contorul FPS funcționează bine și aici. Rețineți că orice joc terță parte adăugat în biblioteca Steam nu ar trebui să aibă spații în calea lor de localizare a fișierului.

Metoda 2 (LibGL)

Note de compatibilitate:

  • Funcționează numai cu jocuri OpenGL.
  • Funcționează cu jocuri native și jocuri Wine.
  • Testat lucrând cu plăci grafice integrate Intel și AMD cu drivere open source.
  • Netestat cu carduri NVIDIA deoarece nu dețin un card NVIDIA. Cu toate acestea, ar trebui să funcționeze cu GPU-uri NVIDIA cu drivere open source.

LibGL este o bibliotecă Mesa care expune API-urile OpenGL aplicațiilor și jocurilor și este inclusă în aproape toate distribuțiile Linux în mod implicit. Folosind această bibliotecă și un alt pachet care creează un HUD pe ecran vizibil, vom afișa un contor FPS în jocurile Linux. Rulați următoarea comandă pentru a instala pachetul necesar:

sudoaptinstalarexosd-bin

Pentru a afișa contorul FPS în jocurile native Linux, utilizați comanda de mai jos după înlocuirea / path / to / executable cu propria cale executabilă a jocului. Puteți afla mai multe despre toate opțiunile osd-cat de la Aici .

LIBGL_SHOW_FPS = 1 / cale / către / executabil 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 = left

Pentru a afișa contorul FPS în jocurile Windows care rulează pe Linux prin Wine, utilizați comanda de mai jos după înlocuirea / path / to / executable cu propria cale executabilă a jocului.

WINEDEBUG = fps wine / path / to / executable 2> & 1 | tee / dev / stderr |
sed -u -n -e '/ trace / s /.* approx // p' | osd_cat --lines = 1 --color = galben
--outline = 1 --pos = top --align = centru

Dacă utilizați un prefix Wine, comanda ar fi (înlocuiți / cale / la / vin / prefix și / cale / la / executabil):

WINEDEBUG = fps WINEPREFIX = / cale / către / vin / prefix vin
/ cale / către / executabil 2> & 1 | tee / dev / stderr | sed -u -n -e '/ trace / s /
. * aprox // p '| osd_cat --lines = 1 --color = yellow --outline = 1 --pos = top
--align = centru

Această metodă are o mică limitare. În timp ce puteți personaliza osd-cat HUD, acesta rămâne într-o poziție fixă ​​pe zona de afișare, fără a lua în considerare geometria ferestrei de joc. În captura de ecran de mai sus, contorul FPS este afișat deasupra ferestrei jocului, nu în interiorul acestuia. Jocurile care rulează pe ecran complet nu sunt afectate de acest lucru.

Metoda 3 (Gallium3D)

  • Funcționează numai cu jocuri OpenGL.
  • Funcționează cu jocuri native și jocuri Wine.
  • Testat lucrul cu plăci grafice AMD cu drivere open source.
  • Suportul Gallium3D pentru Intel este în curs de desfășurare, deci nu funcționează încă.
  • Netestat cu carduri NVIDIA deoarece nu dețin un card NVIDIA. Deoarece driverul open source NVIDIA este activat Gallium3D, această metodă ar trebui să funcționeze.
  • Gallium3D este un API care facilitează dezvoltarea de drivere pentru plăci grafice, oferind un set de biblioteci și interfețe standard. Driverele open source AMD și NVIDIA sunt construite pe Gallium3D.

    Pentru a afișa contorul FPS în jocurile native Linux, utilizați comanda de mai jos după înlocuirea / path / to / executable cu propria cale executabilă a jocului:

    GALLIUM_HUD=„simplu, fps” /cale/la/executabil

    Pentru a afișa contorul FPS în jocurile Windows care rulează pe Linux prin Wine, utilizați comanda de mai jos după înlocuirea / path / to / executable cu propria cale executabilă a jocului.

    GALLIUM_HUD=„simplu, fps” vin /cale/la/executabil

    Dacă utilizați un prefix Wine, comanda ar fi (înlocuiți / cale / la / vin / prefix și / cale / la / executabil):

    GALLIUM_HUD = 'simplu, fps' WINEPREFIX = / cale / la / vin / prefix vin / cale / la / executabil

    În captura de ecran de mai sus, folosesc o variabilă GALLIUM_HUD personalizată, care arată și GPU și temperaturile procesorului. Această comandă personalizată este diferită pentru diferite configurații ale computerului. Pentru a citi mai multe despre toate opțiunile de personalizare, rulați comenzile:

    sudoaptinstalaretable-utils
    GALLIUM_HUD=Ajutorglxgears

    Doar ca referință, iată comanda personalizată pe care am folosit-o în capturile de ecran de mai sus:

    GALLIUM_HUD='simplu, fps; sensors_temp_cu-amdgpu-pci-1c00.temp1;
    sensors_temp_cu-k10temp-pci-00c3.Tdie '
    /cale/la/executabil

    Metoda 4 (Vulkan Overlay Table)

    Note de compatibilitate:

    • Funcționează numai cu jocurile Vulkan.
    • Funcționează numai cu Ubuntu 19.10+ și alte distribuții cu cea mai recentă Mesa cu strat de acoperire vulkan.
    • Funcționează cu jocuri native și jocuri Steam Proton care rulează cu suport DXVK / D9VK.
    • Funcționează cu jocurile Wine care rulează cu libs DXVK / D9VK.
    • Stare de lucru necunoscută pentru Wine’s Vkd3d . Deoarece acesta este un strat Vulkan, ar trebui să funcționeze cu orice, atâta timp cât Mesa este construit cu suportul VK_LAYER_MESA_overlay.
    • Testat lucrând cu plăci grafice AMD și plăci Intel integrate cu drivere open source.
    • Netestat cu carduri NVIDIA deoarece nu dețin un card NVIDIA. Deoarece acesta este un strat Vulkan, ar trebui să funcționeze cu orice, atâta timp cât Mesa este construit cu suportul VK_LAYER_MESA_overlay.

    Masă de acoperire Vulkan este un nou strat Vulkan adăugat la versiunile recente ale Mesa. Afișează diverse informații despre aplicația care rulează utilizând o suprapunere.

    Pentru a afișa contorul FPS în jocurile native Linux, utilizați comanda de mai jos după înlocuirea / path / to / executable cu propria cale executabilă a jocului:

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG = poziție = stânga sus / cale / către / executabil

    Pentru a afișa contorul FPS în jocurile Windows care rulează pe Linux prin Wine și DXVK, utilizați comanda de mai jos după înlocuirea / path / to / executable cu propria cale executabilă a jocului:

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG = poziție = vin stânga-sus / cale / către / executabil

    Dacă utilizați un prefix Wine, comanda ar fi (înlocuiți / cale / la / vin / prefix și / cale / la / executabil):

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_overlay
    VK_LAYER_MESA_OVERLAY_CONFIG = poziție = sus-stânga
    WINEPREFIX = / cale / la / vin / prefix vin / cale / la / executabil

    Metoda 5 (DXVK HUD)

    Note de compatibilitate:

    • Funcționează numai cu jocurile Vulkan care rulează în Wine și Proton cu libs DXVK / D9VK.
    • Testat lucrând cu AMD și plăci grafice Intel integrate cu drivere open source.
    • Netestat cu carduri NVIDIA deoarece nu dețin un card NVIDIA. Codul sursă are angajamente care menționează suportul NVIDIA, astfel încât această metodă ar trebui să funcționeze.

    DXVK oferă un strat de traducere bazat pe Vulkan pentru D3D10 și D3D11, permițând utilizatorilor să joace jocuri Direct3D 10/11 pe Linux. D9VK folosește backend-ul DXVK pentru a oferi o implementare suplimentară Direct3D9 care poate fi utilizată pentru a juca jocuri construite pe D3D9.

    Pentru a afișa contorul FPS în jocurile DXVK care rulează pe Linux prin Wine, utilizați comanda de mai jos după înlocuirea / path / to / executable cu propria cale executabilă a jocului:

    DXVK_HUD= fpsvin /cale/la/executabil

    Dacă utilizați un prefix Wine, comanda ar fi (înlocuiți / cale / la / vin / prefix și / cale / la / executabil):

    DXVK_HUD= fpsWINEPREFIX=/cale/la/vin/prefixvin /cale/la/executabil

    Aceasta marchează sfârșitul acestei postări. În concluzie, aș menționa un mic detaliu omis de mai sus. Toate metodele non-steam explicate mai sus vor funcționa și pentru jocurile Steam. Trebuie să înlocuiți / path / to / executable sau wine / path / to / executable sau WINEPREFIX = / path / to / wine / prefix wine / path / to / executable cu% command% în aceleași comenzi folosite mai sus. Doar adăugați comanda completă pentru a lansa opțiuni în proprietățile jocului din aplicația Steam, așa cum se arată în captura de ecran de mai jos: