Paano Maipakita ang FPS Counter sa Mga Larong Linux

How Show Fps Counter Linux Games



Ang gaming sa Linux ay nakakuha ng isang pangunahing push kung kailan Inanunsyo ng Valve Ang suporta ng Linux para sa Steam client at ang kanilang mga laro noong 2012. Simula noon, maraming mga AAA at indie na laro ang nagtungo sa Linux at ang bilang ng mga gumagamit na nakikipaglaro sa Linux ay tumaas nang malaki.

Sa paglaki ng paglalaro ng Linux, maraming mga gumagamit ang nagsimulang maghanap ng mga tamang paraan upang maipakita ang mga frame sa bawat segundo (FPS) counter bilang isang overlay sa pagpapatakbo ng mga laro sa Linux. Ang isang counter ng FPS ay tumutulong sa pag-tweak ng pagganap ng pagpapatakbo ng mga laro pati na rin sa benchmarking ng pangkalahatang kakayahan ng PC na maglaro ng mga laro sa iba't ibang mga resolusyon.







Sa kasamaang palad walang nag-iisang paraan upang maipakita ang counter ng FPS sa lahat ng mga laro sa Linux na independiyente sa mga pinagbabatayan na teknolohiya na tumatakbo ang isang laro. Ang magkakaibang mga renderer at API ay may iba't ibang paraan upang maipakita ang counter ng FPS. Ipapaliwanag ng gabay na ito ang iba't ibang mga pamamaraan na maaaring magamit upang maipakita ang isang counter ng FPS sa mga larong Linux.



Mga Tala ng pagiging tugma:



  • Gumagana sa mga laro ng OpenGL at Vulkan.
  • Gumagawa sa mga katutubong laro at Proton Ang Proton ay isang layer ng pagiging tugma na kasama sa Steam para sa pagpapatakbo ng mga laro sa Windows sa Linux. Ito ay batay sa Alak , DXVK at D9VK mga proyekto ng bukas na mapagkukunan na may karagdagang mga patch at mga bagong tampok na idinagdag ng mga developer ng Valve / Wine.
  • Gumagana sa mga laro na binili sa mga laro ng Steam o third party na idinagdag sa Steam ng gumagamit.
  • Sinubukan ang pagtatrabaho kasama ang pinagsamang Intel at AMD graphics card.
  • Hindi nasubukan sa mga card ng NVIDIA dahil wala akong pagmamay-ari ng isang NVIDIA card. Ngunit ayon sa mga forum ng pamayanan ng Steam, ang built-in na fps counter ay gumagana nang maayos sa mga card ng NVIDIA.

Ang Steam para sa Linux ay may kasamang built-in na FPS counter na maaaring i-toggle mula sa mga setting. Marahil ito ay isa sa mga pinaka katugmang pagpipilian na gumagana sa isang karamihan ng mga laro sa Linux. Gayunpaman mayroon akong ilang mga isyu sa mga laro ng engine ng Unity engine na hindi ipinapakita ang built-in na FPS counter. Ang pagpipiliang ito ay nangangailangan din sa iyo na magkaroon ng isang Steam account at Steam client na naka-install sa iyong system.







Pinapayagan ka rin ng Steam na magdagdag ng mga laro na hindi binili mula sa Steam sa library ng laro at gumagana rin ang built-in na counter ng FPS sa mga larong ito. Upang magdagdag ng laro na hindi singaw, mag-click sa Mga Laro at pagkatapos ay mag-click sa Magdagdag ng isang Laro na Hindi Pang-Steam sa Aking Library, tulad ng ipinakita sa screenshot sa ibaba:

Mag-browse sa lokasyon ng iyong mga file ng laro at pagkatapos ay i-toggle ang pagpipiliang Lahat ng Mga File sa ibaba.

Piliin ang naisakatuparan ng laro at pagkatapos ay mag-click sa ADD SELected PROGRAMS tulad ng ipinakita sa screenshot sa ibaba:

Kung nais mong magpatakbo ng isang laro lamang sa Windows sa layer ng pagiging tugma ng Proton ng Steam, kakailanganin mong paganahin ang isang karagdagang pagpipilian sa mga pag-aari ng laro.

Nagdagdag ako ng SuperTuxKart na maipapatupad sa Steam Library, at ang FPS counter ay gumagana rin dito. Tandaan na ang anumang mga laro ng third party na idinagdag sa Steam library ay hindi dapat magkaroon ng anumang mga puwang sa kanilang path ng lokasyon ng file.

Paraan 2 (LibGL)

Mga Tala ng pagiging tugma:

  • Gumagawa lamang sa mga laro ng OpenGL.
  • Gumagana sa mga katutubong laro at mga larong Alak.
  • Sinubukan ang pagtatrabaho kasama ang pinagsamang Intel at AMD graphics card na may mga bukas na driver ng mapagkukunan.
  • Hindi nasubukan sa mga card ng NVIDIA dahil wala akong pagmamay-ari ng isang NVIDIA card. Gayunpaman dapat itong gumana sa mga NVIDIA GPU na may bukas na mga driver ng mapagkukunan.

LibGL ay isang mesa library na naglalantad ng mga OpenGL API sa mga app at laro at kasama ito sa halos lahat ng pamamahagi ng Linux bilang default. Gamit ang library na ito at isa pang pakete na lumilikha ng isang HUD sa nakikitang pagpapakita, magpapakita kami ng isang counter ng FPS sa mga larong Linux. Patakbuhin ang sumusunod na utos upang mai-install ang kinakailangang pakete:

sudoapti-installxosd-bin

Upang maipakita ang counter ng FPS sa mga katutubong laro ng Linux, gamitin ang utos sa ibaba pagkatapos palitan / landas / sa / maisagawa sa iyong sariling landas na maipapatupad ng laro. Maaari mong malaman ang higit pa tungkol sa lahat ng mga pagpipilian sa osd-cat mula dito .

LIBGL_SHOW_FPS = 1 / path / to / maipapatupad 2> & 1 |
tee / dev / stderr | sed -u -n -e '/ ^ libGL: FPS = /{s/.* ([^] * ) = / 1 /; p}' |
osd_cat --lines = 1 --color = yellow --outline = 1 --pos = itaas --align = pakaliwa

Upang maipakita ang counter ng FPS sa mga larong Windows na tumatakbo sa Linux sa pamamagitan ng Alak, gamitin ang utos sa ibaba pagkatapos palitan / landas / sa / maisagawa sa iyong sariling landas na maipapatupad ng laro.

WINEDEBUG = fps wine / path / to / maipapatupad 2> & 1 | tee / dev / stderr |
sed -u -n -e '/ bakas / s /.* tinatayang // p' | osd_cat --lines = 1 --color = dilaw
--outline = 1 --pos = top --align = center

Kung gumagamit ka ng isang unlapi ng alak, ang utos ay magiging (palitan / landas / sa / alak / awalan at / landas / sa / maisagawa):

WINEDEBUG = fps WINEPREFIX = / path / sa / alak / awtomatikong alak
/ path / to / maipapatupad 2> & 1 | tee / dev / stderr | sed -u -n -e '/ bakas / s /
. * tinatayang // p '| osd_cat --lines = 1 --color = dilaw --outline = 1 --pos = itaas
--align = gitna

Ang pamamaraang ito ay may isang maliit na limitasyon. Habang maaari mong ipasadya ang osd-cat HUD, mananatili ito sa isang nakapirming posisyon sa lugar ng pagpapakita nang hindi isinasaalang-alang ang geometry ng window ng laro. Sa screenshot sa itaas, ang FPS counter ay ipinapakita sa itaas ng window ng laro, hindi sa loob nito. Ang mga larong tumatakbo sa fullscreen ay hindi apektado nito.

Paraan 3 (Gallium3D)

  • Gumagawa lamang sa mga laro ng OpenGL.
  • Gumagana sa mga katutubong laro at mga larong Alak.
  • Sinubukan ang pagtatrabaho sa mga AMD graphics card na may bukas na mga driver ng mapagkukunan.
  • Ang suporta ng Gallium3D para sa Intel ay patuloy, kaya't hindi pa gumagana.
  • Hindi nasubukan sa mga card ng NVIDIA dahil wala akong pagmamay-ari ng isang NVIDIA card. Dahil ang NVIDIA open source driver ay pinagana ang Gallium3D, dapat gumana ang pamamaraang ito.
  • Gallium3D ay isang API na ginagawang mas madali upang makabuo ng mga driver para sa mga graphic card sa pamamagitan ng pagbibigay ng isang hanay ng mga karaniwang library at interface. Ang mga driver ng bukas na mapagkukunan ng AMD at NVIDIA ay itinayo sa Gallium3D.

    Upang maipakita ang counter ng FPS sa mga katutubong laro ng Linux, gamitin ang utos sa ibaba pagkatapos palitan / landas / sa / maisagawa sa iyong sariling landas na maipapatupad ng laro:

    GALLIUM_HUD='simple, fps' /landas/sa/maipapatupad

    Upang maipakita ang counter ng FPS sa mga larong Windows na tumatakbo sa Linux sa pamamagitan ng Alak, gamitin ang utos sa ibaba pagkatapos palitan / landas / sa / maisagawa sa iyong sariling landas na maipapatupad ng laro.

    GALLIUM_HUD='simple, fps' alak /landas/sa/maipapatupad

    Kung gumagamit ka ng isang unlapi ng alak, ang utos ay magiging (palitan / landas / sa / alak / awalan at / landas / sa / maisagawa):

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

    Sa screenshot sa itaas, gumagamit ako ng isang pasadyang variable na GALLIUM_HUD na nagpapakita rin ng mga temperatura ng GPU at CPU. Ang pasadyang utos na ito ay naiiba para sa iba't ibang mga pagsasaayos ng PC. Upang mabasa ang higit pa tungkol sa lahat ng mga pagpipilian sa pagpapasadya, magpatakbo ng mga utos:

    sudoapti-installmesa-util
    GALLIUM_HUD=tulunganglxgears

    Para lamang sa sanggunian, narito ang Pasadyang utos na ginamit ko sa mga screenshot sa itaas:

    GALLIUM_HUD='simple, fps; sensors_temp_cu-amdgpu-pci-1c00.temp1;
    sensors_temp_cu-k10temp-pci-00c3. Tdie '
    /landas/sa/maipapatupad

    Paraan 4 (Talaan ng Vulkan Overlay)

    Mga Tala ng pagiging tugma:

    • Gumagana lamang sa mga laro ng Vulkan.
    • Gumagawa sa Ubuntu 19.10+ lamang at iba pang mga pamamahagi na mayroong pinakabagong Mesa na may vulkan overlay layer.
    • Gumagana sa mga katutubong laro at mga laro ng Steam Proton na tumatakbo sa suporta ng DXVK / D9VK.
    • Gumagana kasama ang mga larong Alak na tumatakbo kasama ang DXVK / D9VK libs.
    • Hindi alam ang katayuan sa pagtatrabaho para sa Wine Vkd3d . Dahil ito ay isang layer ng Vulkan, dapat itong gumana sa anumang bagay hangga't ang Mesa ay binuo gamit ang suporta ng VK_LAYER_MESA_overlay.
    • Nasubukan ang pagtatrabaho sa mga AMD graphics card at isinama ang mga Intel card na may mga open source driver.
    • Hindi nasubukan sa mga card ng NVIDIA dahil wala akong pagmamay-ari ng isang NVIDIA card. Dahil ito ay isang layer ng Vulkan, dapat itong gumana sa anumang bagay hangga't ang Mesa ay binuo gamit ang suporta ng VK_LAYER_MESA_overlay.

    Vulkan overlay table ay isang bagong layer ng Vulkan na idinagdag sa kamakailang mga build ng Mesa. Nagpapakita ito ng iba't ibang impormasyon tungkol sa pagpapatakbo ng application gamit ang isang overlay.

    Upang maipakita ang counter ng FPS sa mga katutubong laro ng Linux, gamitin ang utos sa ibaba pagkatapos palitan / landas / sa / maisagawa sa iyong sariling landas na maipapatupad ng laro:

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG = posisyon = itaas-kaliwa / landas / patungo / maipapatupad

    Upang maipakita ang counter ng FPS sa mga larong Windows na tumatakbo sa Linux sa pamamagitan ng Alak at DXVK, gamitin ang utos sa ibaba pagkatapos palitan / landas / sa / maisagawa sa iyong sariling landas na maipapatupad ng laro:

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_overlay VK_LAYER_MESA_OVERLAY_CONFIG = posisyon = tuktok na kaliwang alak / daanan / patungo / maipapatupad

    Kung gumagamit ka ng isang unlapi ng alak, ang utos ay magiging (palitan / landas / sa / alak / awalan at / landas / sa / maisagawa):

    VK_INSTANCE_LAYERS = VK_LAYER_MESA_overlay
    VK_LAYER_MESA_OVERLAY_CONFIG = posisyon = kaliwa sa itaas
    WINEPREFIX = / path / to / alak / awalan ng alak / path / sa / maipapatupad

    Paraan 5 (DXVK HUD)

    Mga Tala ng pagiging tugma:

    • Gumagana lamang sa mga laro ng Vulkan na tumatakbo sa Alak at Proton na may DXVK / D9VK libs.
    • Sinubukan ang pagtatrabaho sa AMD at isinama ang mga Intel graphics card na may mga bukas na driver ng mapagkukunan.
    • Hindi nasubukan sa mga card ng NVIDIA dahil wala akong pagmamay-ari ng isang NVIDIA card. Nagawa ng source code na binabanggit ang suporta ng NVIDIA kaya't dapat gumana ang pamamaraang ito.

    Nagbibigay ang DXVK ng isang layer ng pagsasalin na batay sa Vulkan para sa D3D10 at D3D11 na pinapayagan ang mga gumagamit na maglaro ng mga Direktang 3/11 na laro sa Linux. Gumagamit ang D9VK ng backend ng DXVK upang magbigay ng isang karagdagang pagpapatupad ng Direct3D9 na maaaring magamit upang maglaro ng mga laro na binuo sa D3D9.

    Upang maipakita ang counter ng FPS sa mga laro ng DXVK na tumatakbo sa Linux sa pamamagitan ng Alak, gamitin ang utos sa ibaba pagkatapos palitan / landas / sa / maisagawa sa iyong sariling landas na maipapatupad ng laro:

    DXVK_HUD= fpsalak /landas/sa/maipapatupad

    Kung gumagamit ka ng isang unlapi ng alak, ang utos ay magiging (palitan / landas / sa / alak / awalan at / landas / sa / maisagawa):

    DXVK_HUD= fpsWINEPREFIX=/landas/sa/alak/unlapialak /landas/sa/maipapatupad

    Ito ang marka ng pagtatapos ng post na ito. Upang tapusin, babanggitin ko ang isang maliit na detalye na tinanggal mula sa itaas. Ang lahat ng mga di-singaw na pamamaraan na ipinaliwanag sa itaas ay gagana rin para sa mga laro ng Steam. Kailangan mong palitan / landas / sa / maisakatuparan o alak / landas / sa / maisagawa o WINEPREFIX = / path / sa / alak / awtomatikong alak / landas / sa / maisagawa ng% utos% sa parehong mga utos na ginamit sa itaas. Idagdag lamang ang buong utos upang maglunsad ng mga pagpipilian sa mga pag-aari ng laro sa loob ng Steam app, tulad ng ipinakita sa screenshot sa ibaba: