---
title: Przewodnik po graniu na CachyOS
description: 'Obejmuje instalację niezbędnych pakietów, granie na Steamie z Protonem, różne opcje wersji Protona, Lutris jako centralny hub dla wszystkich gier oraz instalatory skryptowe dla popularnych gier.'
tableOfContents:
  minHeadingLevel: 1
  maxHeadingLevel: 4
---

import ImageComponent from '~/components/image-component.astro';
import MultipleImageComponent from '~/components/multiple-images-component.astro';
import { Tabs, TabItem, Steps } from '@astrojs/starlight/components';

Witaj w przewodniku po graniu na CachyOS. Przeprowadzi Cię on przez kluczowe aspekty konfiguracji wszystkiego, co potrzebne do grania.

Przede wszystkim.

*Pamiętaj, że uzyskanie dwucyfrowej poprawy liczby klatek na sekundę nie zawsze jest możliwe, a czasem jest wręcz niemożliwe. Optymalizacje mogą prowadzić do niewielkich ulepszeń lub nawet żadnych, w zależności od gry i konfiguracji sprzętowej.*

*Nie można oczekiwać, że optymalizacje oprogramowania zadziałają jak darmowe ulepszenie sprzętu.*

<ImageComponent imgsrc={import('~/assets/images/gaming-meme.jpeg')} />

## Wymagania wstępne

:::caution
Przed kontynuowaniem upewnij się, że sterowniki Twojej karty graficznej są zainstalowane i działają poprawnie, w przeciwnym razie możesz napotkać problemy podczas grania.
:::

### Niezbędne pakiety

Aby ułatwić konfigurację CachyOS do gier, wszystkie niezbędne pakiety gamingowe zostały zebrane w jeden meta-pakiet, który zawiera wszystkie potrzebne zależności i biblioteki do grania w Linuksie, oraz w osobny meta-pakiet z narzędziami i launcherami/sklepami.

*Jeśli zauważysz, że brakuje jakichś pakietów, daj znać zespołowi CachyOS.*

Postępuj zgodnie z poniższymi krokami, aby rozpocząć konfigurację do gier.
<Tabs>
    <TabItem label='Meta-pakiet'>
        Meta-pakiet `cachyos-gaming-meta` zawiera wiele bibliotek związanych z grami.
        ```sh
        sudo pacman -S cachyos-gaming-meta
        ```
    </TabItem>
    <TabItem label='Narzędzia i sklepy'>
        Meta-pakiet `cachyos-gaming-applications` zawiera następujące elementy:
          - Narzędzia
            - Gamescope, Goverlay, MangoHud
          - Launchery
            - Steam, Heroic Games Launcher, Lutris
        ```sh
        sudo pacman -S cachyos-gaming-applications
        ```
    </TabItem>
    <TabItem label= 'CachyOS Hello'>
    - Przejdź do **Aplikacje/Usprawnienia** i kliknij `Zainstaluj pakiety do gier`.

    *CachyOS Hello instaluje zarówno `cachyos-gaming-meta`, jak i `cachyos-gaming-applications`.*
    </TabItem>
</Tabs>

## Proton-CachyOS

Proton-CachyOS bazuje na gałęzi `bleeding-edge` Protona i wprowadza szereg modyfikacji.
- **Patche z wine-staging**
- **Wine Fullscreen FSR**
- **Zawiera kodeki wideo i audio dla przerywników filmowych w grach**
- **Wsparcie dla umu-launcher, w tym UMU-Protonfixes**
- **Dodaje wczesne poprawki/obejścia dla gier**

:::note[NTSync jest włączony jako ustawienie domyślne]
Można go wyłączyć ustawiająć zmienną środowiskową 'PROTON_NO_NTSYNC=1'
:::

### Jak poprawnie ustawić wiele opcji uruchamiania

Opcje uruchamiania w Steam są konstruowane według następującego wzorca.

```bash
<zmienne środowiskowe> <wrappery> %command% <argumenty aplikacji>
```

- **`<zmienne środowiskowe>`**: Są to opcje w formie `ZMIENNA=wartość`
  ```bash title="Przykłady"
  PROTON_DXVK_D3D8=1
  # Lub
  DXVK_HUD="fps,memory,version,api"
  ```

- **`<wrappery>`**: Są to aplikacje i skrypty, które modyfikują sposób uruchamiania właściwej aplikacji. Argumenty dla wrappera zazwyczaj znajdują się po jego nazwie.
  ```bash title="Przykłady"
  mangohud --dlsym
  # Lub
  gamescope -W 1680 -H 1050 -w 1280 -h 720 -S fit -F fsr --mangoapp --
  ```

- **`%command%`**: To jest właściwa aplikacja. Powinno być to podane dokładnie w tej formie, a Steam zastąpi to odpowiednią komendą podczas uruchamiania aplikacji.

- **`<argumenty aplikacji>`**: Są to różne argumenty dla właściwej aplikacji, zależne od niej samej.
  ```bash title="Przykład"
  %command% -dx11
  ```

**Przykład pełnej opcji uruchamiania, łączącej wszystkie elementy:**

  ```bash
  __GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1 prime-run game-performance %command% -dx11
  ```

:::caution
Nie dodawaj wielu `%command%`, używając ich jako separatorów dla wielu opcji uruchamiania.

Przykład: `__GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1 %command% game-performance %command% prime-run %command%`

W tym przypadku wszystko po pierwszym `%command%` zostanie zignorowane, ponieważ jest traktowane jako argumenty gry, dlatego tylko `__GL_SHADER_DISK_CACHE_SKIP_CLEANUP=1` zostanie rozpoznane jako opcja uruchamiania.
:::

#### Zmienne środowiskowe

<Tabs>
<TabItem label="Grafika i Upscaling">

- DLSS i funkcje Nvidia
    - `PROTON_DLSS_UPGRADE=1`: Automatycznie aktualizuje DLSS do najnowszej wersji.
    - `PROTON_DLSS_INDICATOR=1`: Pokazuje wskaźnik statusu DLSS w grze.
    - `PROTON_NVIDIA_LIBS=1`: Włącza biblioteki Nvidia (PhysX, CUDA) - nie jest potrzebne dla DLSS/ray tracingu.

<details>
<summary>Zaawansowane ustawienia Nvidia</summary>

- `PROTON_NVIDIA_NVCUDA=1`: Włącza tylko wsparcie CUDA.
- `PROTON_NVIDIA_NVENC=1`: Włącza tylko kodowanie NVENC.
- `PROTON_NVIDIA_NVML=1`: Włącza monitorowanie NVML.
- `PROTON_NVIDIA_NVOPTIX=1`: Włącza ray tracing OptiX.
- `PROTON_NVIDIA_LIBS_NO_32BIT=1`: Ogranicza biblioteki tylko do 64-bitowych (naprawia problemy z wydajnością na kartach RTX 4000+).
</details>

- Upscaling AMD i Intel
    - `PROTON_FSR4_UPGRADE=1`: Automatycznie aktualizuje FSR do najnowszej wersji.
    - `PROTON_FSR4_RDNA3_UPGRADE=1`: Używa biblioteki FSR4 DLL zoptymalizowanej pod RDNA3.
    - `PROTON_XESS_UPGRADE=1`: Automatycznie aktualizuje XeSS do najnowszej wersji.

</TabItem>

<TabItem label="Wyświetlanie i HDR">

- Wayland i wyświetlanie
    - `PROTON_ENABLE_WAYLAND=1`: Włącza natywne wsparcie dla Waylanda.
      - **Korzyści**: Umożliwia HDR bez Gamescope; poprawia opóźnienia/pacing klatek
      - **Wady**: Psuje nakładkę Steam, obecnie eksperymentalne
    - `PROTON_NO_WM_DECORATION=1`: Wyłącza dekoracje menedżera okien.
      - **Naprawia**: Problemy z pełnym ekranem bez ramek, klikanie myszą przez okna

- Wsparcie dla HDR
    - `PROTON_ENABLE_HDR=1`: Włącza wsparcie dla wyjścia HDR.
      - **Wymagania**: Gamescope z `--hdr-enabled` LUB `PROTON_ENABLE_WAYLAND=1`
      - **Konfiguracja**: [Wymagana dodatkowa konfiguracja](https://wiki.archlinux.org/title/HDR_monitor_support)

</TabItem>

<TabItem label="Wydajność i buforowanie">

- Wydajność procesora oraz synchronizacji FSync/NTSync
    - 'PROTON_NO_NTSYNC=1': używaj FSync zamiast NTsync
        - **Korzyści**: Możliwie poprawia wydajność w niektórych grach które nie działają dobrze z NTSync.

- Zarządzanie shaderami i pamięcią podręczną
    - `PROTON_LOCAL_SHADER_CACHE=1`: Włącza pamięć podręczną shaderów dla każdej gry, podobnie do "Wstępnego buforowania shaderów" w Steam.
        - **Uwaga**: To NIE kompiluje shaderów z wyprzedzeniem, a JEDYNIE izoluje pamięć podręczną shaderów każdej gry. Shadery nadal będą kompilowane podczas rozgrywki.
    - `PROTON_ENABLE_MEDIACONV=1`: Włącza Proton Media Converter.
        - **Uwaga**: Tylko do celów testowych

- AMD Anti-Lag
    - `ENABLE_LAYER_MESA_ANTI_LAG=1`: Włącza AMD Anti-Lag w celu zmniejszenia opóźnienia wejściowego.

</TabItem>

<TabItem label="Sterowanie i kompatybilność">

- Kontroler i sterowanie
    - `PROTON_PREFER_SDL=1`: Obejście problemów z wykrywaniem kontrolera
    - `PROTON_NO_STEAMINPUT=1`: Wyłącza wsparcie dla Steam Input.
        - **Naprawia**: Problemy z kontrolerem/gamepadem w Waylandzie

</TabItem>
</Tabs>

### Konfiguracja Proton-CachyOS z Lutris i Heroic

:::note
Poniższa konfiguracja dotyczy tylko proton-cachyos. Jeśli używasz proton-cachyos-slr, -GE lub -EM, możesz pominąć tę sekcję.
:::

Upewnij się, że masz zainstalowany w systemie umu-launcher z CachyOS. Zainstaluj go za pomocą następującego polecenia.
```sh
sudo pacman -S cachyos/umu-launcher
```

<Tabs>
    <TabItem label='Lutris globalnie'>
    <Steps>
    1. Na głównym ekranie Lutris kliknij ikonę zębatki obok Wine.
    2. Przejdź do zakładki **Opcje runnera** i upewnij się, że Twoje ustawienia są zgodne z poniższymi:
        - **Wersja Wine** = `proton-cachyos`
        - **Użyj systemowego winetricks** = *Wyłączone*
        - **Grafika**
            - **Włącz DXVK** = `Włączone`
              - Uwaga: Zdefiniowane przez użytkownika wersje **DXVK**, **VKD3D** i **DXVK-NVAPI** nie są stosowane przy użyciu `umu-launcher`.
    3. Przejdź do zakładki **Opcje systemowe**.
        - **Lutris**
            - **Wyłącz środowisko uruchomieniowe Lutris** = `Włączone`
            - **Preferuj biblioteki systemowe** = `Włączone`
    4. Przewiń w dół do sekcji **Uruchamianie gry** i znajdź tabelę **Zmienne środowiskowe**.
    5. Dodaj następujące zmienne środowiskowe:
        - **Klucz**: `UMU_RUNTIME_UPDATE` *opcjonalne*
            - **Wartość**: `0`
            - *Pominie to aktualizacje Steam Linux Runtime dla proton-cachyos. Nie używaj tego z żadnym Protonem, który wykorzystuje Steam Linux Runtime, takim jak proton-cachyos-slr, -GE, czy -EM.*
        - **Klucz**: `PROTON_VERB` *opcjonalne*
            - **Wartość**: `waitforexitandrun`
            - *Pozwala to na działanie protonfixes z odpowiadającym im GAMEID.*
    6. Kliknij **Zapisz**, aby zastosować zmiany.
    </Steps>
    </TabItem>
    <TabItem label='Lutris dla gry'>
    <Steps>
    1. Kliknij prawym przyciskiem myszy grę, którą chcesz skonfigurować, a następnie kliknij **Konfiguruj**.
    2. Przejdź do zakładki **Opcje runnera** i upewnij się, że Twoje ustawienia są zgodne z poniższymi:
        - **Wersja Wine** = `proton-cachyos`
        - **Użyj systemowego winetricks** = *Wyłączone*
        - **Grafika**
            - **Włącz DXVK** = `Włączone`
              - Uwaga: Zdefiniowane przez użytkownika wersje **DXVK**, **VKD3D** i **DXVK-NVAPI** nie są stosowane przy użyciu `umu-launcher`.
    3. Przejdź do zakładki **Opcje systemowe**.
        - **Lutris**
            - **Wyłącz środowisko uruchomieniowe Lutris** = `Włączone`
            - **Preferuj biblioteki systemowe** = `Włączone`
    4. Przewiń w dół do sekcji **Uruchamianie gry** i znajdź tabelę **Zmienne środowiskowe**.
    5. Dodaj następujące zmienne środowiskowe:
        - **Klucz**: `UMU_RUNTIME_UPDATE` *opcjonalne*
            - **Wartość**: `0`
            - *Pominie to aktualizacje Steam Linux Runtime dla proton-cachyos. Nie używaj tego z żadnym Protonem, który wykorzystuje Steam Linux Runtime, takim jak proton-cachyos-slr, -GE, czy -EM.*
        - **Klucz**: `PROTON_VERB` *opcjonalne*
            - **Wartość**: `waitforexitandrun`
            - *Pozwala to na działanie protonfixes z odpowiadającym im GAMEID.*
    6. Kliknij **Zapisz**, aby zastosować zmiany.
    </Steps>
    </TabItem>
    <TabItem label='Heroic Games Launcher'>
        <Steps>
            1. Kliknij przycisk `Konfiguruj` obok przycisku `Graj teraz` w grze, którą chcesz uruchomić.
            2. W zakładce `WINE` ustaw Wersję Wine na `Proton - proton-cachyos`.
        </Steps>
    </TabItem>
</Tabs>

### Wsparcie Anti-Cheat

:::caution[Ważne]
Jeśli napotkasz problemy z grami używającymi **Easy Anti-Cheat** (EAC) lub **BattlEye** (BE), takie jak odmowa zalogowania się na serwery gry, możesz użyć wersji [Proton-CachyOS zbudowanej przy użyciu Steam Linux Runtime](https://github.com/CachyOS/proton-cachyos/releases), znanej również jako **proton-cachyos-slr**.
:::

### Jak zainstalować proton-cachyos-slr

<Tabs>

<TabItem label='protonup'>

<Steps>
1. Otwórz terminal i zainstaluj `protonup`.
    ```sh
    sudo pacman -S protonup-qt
    ```
2. Otwórz **protonup-qt** i postępuj zgodnie ze zrzutem ekranu:
    <ImageComponent imgsrc={import('~/assets/images/steam-protonup.png')} />
    :::note
    Wybierz wersję `x86-64_v3`, jeśli Twój procesor obsługuje **[AVX2](/installation/installation_prepare#x86_64-microarchitecture-level-support)**.

    W przeciwnym razie pobierz wersję kończącą się na `x86-64`.
    :::
3. Uruchom ponownie Steam, jeśli był otwarty.

</Steps>

</TabItem>

<TabItem label='pacman'>
```sh title='Uruchom następujące polecenie'
sudo pacman -S proton-cachyos-slr
```
</TabItem>

</Tabs>

<details>
<summary>Instalacja ręczna (zaawansowane)</summary>

<Steps>
1. Pobierz najnowszą wersję [stąd](https://github.com/CachyOS/proton-cachyos/releases) (przewiń w dół do **Assets**).
    :::note
    Wybierz wersję kończącą się na `x86-64_v3`, jeśli Twój procesor obsługuje **[AVX2](/installation/installation_prepare#x86_64-microarchitecture-level-support)**.
    W przeciwnym razie pobierz wersję kończącą się na `x86-64`.
    :::
2. Rozpakuj plik i przenieś folder do `~/.steam/steam/compatibilitytools.d/`
3. Uruchom ponownie Steam, jeśli był otwarty.
</Steps>

</details>

## Wine-CachyOS

To to samo `wine`, które jest rdzeniem `proton-cachyos`, ale jako samodzielny pakiet. Może być używane w Lutris, Heroic, Bottles i innych.

- **Wszystkie modyfikacje Wine zawarte w Proton-CachyOS**
- **Dodaje wczesne poprawki/obejścia dla gier**

:::note
W repozytoriach CachyOS, **Wine-CachyOS** jest oferowane przez dwa różne pakiety. `wine-cachyos` instaluje go jako domyślne systemowe Wine i zastępuje `wine` lub `wine-staging`. `wine-cachyos-opt` instaluje go w innej lokalizacji, co pozwala na współistnienie wielu wersji wine w systemie.
:::

:::caution
Głównym przeznaczeniem **Wine-CachyOS** jest **granie**. Chociaż może być używane jako systemowe Wine z aplikacjami biurkowymi, należy pamiętać, że może to prowadzić do nieoczekiwanego zachowania i problemów z powodu modyfikacji skoncentrowanych na grach.

Jeśli chcesz używać aplikacji biurkowych, sugerujemy użycie `wine` lub `wine-staging` jako systemowego Wine i zainstalowanie `wine-cachyos-opt` do gier.
:::

**Dodatkowe opcje konfiguracji**

- `WINE_WMCLASS="<nazwa>"`: Ustawia `WM_CLASS` wszystkich okien Wine, pozwalając menedżerowi okien kontrolować okna Wine za pomocą reguł.
- `WINEUSERSANDBOX=1`: Wyłącza tworzenie dowiązań symbolicznych z folderów użytkownika Wine (takich jak Dokumenty i Obrazy) do odpowiednich folderów w katalogu `HOME` użytkownika.
- `WINE_NO_WM_DECORATION=1`: Wyłącza dekoracje okien. Może to naprawić problemy z **pełnym ekranem bez ramek** i przenikaniem kliknięć myszy przez okno.
- `WINE_PREFER_SDL_INPUT=1`: Obejście problemów z wykrywaniem kontrolerów.

### Jak używać wine-cachyos-opt

<Tabs>
    <TabItem label='Samodzielnie'>
    Zazwyczaj uruchomienie `/opt/wine-cachyos/bin/wine` zamiast samego `wine` powinno wystarczyć, aby aplikacja działała z użyciem `wine-cachyos-opt`.

    Jeśli wymagana jest bardziej rygorystyczna konfiguracja, może ona wyglądać następująco:
    ```shell
    export PATH="/opt/wine-cachyos/bin/:$PATH"
    export WINEDLLPATH="/opt/wine-cachyos/lib/wine:/opt/wine-cachyos/lib32/wine:$WINEDLLPATH"
    export LD_LIBRARY_PATH="/opt/wine-cachyos/lib/:/opt/wine-cachyos/lib32/:$LD_LIBRARY_PATH"
    ```

    Jeśli chcesz używać `winetricks` z `wine-cachyos-opt`, możesz go wywołać w ten sposób:
    ```shell
    WINE=/opt/wine-cachyos/bin/wine WINEPREFIX=<twój_prefix> winetricks <polecenie>
    ```
    </TabItem>
    <TabItem label='Lutris'>
      :::note
      Drugi obrazek dotyczy również konfiguracji dla poszczególnych gier.
      :::
      <MultipleImageComponent
      images={[
      import('~/assets/images/lutris-guide-1.png'),
      import('~/assets/images/lutris-guide-2.png')]}
      />
    </TabItem>
    <TabItem label='Heroic Games Launcher'>
      <MultipleImageComponent
      images={[
      import('~/assets/images/heroic-wine.png'),
      import('~/assets/images/heroic-wine-2.png'),
      import('~/assets/images/heroic-wine-3.png')]}
      />
    </TabItem>
</Tabs>

## Steam - FAQ i porady

:::note
Użytkownicy laptopów z dedykowanymi kartami graficznymi Nvidii powinni zapoznać się z przewodnikiem [Laptopy z dwiema kartami graficznymi](/pl/configuration/dual_gpu/).
:::

:::tip
CachyOS dostarcza różne wersje Protona, które są budowane i utrzymywane w celu dalszych ulepszeń wydajności:
- `proton-cachyos` (zawarty w pakiecie `cachyos-gaming-meta`) jest rozwijany z dodatkowymi zmianami ułatwiającymi życie (QoL) i starannie dobranymi łatkami.
:::

:::tip
Aby sprawdzić, czy gra jest kompatybilna z Linuksem lub jak działa na Linuksie, odwiedź **[ProtonDB](https://www.protondb.com/)** lub **[Are We Anti-Cheat Yet?](https://areweanticheatyet.com/)**.
:::

### Której wersji Protona należy używać w Steam?

:::note
W związku z pewnym zamieszaniem na **Reddicie**, natywna wersja `Proton-CachyOS` nie jest wycofywana z powodu wycofania `steam-native-runtime`.

Nie są one ze sobą powiązane i nie mają na siebie wpływu. Ostatnio naszą sugestią jest SLR, **który również instalujemy domyślnie**, aby zmniejszyć zamieszanie i problemy dla nowicjuszy w CachyOS i ogólnie w Linuksie. Jeśli lubisz wersję natywną i działa ona dla Ciebie, używaj jej dalej.
:::

- `Proton 10.0` to stabilne wydanie od `Valve`. Użyj go, jeśli gra, w którą chcesz zagrać, jest znana z dobrego działania z tą wersją.
- `Proton Experimental` to najnowsze wydanie od `Valve`. Użyj go, jeśli gra, w którą chcesz zagrać, jest stosunkowo nowa, nie działa dobrze z obecnym stabilnym wydaniem Protona lub jeśli ludzie polecają ją na **[ProtonDB](https://www.protondb.com/)**.
- `proton-cachyos-slr` jest wersją budowaną i utrzymywaną przez opiekunów CachyOS. Jej użycie jest wysoce zalecane ze względu na różne funkcje QoL, poprawki i optymalizacje. W przypadku gier korzystających z anti-cheat, takich jak **BattlEye** lub **Easy Anti-Cheat**, lub niestandardowych launcherów, preferowany jest `proton-cachyos-slr`.
- `proton-cachyos` to ta sama wersja co `proton-cachyos-slr`, ale zbudowana bez zależności od Steam Linux Runtime. Używaj jej tylko wtedy, gdy rozumiesz znaczenie tej różnicy i wróć do `proton-cachyos-slr`, jeśli wystąpią problemy.
- `Proton-GE` to niestandardowa kompilacja stworzona przez [GloriousEggroll](https://github.com/GloriousEggroll/proton-ge-custom). Zawiera różne poprawki i może być przydatna w niektórych sytuacjach.
- `Proton 9.0.4 lub niższy` to stabilne wydania od `Valve`. Użyj ich, jeśli gra, w którą chcesz zagrać, działa tylko z poprzednim wydaniem Protona.

### Napraw zacinanie się spowodowane funkcją nagrywania gier w Steam

:::caution
Dodanie tej zmiennej środowiskowej powoduje, że **nakładka Steam** przestaje działać.
:::

Dodaj następującą opcję uruchamiania do swojej gry.

```sh
LD_PRELOAD="" %command%
```

### Zbieranie i udostępnianie logów Protona

:::note
Udostępniając logi CachyOS, prosimy o przesyłanie ich na **[paste-cachyos](https://paste.cachyos.org/)** zamiast wklejać bezpośrednio.

Możesz po prostu przeciągnąć i upuścić plik z logami na stronę internetową, a następnie udostępnić wygenerowany link.
:::

Aby włączyć logowanie Protona dla gry:

<Steps>
    1. Kliknij prawym przyciskiem myszy na grę w Steam i wybierz **Właściwości**.
    2. W sekcji **Opcje uruchamiania** ustaw zmienną środowiskową `PROTON_LOG`:
        ```sh
        PROTON_LOG=1 %command%
        ```
        Spowoduje to utworzenie pliku logu w twoim katalogu domowym o nazwie `steam-<ID_aplikacji>.log` (na przykład, Counter Strike 2 używa ID aplikacji **730**, więc plik nazywałby się `steam-730.log`).
</Steps>

<details>
<summary>Niestandardowy katalog logów</summary>

Aby ustawić niestandardowy katalog logów, użyj `PROTON_LOG_DIR`:

```bash title='Przykład'
PROTON_LOG=1 PROTON_LOG_DIR=/home/cachyos/steam-logs %command%
```
</details>

### Wstępne buforowanie shaderów z Proton-CachyOS, -GE i -EM

:::note
Zaleca się wyłączenie funkcji wstępnego buforowania shaderów w Steam podczas korzystania z Proton-CachyOS, Proton-GE lub Proton-EM. Zawierają one już wszystkie niezbędne kodeki do odtwarzania filmów w grach, a obecnie stosunkowo nowoczesne połączenie GPU-CPU powinno być w stanie poradzić sobie z kompilowaniem shaderów w trakcie gry.

Jeśli jednak masz czas do stracenia, możesz zignorować tę wskazówkę i pozwolić Steamowi na wstępne skompilowanie niektórych shaderów dla twojej gry.

**Pamiętaj, że nie wszystko jest buforowane podczas tego procesu, a aktualizacje wersji Protona użytej do kompilacji shaderów mogą wymagać pełnej rekompilacji shaderów.**
:::

#### Jak wyłączyć tę funkcję w Steam

W Steam, kliknij `Steam`->`Ustawienia`, przejdź do `Pobieranie` i odznacz te ustawienia:
- **Zezwalaj na przetwarzanie w tle shaderów Vulkan**
- **Włącz wstępne buforowanie shaderów**

:::note
Zdecydowanie zaleca się [zwiększenie maksymalnego rozmiaru pamięci podręcznej shaderów](#zwiększ-maksymalny-rozmiar-pamięci-podręcznej-shaderów) po wyłączeniu wstępnego buforowania shaderów w Steam.
:::

### Ponowne wykorzystanie partycji z grami w formacie Windows NTFS

:::caution
Unikaj używania Protona na dyskach NTFS. Valve nie wspiera tej konfiguracji, a może to powodować nieprzewidywalne zachowanie gier.

Jeśli chcesz kontynuować, postępuj zgodnie z ich **[nieoficjalnym przewodnikiem](<https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows>)**.
:::

## [Lutris](<https://lutris.net/>)

Lutris to launcher gier w CachyOS. Dzięki Lutris możesz łatwo zarządzać programami do uruchamiania gier, w tym Wine, Proton i emulatorami.

- Uruchamiaj gry przez Lutris, po prostu klikając przycisk **Graj**.
- Dodaj dowolną grę, klikając **+** w lewym górnym rogu.
- Skonfiguruj sklep w panelu Źródła po lewej stronie i połącz swoje konto. Następnie przejdzie do instalacji wspomnianego sklepu, a ty będziesz mógł uruchamiać gry z poziomu sklepu, tak jak na Windowsie.
- I wiele więcej!

*Sklepy z grami obsługiwane w Lutris:*

- [EA App](https://lutris.net/games/ea-app/)
- [Epic Games Store](https://lutris.net/games/epic-games-store/)
- [GOG Galaxy](https://lutris.net/games/gog-galaxy/)
- [Steam](https://lutris.net/games/steam/)
- [Ubisoft Connect](https://lutris.net/games/ubisoft-connect/)

### Jak prawidłowo ustawić wiele opcji uruchamiania i zmiennych środowiskowych w Lutris

- Opcje uruchamiania, takie jak `-dx11` lub `-fullscreen`, należy dodać w polu **Argumenty** w zakładce **Opcje gry**, używając spacji jako separatora.
- Polecenia otaczające, na przykład `mangohud --dlsym` lub `game-performance`, należy dodać w polu **Prefiks polecenia** w zakładce **Opcje systemowe**, używając spacji jako separatora.
- Zmienne środowiskowe, takie jak `PROTON_ENABLE_HDR=1`, należy dodać w tabeli **Zmienne środowiskowe** w zakładce **Opcje systemowe**, używając przycisku `+`, aby dodać nowy wpis.
:::note
Nie umieszczaj znaku `=` w polu Klucz. Powinno ono zawierać tylko nazwę zmiennej.
:::

## Wskazówki dotyczące wydajności i różne

### Nie łącz gamemode i ananicy-cpp

Ponieważ `gamemode` i `ananicy-cpp` próbują jednocześnie modyfikować priorytet (niceness) procesu, może to prowadzić do konfliktów i nieoczekiwanego zachowania. Zaleca się używanie gamemode bez ananicy-cpp.

Aby zatrzymać ananicy-cpp, wykonaj następujące polecenie:

```sh
systemctl stop ananicy-cpp
```

### Przełączanie profilu zasilania na żądanie

:::note
To zachowanie różni się nieco w przypadku `intel_pstate`. Na procesorach Intela, zarządca (governor) pozostaje w trybie powersave, ale wartości EPP/EPB są dostosowywane w celu zwiększenia wydajności.
:::

:::caution[game-performance może nie przynosić żadnych korzyści na starych procesorach.]
:::

CachyOS zawiera skrypt opakowujący [game-performance](https://github.com/CachyOS/CachyOS-Settings/blob/master/usr/bin/game-performance),
który używa `power-profiles-daemon` do tymczasowego przełączenia profilu zasilania na `performance`.
Profil ten podnosi poziomy mocy systemu i ustawia zarządcę (governor) procesora na `performance`, a także przełącza każdy aktywny scheduler scx na jego profil gamingowy (jeśli jest dostępny).

Gdy jest używany do uruchomienia gry, system pozostaje w **trybie wydajności** do momentu zamknięcia gry, po czym przywracany jest poprzedni profil.

[GameMode od Feral](https://github.com/FeralInteractive/gamemode)
oferuje podobną funkcjonalność.

### Jak dodać game-performance do Steam, Lutris i Heroic Games Launcher

<Tabs>

<TabItem label='Steam'>

<Steps>
1. Otwórz swoją `Bibliotekę Steam`.
2. Kliknij prawym przyciskiem myszy na tytuł gry i wybierz `Właściwości`.
3. W zakładce `Ogólne` znajdziesz sekcję `Opcje uruchamiania`.
4. Dodaj następującą opcję uruchamiania:
    ```sh
    game-performance %command%
    ```
</Steps>

</TabItem>

<TabItem label='Heroic Games Launcher'>

<Steps>
1. W lewym panelu otwórz `Ustawienia`.
2. Przejdź do `Domyślne ustawienia gier`, a następnie kliknij `Zaawansowane`.
3. W sekcji polecenia `wrapper` dodaj następującą linię bez żadnych argumentów:
   ```sh
   game-performance
   ```
4. Kliknij znak `+`, aby zapisać zmiany.
</Steps>

</TabItem>

<TabItem label='Lutris'>

<Steps>
1. W prawym górnym rogu otwórz `menu hamburgerowe`.
2. Przejdź do `Preferencje/Opcje globalne`.
3. Włącz `Tryb zaawansowany` w prawym górnym rogu.
4. Przewiń w dół do `Prefiks polecenia` i dodaj następującą linię:
   ```sh
   game-performance
   ```
5. Zapisz zmiany.
</Steps>

</TabItem>

</Tabs>

### Zwiększ maksymalny rozmiar pamięci podręcznej shaderów

Shadery gier są kompilowane automatycznie podczas gry, co może powodować długie czasy ładowania i zacinanie się przy pierwszym ich napotkaniu. Te shadery są przechowywane w systemie, aby mogły być ponownie użyte w razie potrzeby.

Istnieje jednak maksymalny limit rozmiaru pliku pamięci podręcznej shaderów, co powoduje, że stare shadery są zapominane po przekroczeniu domyślnego rozmiaru. Może to być problem, ponieważ duże gry mogą mieć shadery o rozmiarze ponad 1 GB, co powoduje, że muszą one ponownie kompilować shadery przy każdym uruchomieniu.

Aby uniknąć długich czasów ładowania i zacinania się, możemy zwiększyć globalny rozmiar pamięci podręcznej shaderów:

<Steps>

1. Otwórz terminal.
2. Utwórz katalog `environment.d` w swoim folderze konfiguracyjnym, jeśli nie istnieje:
	```sh
	mkdir -p ~/.config/environment.d
    ```
3. Utwórz nowy plik konfiguracyjny:
    ```sh
    touch ~/.config/environment.d/gaming.conf
    ```
4. Otwórz plik za pomocą **Micro** (edytora tekstu).
    ```sh
    micro ~/.config/environment.d/gaming.conf
    ```
    I wklej poniższą zawartość w zależności od producenta twojej karty graficznej:
   <details>
       <summary>AMD</summary>
            ```sh
            # Wymusza implementację RADV Vulkan
            AMD_VULKAN_ICD=RADV

            # Zwiększa rozmiar pamięci podręcznej shaderów AMD do 12GB
            MESA_SHADER_CACHE_MAX_SIZE=12G
            ```
   </details>
   <details>
       <summary>NVIDIA</summary>
           ```sh
           # Zwiększa rozmiar pamięci podręcznej shaderów Nvidii do 12GB
           __GL_SHADER_DISK_CACHE_SIZE=12000000000
           ```
   </details>
5. Zapisz plik, naciskając `CTRL+S` i `CTRL+Q`, aby wyjść z Micro. Uruchom ponownie system.

</Steps>

Po ponownym uruchomieniu maksymalny rozmiar pamięci podręcznej shaderów powinien być trwale zwiększony. Podziękowania dla [psygreg's shader booster](https://github.com/psygreg/shader-booster/) za pomoc w przygotowaniu tego przewodnika.

### Wymuszanie najnowszego presetu DLSS

#### Jak dodać dlss-swapper do Steam, Lutris i Heroic Games Launcher

<Tabs>

<TabItem label='Steam'>

<Steps>
1. Otwórz swoją `Bibliotekę Steam`.
2. Kliknij prawym przyciskiem myszy na tytuł gry i wybierz `Właściwości`.
3. W zakładce `Ogólne` znajdziesz sekcję `Opcje uruchamiania`.
4. Dodaj następującą opcję uruchamiania:
    ```sh
    dlss-swapper %command%
    ```
</Steps>

</TabItem>

<TabItem label='Heroic Games Launcher'>

<Steps>
1. W lewym panelu otwórz `Ustawienia`.
2. Przejdź do `Domyślne ustawienia gier`, a następnie kliknij `Zaawansowane`.
3. W sekcji polecenia `wrapper` dodaj następującą linię bez żadnych argumentów:
   ```sh
   dlss-swapper
   ```
4. Kliknij znak `+`, aby zapisać zmiany.
</Steps>

</TabItem>

<TabItem label='Lutris'>

<Steps>
1. W prawym górnym rogu otwórz `menu hamburgerowe`.
2. Przejdź do `Preferencje/Opcje globalne`.
3. Włącz `Tryb zaawansowany` w prawym górnym rogu.
4. Przewiń w dół do `Prefiks polecenia` i dodaj następującą linię:
   ```sh
   dlss-swapper
   ```
5. Zapisz zmiany.
</Steps>

</TabItem>

</Tabs>

<details>
<summary>Metoda ręcznej wymiany DLL</summary>

Jeśli `dlss-swapper` nie działa lub powoduje problemy, spróbuj ręcznie zaktualizować implementację DLSS w grze, zastępując `nvngx_dlss.dll` aktualną wersją i używając zamiast tego skryptu opakowującego `dlss-swapper-dll`.
</details>

### Wsparcie dla Ray Tracingu
Arch Wiki już dostarcza kompleksowe instrukcje, jak włączyć [ray tracing](https://wiki.archlinux.org/title/Hardware_raytracing) dla różnych platform sprzętowych.
- [Ray tracing na Nvidii](https://wiki.archlinux.org/title/Hardware_raytracing#NVIDIA)
- [Ray tracing na AMD](https://wiki.archlinux.org/title/Hardware_raytracing#AMD)
- [Ray tracing na Intelu](https://wiki.archlinux.org/title/Hardware_raytracing#Intel)

### Spadek wydajności w grach DirectX12 na kartach Nvidia

Niektórzy użytkownicy zgłaszają, że problem jest związany ze sposobem, w jaki sterowniki Nvidii dla Linuksa obsługują harmonogramowanie GPU — w przeciwieństwie do Windowsa, gdzie wymuszane jest odpowiednie harmonogramowanie. Nie ma jeszcze oficjalnego oświadczenia Nvidii w tej sprawie. Obecnie nie ma znanego obejścia tego problemu. Nvidia rzekomo pracuje nad poprawką, ale nie jest jasne, kiedy zostanie ona wydana.

**Nie ma to nic wspólnego z CachyOS.**

W niektórych tytułach spadek wydajności jest mniej zauważalny niż w innych. Sprawdź to [wideo z porównaniem wydajności](https://www.youtube.com/watch?v=SU2mFqCOh5A) jako punkt odniesienia.

Śledź [wątek na forum Nvidii](https://forums.developer.nvidia.com/t/directx12-performance-is-terrible-on-linux/303207/488), aby dowiedzieć się więcej o tym problemie.
