---
title: Przewodnik po konfiguracji dwóch kart graficznych
---

import ImageComponent from '~/components/image-component.astro';

## Czym jest grafika hybrydowa?

Grafika hybrydowa to konfiguracja sprzętowa, w której masz dwie karty graficzne,
które mogą ze sobą współpracować. To podejście występuje głównie w
laptopach, gdzie masz zintegrowaną kartę graficzną (iGPU) procesora oraz dedykowaną
kartę graficzną (dGPU).

Główną zaletą jest to, że zintegrowana karta graficzna powinna (ale niekoniecznie) być
używana tylko do mało wymagających zadań, takich jak przeglądanie Internetu, oglądanie filmów itp.
Z drugiej strony, dedykowana karta graficzna jest używana do zadań o wysokiej wydajności,
takich jak gry, edycja wideo, modelowanie 3D i tak dalej.

W konsekwencji, jeśli dwie karty graficzne dzielą się zadaniami na „duże” i „małe”, to gdy w danej
chwili wykonujemy tylko „małe” zadania, nie musimy używać naszego dGPU, więc może ono
być po prostu wyłączone (jakby uśpione), tym samym znacznie zmniejszając zużycie energii.
W ten sposób, gdy nasze dGPU będzie ponownie potrzebne (uruchomimy aplikację, która go używa),
wybudzi się i zacznie działać.

## Czym jest PRIME Offload?

PRIME to technologia unifikująca pracę z różnymi zestawami hybrydowych kart
graficznych w Linuksie, takimi jak NVIDIA Optimus/AMD Dynamic Switchable Graphics. PRIME
Offload to implementacja idei przenoszenia renderowania
z jednej karty graficznej na drugą w Linuksie.

Wsparcie dla PRIME w zamkniętym sterowniku NVIDIA pojawiło się dopiero wraz ze sterownikiem 435.17.
Więc jeśli jesteś użytkownikiem przestarzałych gałęzi sterowników 390xx, a nawet 340xx,
PRIME Offload nie będzie dla Ciebie działać. Zauważ, że również
zdecydowanie odradzamy używania przestarzałych sposobów obsługi grafiki hybrydowej,
takich jak nvidia-xrun czy Bumblebee. Są one przestarzałe i niewspierane (Bumblebee
nie było aktualizowane od ponad 8 lat), działają wyłącznie na hackach i mają niską
wydajność. Jednocześnie sterownik Nouveau obsługuje PRIME Offload, co
może być alternatywą dla starszych dGPU.

W CachyOS, **nie musisz niczego konfigurować, aby PRIME Offload działał**.
Z pakietem nvidia-utils i cachyos-settings masz już wszystko,
czego potrzebujesz, aby używać PRIME Offload.

Unikaj również używania narzędzi takich jak optimus-manager. Mogą wydawać się
całkiem przydatne, ale uwierz nam, mogą powodować wiele problemów i naprawdę ich nie
potrzebujesz, jeśli Twoje dGPU obsługuje PRIME Offload i dynamiczne zarządzanie energią.

### Jak używać PRIME Offload

Aby wskazać PRIME, że chcesz używać dedykowanej karty graficznej zamiast zintegrowanej,
musisz podać szereg zmiennych środowiskowych przed uruchomieniem programu:

```bash
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia <program>
```

Ten zestaw zmiennych wygląda bardzo nieporęcznie i łatwo go zapomnieć, więc możesz
zainstalować pakiet `nvidia-prime` (`sudo pacman -S nvidia-prime`), który
zawiera alias skryptu dla wszystkich tych zmiennych. Wtedy uruchomienie aplikacji
przy jego użyciu będzie wyglądać następująco:

```bash
prime-run <program>
```

Gdzie `<program>` to nazwa polecenia, które uruchamia Twoją aplikację.

:::note
Niektóre gry DX12 mają problemy z wyborem dGPU nawet z `prime-run`.
Aby to obejść, dodaj zmienną środowiskową `VK_DRIVER_FILES=/usr/share/vulkan/icd.d/nvidia_icd.json`
przed skryptem `prime-run`.
:::

Dla konfiguracji, w których obie karty graficzne są obsługiwane przez otwarte sterowniki Mesa
(np. AMD+AMD, AMD+Intel, a nawet Intel+NVIDIA, gdzie dedykowana karta NVIDIA
jest obsługiwana przez otwarty sterownik Nouveau), nie trzeba niczego konfigurować,
a do użycia dedykowanej karty graficznej wystarczy podać zmienną środowiskową `DRI_PRIME=1`
przed uruchomieniem aplikacji lub gier, podobnie jak wszystkie te
zmienne opisane wcześniej dla NVIDII, lub użyć gotowych metod graficznych
omówionych poniżej.

## Metoda graficzna

Możesz uznać uruchamianie wszystkich potrzebnych aplikacji przez terminal za pomocą `prime-run` za niewygodne.
Na szczęście niektóre aplikacje i środowiska graficzne dostarczają narzędzi do kontrolowania, która karta graficzna jest używana dla konkretnych aplikacji.

### Lutris

Aby skonfigurować gry do uruchamiania z dedykowaną kartą graficzną w Lutris, musisz przejść do
ustawień (trzy paski w prawym dolnym rogu okna i przycisk
„Preferences”). Następnie przejdź do „*Global Options*” -> „*Display*”. Tutaj możesz wybrać kartę graficzną, na której będzie działać gra.

<br />
<ImageComponent imgsrc={import('~/assets/images/lutris-prime.png')} />

### Steam

Steam nie ma konkretnego ustawienia, aby wymusić użycie przez grę dedykowanej karty graficznej. Możesz jednak uzyskać dostęp do właściwości gry, klikając ikonę koła zębatego przed jej uruchomieniem. W polu „Opcje uruchamiania” możesz dodać polecenie prime-run lub zmienne środowiskowe.
Przykład:

```bash
prime-run %command%
```

Pamiętaj, aby dodać `%command%` po `prime-run`. Pamiętaj, że opcje gry następują po tym symbolu,
podczas gdy systemowe zmienne środowiskowe lub polecenia powinny go poprzedzać.

<br />
<ImageComponent imgsrc={import('~/assets/images/steam-prime.png')} />

### KDE Plasma

Plasma ma bardzo wygodny sposób na ustawienie uruchamiania aplikacji z dedykowaną
kartą graficzną. Jednak ta metoda działa tylko, jeśli w Twoim systemie zainstalowany jest pakiet switcheroo-control i odpowiadająca mu usługa.

W świeżej instalacji CachyOS ten pakiet i usługa powinny być już
domyślnie włączone przez chwd.

```bash
sudo pacman -S switcheroo-control
sudo systemctl enable --now switcheroo-control
```

Po wykonaniu obu poleceń kliknij prawym przyciskiem myszy na wpis aplikacji na pulpicie lub w menu
aplikacji, a następnie przejdź do „*Właściwości*” -> „*Aplikacja*” -> „*Opcje zaawansowane*”.

Powinieneś mieć zaznaczone pole wyboru „*Uruchom z użyciem dedykowanej karty graficznej*”.

<br />
<ImageComponent imgsrc={import('~/assets/images/plasma-prime.jpg')} />

:::note
Użycie switcheroo-control pozwala tym polom wyboru działać na wszystkich konfiguracjach PRIME,
które nawet nie mają dGPU NVIDIA, takich jak AMD-APU+AMD-Dedicated.
:::

### GNOME

W GNOME powinieneś również zainstalować switcheroo-control, jak pokazano powyżej,
kliknąć prawym przyciskiem myszy na ikonę aplikacji i wybrać „*Uruchom z użyciem dedykowanej karty graficznej*”.
Zauważ jednak, że GNOME nie zapamiętuje tego wyboru na później, i następnym razem, gdy
uruchomisz aplikację z ikony, uruchomi się ona na zintegrowanej karcie graficznej zamiast dedykowanej.

### Cinnamon

Podobnie jak Plasma, Cinnamon również pozwala wybrać kartę graficzną dla konkretnych aplikacji. Kliknij prawym przyciskiem myszy na wpis aplikacji na pulpicie, przejdź do Właściwości i włącz odpowiednią opcję.

<br />
<ImageComponent imgsrc={import('~/assets/images/cinnamon-prime.png')} />

Jeśli opcja nie jest dostępna, upewnij się, że masz zainstalowany `switcheroo-control`
i jego usługa jest włączona, ponieważ wszystkie środowiska graficzne polegają na nim
w tej funkcjonalności.

## Rozwiązywanie problemów

### „Mój zewnętrzny monitor bardzo laguje na PRIME”

Jest to znany problem ze sterownikiem NVIDIA. Powinieneś mieć zainstalowany najnowszy sterownik NVIDIA
i używać Waylanda z kompozytorem, który obsługuje explicit sync.
Dla GNOME zostało to naprawione w wersji 46.2. Dla Plasmy 6 zostanie to prawdopodobnie
naprawione w wersji 6.1, chociaż niektórzy użytkownicy zgłaszają normalną wydajność już na 6.0.
Inne środowiska/menedżery okien nadal mają ten problem, więc musisz przełączyć się
na najnowszą wersję GNOME lub Plasmy, aby to naprawić.
