È sicuro eliminare la DirectX Shader Cache su Windows
La DirectX Shader Cache contiene gli shader, i piccoli programmi eseguiti da una scheda grafica, dopo che Windows li ha compilati, così giochi e app non devono compilarli di nuovo. Si può eliminare senza rischi e Windows la propone nei propri strumenti di pulizia. Il problema è che al prossimo avvio va ricostruita, quindi per un po' i giochi possono caricarsi lentamente o andare a scatti. Svuotala quando occupa spazio vero o quando sospetti che sia danneggiata, non come manutenzione di routine.
Dove si trova
La cache di sistema è %LOCALAPPDATA%\D3DSCache, con dentro una cartella per ogni cache. Anche i driver grafici e i giochi ne tengono di proprie:
| Percorso nella tua cartella utente | Proprietario |
|---|---|
AppData\Local\D3DSCache |
DirectX di Windows |
AppData\Local\Microsoft\DirectX Shader Cache |
Cache delle pipeline DirectX di Windows |
AppData\Local\NVIDIA\DXCache, AppData\Local\NVIDIA\GLCache |
NVIDIA |
AppData\LocalLow\NVIDIA\PerDriverVersion\DXCache |
NVIDIA |
AppData\Local\AMD\DXCache, AppData\Local\AMD\VkCache |
AMD |
AppData\Local\Intel\ShaderCache, AppData\LocalLow\Intel\ShaderCache (driver attuali) |
Intel |
AppData\Local\VulkanCache |
Vulkan |
Quali esistono dipende dall'hardware grafico. Steam tiene una cache per ogni gioco nella propria libreria, vedi la cache degli shader di Steam. Per misurare quella di sistema:
$p = "$env:LOCALAPPDATA\D3DSCache"
[math]::Round((Get-ChildItem $p -Recurse -Force -File -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1MB, 1)
Il valore è in MB.
Quando svuotarla aiuta
| Cosa vedi | Svuotarla? | Perché |
|---|---|---|
| Problemi grafici, crash o scatti iniziati dopo un aggiornamento dei driver | Vale la pena provare | Una voce obsoleta o danneggiata può essere la causa, e una ricostruzione la sostituisce |
| La cache è arrivata a molti gigabyte e ti serve lo spazio | Sì | Si rigenera, ma solo per i giochi a cui giochi di nuovo |
| Un gioco va a scatti la prima volta in ogni area | No | È la cache che si sta riempiendo, e svuotarla fa ripetere la cosa |
| Lentezza generale del PC | No | Non c'entra nulla |
| Pulizia di routine | Non serve | Paghi la ricostruzione per poco vantaggio |
Come svuotarla
Il modo integrato, per la cache di sistema:
- Apri Impostazioni › Sistema › Archiviazione › File temporanei.
- Spunta DirectX Shader Cache, lasciando il resto come preferisci.
- Scegli Rimuovi file.
Pulizia disco (cleanmgr) ha la stessa opzione. Windows la registra come gestore di pulizia, D3D Shader Cache, e il ThinkPad di prova l'aveva anche lui.
A mano, chiudi i giochi e gli strumenti grafici, apri %LOCALAPPDATA%\D3DSCache con Win + R ed elimina ciò che contiene. Salta tutto ciò che è in uso. Per la cache di un driver, elimina il contenuto della cartella indicata sopra con il gioco chiuso. Dimensione cache shader nel Pannello di controllo NVIDIA ne limita solo la crescita massima.
Cosa aspettarsi dopo
Al primo avvio di ogni gioco gli shader vengono compilati di nuovo. Alcuni giochi mostrano una barra di avanzamento, altri vanno a scatti mentre ti muovi in nuove aree finché la cache non è piena. Quanto dura dipende dal gioco e dall'hardware, e può volerci qualche minuto. Non giudicare il risultato dalla prima sessione.
Cosa non fare
- Non svuotarla prima di una sessione di gioco o di un benchmark. Sarà al suo momento più lento.
- Non pianificarla. Non è spazzatura che si accumula in modo dannoso, e una cache sempre vuota significa compilare sempre.
- Non eliminare le cartelle dei driver fuori dai percorsi indicati sopra.
C:\Windows\System32\DriverStoree le cartelle di installazione dei driver non sono cache. - Non aspettarti che risolva un gioco con file danneggiati. Per quello usa l'opzione di verifica del launcher.
Il ruolo di Mole
Pulizia di Mole per Windows elenca queste cache per nome, tra cui DirectX Shader Cache, DirectX Pipeline Cache e le cartelle NVIDIA, AMD e Vulkan indicate sopra, più la vecchia cartella Local di Intel, ciascuna con la sua dimensione. Mole non elenca la cartella LocalLow usata dai driver Intel attuali. Partono non selezionate e Consigliati le lascia fuori, perché poi ogni gioco deve compilare di nuovo i suoi shader. Selezionane una quando hai deciso che quel costo vale la pena. Le cache per gioco di Steam compaiono allo stesso modo, e la cache NVIDIA in ProgramData richiede i privilegi di amministratore. Per il resto della cartella in cui si trovano, vedi cosa puoi eliminare in AppData.
Domande frequenti
È sicuro eliminare la DirectX Shader Cache?
Sì. Windows la ricostruisce. Il costo è un caricamento più lento o qualche scatto nei giochi la volta successiva che li avvii.
Eliminare la shader cache migliora le prestazioni?
Di solito no, e nel breve periodo peggiora. Aiuta quando una cache danneggiata causa problemi grafici, o quando ti serve lo spazio su disco.
Dove è memorizzata la DirectX Shader Cache?
In %LOCALAPPDATA%\D3DSCache. NVIDIA, AMD, Intel e Steam tengono cache proprie in altre cartelle.
Perché la shader cache continua a ricomparire?
Perché giochi e app compilano di nuovo gli shader mentre girano. È la sua funzione, quindi non è il segno che la pulizia non ha funzionato.
Devo svuotare la shader cache dopo un aggiornamento dei driver?
Solo se qualcosa non va dopo l'aggiornamento. I driver di solito ricostruiscono ciò che serve, e svuotarla è un passo ragionevole quando vedi problemi grafici o crash.