# È 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](/it/windows/blog/steam-shader-cache-windows). Per misurare quella di sistema:

```powershell
$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:

1. Apri **Impostazioni › Sistema › Archiviazione › File temporanei**.
2. Spunta **DirectX Shader Cache**, lasciando il resto come preferisci.
3. Scegli **Rimuovi file**.

[Pulizia disco](/it/windows/blog/disk-cleanup-vs-storage-sense-windows) (`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\DriverStore` e 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](/it/windows/blog/appdata-folder-what-can-delete).

## 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.


Canonical: https://mole.fit/it/windows/blog/directx-shader-cache-windows
