Przycięcia od kompilacji shaderów: dlaczego pierwsze minuty są najgorsze

Dlaczego gra szarpie na wszystkim, co pokazuje ci po raz pierwszy, dlaczego aktualizacja sterownika przywraca to wszystko od nowa i dlaczego skasowanie pamięci podręcznej shaderów to jedyna „naprawa”, która gwarantuje, że zapłacisz za to drugi raz.

Odpalasz grę, w którą dawno nie grałeś, i pierwsze dziesięć minut jest okropne. Każda nowa broń, każdy nowy efekt, pierwsze pojawienie się konkretnego przeciwnika — szarpnięcie. Potem się uspokaja, a drugiego wieczoru gra jest płynna. Nie zrobiło tego nic, co zmieniłeś. Zrobił to czas.

Albo wersja druga: gra była w porządku, zaktualizowałeś sterownik karty graficznej i cała pierwsza godzina znowu jest ciężka.

Obie to ten sam mechanizm, a jest to jedna z niewielu przyczyn przycięć, które są naprawdę normalne — w tym sensie, że produkuje je zdrowa maszyna z poprawnie działającym oprogramowaniem.

Dlaczego ta praca musi się odbyć na twojej maszynie

Shader to mały program działający na GPU. Twórca gry pisze go w języku wysokiego poziomu i kompiluje, ale tylko część drogi — do formy pośredniej, która opisuje, co ten program robi, a nie jak ma to zrobić konkretny układ graficzny.

Kodu maszynowego, który twoje GPU naprawdę wykonuje, nie da się wyprodukować z wyprzedzeniem, bo zależy od dwóch rzeczy, których twórca nie ma: dokładnej architektury twojego GPU i dokładnej wersji twojego sterownika. To własny kompilator sterownika zamienia formę pośrednią w instrukcje dla krzemu w twojej maszynie, a ta kompilacja odbywa się na twoim procesorze, w chwili, w której gra potrzebuje shadera.

Więc kiedy scena po raz pierwszy potrzebuje konkretnej kombinacji shadera, stanu renderowania i układu wierzchołków, coś musi zostać skompilowane. Jeśli gra prosi o to w środku klatki i czeka, ta klatka jest spóźniona. Ta spóźniona klatka to szarpnięcie, które poczułeś.

Wynik jest zapisywany do pamięci podręcznej shaderów na dysku. Kiedy ta sama rzecz pojawia się drugi raz, skompilowany kod jest z niej odczytywany, zamiast budowany od nowa — i dokładnie dlatego gra robi się lepsza w miarę grania, a druga sesja jest w porządku.

Co odsyła cię z powrotem na start

Ta pamięć podręczna jest ważna tylko dla sterownika i sprzętu, które ją zbudowały. Wszystko z tej listy unieważnia ją w całości albo częściowo, i pierwsza godzina grania znowu jest ciężka:

Żadna z tych rzeczy nie jest usterką. To koszt tego, że pamięć podręczna jest poprawna, a nie przeterminowana.

Jak poznać, że to właśnie to

Kompilacja shaderów ma charakterystyczny odcisk palca i nie wygląda jak nic innego z listy przyczyn przycięć:

  1. To mija. To znak rozpoznawczy. Jeśli twoje przycięcia są takie same w trzeciej godzinie jak w trzeciej minucie, to nie to.
  2. Jest przywiązane do nowości. Pierwsze zobaczenie broni, obszaru, efektu pogodowego, konkretnego przeciwnika. Przejście tym samym korytarzem drugi raz jest czyste.
  3. Ignoruje temperaturę i długość sesji. Problemy termiczne pogarszają się, im dłużej grasz; to robi się lepsze.
  4. Wraca według harmonogramu, który potrafisz nazwać — po aktualizacji sterownika, po łatce, po czyszczeniu — a nie losowo.
  5. To nie karta graficzna jest zajęta. Kompilacja to praca procesora. Karta siedząca wyraźnie poniżej pełnego obłożenia w trakcie tych szarpnięć jest tutaj oczekiwana i nie jest dowodem na osobny problem opisany w Nagłe spadki FPS w grach.

Jeśli te pięć punktów nie opisuje twojego objawu, wróć do ogólnej listy w Dlaczego gry przycinają na Windows 11 — tamte przyczyny same nie mijają.

Co z tym zrobić

Przede wszystkim: pozwól temu się wydarzyć. Ale na obrzeżach są prawdziwe wybory.

Nie kasuj pamięci podręcznej shaderów jako naprawy. To jedyna rada na tej stronie, którą warto przeczytać dwa razy. Czyszczenie tej pamięci jest bez przerwy przepisywane jako lekarstwo na przycięcia, a naprawdę robi tyle, że gwarantuje ci zapłacenie pełnego kosztu kompilacji jeszcze raz, od zera. To uzasadniony krok diagnostyczny przy zniekształceniach obrazu po zmianie sterownika. Jest odwrotnością naprawy wydajności.

Użyj własnego kroku prekompilacji gry, jeśli go oferuje, i nie pomijaj go. Gra, która spędza dwie minuty na ekranie „kompilowanie shaderów” przed menu, wykonuje dokładnie tę pracę z góry, tam, gdzie nie kosztuje cię nic poza czekaniem.

Zostaw maszynę włączoną na chwilę po aktualizacji sterownika. Niektóre sterowniki przebudowują shadery DirectX 12, kiedy system jest bezczynny, właśnie po to, żeby środowisko uruchomieniowe robiło tego mniej później. Pomaga to tylko wtedy, gdy maszyna ten czas bezczynności dostanie.

Trzymaj grę i jej pamięć podręczną na SSD, i poza folderem synchronizowanym. Klient chmury obserwuje każdy zapis, a gra zapisuje swoją pamięć podręczną shaderów bez przerwy — każdy wpis zamienia się w pracę sterownika filtrującego plus wysyłkę na tym samym łączu, po którym idzie twój mecz.

Nie mierz wewnątrz tego okna. Pomiar zrobiony w pierwszych minutach po aktualizacji sterownika mierzy kompilator, a nie sterownik. Jak czytać wynik benchmarku omawia zasady porównywania; to łatwy sposób, by przypadkiem złamać pierwszą z nich.

Co mówi o tym skan

Skan przycięć sprawdza, czy pamięć podręczna shaderów została niedawno wyczyszczona, a kiedy taką znajdzie, mówi to samo co ta strona: gra kompiluje skasowaną pamięć od nowa w trakcie grania, przycięcia na początku sesji są normalne i mijają same, a benchmarku nie należy robić, dopóki to okno się nie skończy.

Celowo nie jest to przedstawiane jako usterka do naprawienia. Nie ma tu czego naprawiać — jest koszt do zapłacenia raz, a uczciwą rzeczą, jaką narzędzie może zrobić, jest powiedzieć ci, że siedzisz w środku tego okna, żebyś nie spędził wieczoru na obwinianiu jakiegoś ustawienia.

Gdzie przestaje to być normalne

Przycięcia kompilacyjne, które nigdy nie mijają, to inny problem: pamięć podręczna nie jest zachowywana. Sprawdź, czy dysk nie jest pełny, czy pamięć nie jest wycierana przez zaplanowane czyszczenie między sesjami i czy folder gry nie leży tam, gdzie klient chmury albo limit rozmiaru wciąż go opróżnia.

A jeśli przebieg jest nierówny na całej długości, zamiast mieć ciężar z przodu, patrzysz raczej na Wysoki średni FPS, ale słabe 1% low — to problem zdarzeń, a nie rozgrzewki.

Powiązane

Grasz w CS2? Które opcje uruchamiania jeszcze coś robią i gdzie w menu wideo naprawdę leżą klatki: Mało FPS, spadki FPS i przycięcia w CS2: zmierzona lista kontrolna

w0a nie zmienia żadnego ustawienia Windows, dopóki o to nie poprosisz, a tweak zapamiętuje starą wartość, zanim zapisze nową. Powiadom mnie

Czy ta strona pomogła?

Czego zabrakło albo co nie zadziałało? Czytamy każdą taką wiadomość.

Jeśli ta strona nie rozwiązała problemu, napisz do nas — podaj, który artykuł czytasz, a poprawimy ten artykuł.