Che cos'è la compilazione di shader e perché fa balbettare i giochi per PC?

0
1151
FROM Software – Elden Ring era noto per la balbuzie della compilazione degli shader al momento del lancio

Poiché la GPU di ogni PC è diversa, la compilazione degli shader è necessaria affinché i giochi possano essere eseguiti su marche e modelli diversi di schede grafiche. Sfortunatamente, quel processo di compilazione può causare fastidiosi balbettii.

Alcuni giochi hanno un tipo di balbuzie che si verifica indipendentemente dalla potenza del tuo computer o dalle impostazioni che scegli. Ciò è causato da un processo noto come “compilazione di shader,” ed è un problema crescente nei giochi per PC.

Cosa sono gli shader?

Gli shader sono programmi per computer che aiutano a determinare vari aspetti della grafica renderizzata. I pixel shader, ad esempio, calcolano gli attributi di un pixel. Ciò include il colore, la luminosità, la riflettività o la trasparenza di quel pixel. Se vuoi che qualcosa nel tuo gioco sembri bagnato, usi uno shader speciale per ottenere quell'aspetto piuttosto che farlo faticosamente a mano.

Gli shader sono ciò che rende le GPU moderne così flessibili poiché queste GPU sono progettate per eseguire tutto ciò che può essere espresso nel linguaggio di programmazione shader. Sostituiscono la vecchia “pipeline a funzione fissa” Tecnologia GPU in cui i tipi di matematica grafica che una GPU poteva eseguire erano cablati nel suo silicio.

Cos'è la compilazione di shader?

“Compilazione” è un termine informatico che si riferisce a prendere il codice come scritto da un programmatore umano e tradurlo in codice macchina comprensibile al processore specifico destinato a eseguire il software in questione. Quindi, ad esempio, potresti compilare il tuo codice per eseguirlo su una CPU Intel o Apple Silicon.

La stessa cosa è necessaria per una GPU. Il codice dello shader deve essere compilato per essere eseguito sulla marca e sul modello di GPU specifici in questione. Se cambi la GPU, aggiorni i suoi driver o il gioco riceve un aggiornamento, gli shader devono essere compilati di nuovo.

Perché alcuni giochi per PC hanno lo shader La compilazione balbetta?

In alcuni giochi, la compilazione di shader in background interferisce con il gioco stesso, causando un visibile balbuzie. Il computer sta lavorando troppo duramente alla compilazione degli shader per eseguire il gioco senza intoppi. Alcuni sviluppatori lavorano per ottimizzare la compilazione in modo che abbia un impatto minimo o nullo sulle prestazioni del gioco, mentre altri diffondono la compilazione degli shader in tutto il gioco, sperando che l'intoppo sia di breve durata. In tal caso, incontreresti gli stutter solo all'inizio di un nuovo livello o quando entri in un nuovo ambiente che utilizza shader che non sono stati necessari fino a quel momento.

Le balbuzie della compilazione sono state particolarmente evidenti nei giochi Unreal Engine 4, che è un motore di gioco diffuso e popolare. Nello specifico, questi stutter diventano un problema quando si esegue un gioco con DirectX 12. Ciò è in parte dovuto al fatto che DirectX 12 cambia il modo in cui funziona la compilazione degli shader, mettendo più controllo nelle mani degli sviluppatori. Tuttavia, ciò significa anche che gli sviluppatori potrebbero non disporre del modo migliore per ottimizzare la compilazione degli shader utilizzando l'ultima e migliore versione di DirectX.

Perché Don's Le console 8217 hanno stutter di compilazione di shader?

Lo stutter di compilazione di shader è un problema completamente assente da console come PS5 e Xbox Series X|S. Questo semplicemente perché gli sviluppatori sanno esattamente quale hardware è presente all'interno di ciascuna console in modo da poter precompilare tutti gli shader; non è necessario compilarli sul sistema locale perché sai già a quale GPU ti stai rivolgendo.

RELATEDCos'è una GPU? Spiegazione delle unità di elaborazione grafica

È possibile farlo su PC, ma poiché ci sono così tante GPU e configurazioni di sistema, non sarebbe pratico. Tuttavia, nel caso di Valve Steam Deck, Valve include una cache shader precompilata con alcuni giochi perché, ovviamente, tutti gli Steam Deck hanno la stessa GPU.

Cosa si può fare per la compilazione stutter?

Sfortunatamente, la maggior parte delle volte, gli sviluppatori devono risolvere i problemi di compilazione degli shader. La buona notizia è che alla fine capiranno il processo. Unreal Engine 5.1 potrebbe includere una funzionalità automatizzata che aiuterà gli sviluppatori con la memorizzazione nella cache senza che l'impatto sulle prestazioni sia così grave.

L'elenco delle cose che puoi fare per mitigare la balbuzie non è lungo, ma alcune delle queste opzioni possono aiutare:

  • Se un gioco ti consente di precompilare gli shader, fallo. L'operazione potrebbe richiedere un po' di tempo, ma l'esperienza di gioco sarà priva di balbuzie.
  • A meno che un aggiornamento del gioco non includa una correzione della balbuzie degli shader, aspetta finché non hai finito di giocare, altrimenti gli shader potrebbero essere compilati di nuovo.
  • Trattenere gli aggiornamenti del driver della GPU fino a quando non hai terminato il gioco attuale nel caso in cui si attivi nuovamente la compilazione.
  • Quando la compilazione si interrompe in un gioco, premi il pulsante di pausa e attendi fino al termine prima giocare ulteriormente.
  • Usa DirectX 11 invece della versione DirectX 12 di un gioco. Spesso la balbuzie degli shader è ridotta o assente, anche se per giunta rinuncerai alle funzionalità DX12.
  • Gioca invece su una console.

Nel tempo questo problema probabilmente scomparirà o diventerà molto meno invadente. Ad esempio, gli sviluppatori possono scaricare la compilazione degli shader sui core della CPU di cui il gioco non ha bisogno, il che è una situazione comune sui PC moderni con molti core. Fino ad allora, #stutterstruggle rimarrà un problema irritante nei giochi per PC.

RELAZIONATO: Perché i miei giochi hanno un aspetto peggiore con VRR?

LEGGI SUCCESSIVO

  • › Prendi un Galaxy S22 Ultra per $ 300 di sconto oggi
  • › Come contattare Instagram per assistenza sull'account
  • › Come spostare un gioco su un monitor esterno in Windows
  • › NVIDIA parla finalmente della fusione dei cavi RTX 4090
  • › Quale Smart Speaker ha la migliore qualità audio?
  • › Come disconnettersi da Netflix sulla TV