# É seguro apagar o DirectX Shader Cache no Windows

O DirectX Shader Cache guarda os shaders, os pequenos programas que uma placa de vídeo executa, depois que o Windows os compilou, para que jogos e apps não precisem compilá-los de novo. É seguro apagá-lo, e o Windows o oferece nas próprias ferramentas de limpeza. O porém é que a próxima abertura precisa reconstruí-lo, então os jogos podem carregar devagar ou engasgar por um tempo. Limpe quando ele estiver ocupando espaço de verdade ou quando você suspeitar que está danificado, e não como manutenção de rotina.

## Onde ele fica

O cache do sistema é `%LOCALAPPDATA%\D3DSCache`, com uma pasta dentro dele para cada cache. Os drivers de vídeo e os jogos também guardam os seus:

| Caminho dentro da sua pasta de usuário | Dono |
| --- | --- |
| `AppData\Local\D3DSCache` | DirectX do Windows |
| `AppData\Local\Microsoft\DirectX Shader Cache` | Cache de pipeline do DirectX do 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` (drivers atuais) | Intel |
| `AppData\Local\VulkanCache` | Vulkan |

Quais deles existem depende do seu hardware gráfico. O Steam guarda um cache por jogo na própria biblioteca, veja [o cache de shaders do Steam](/pt-br/windows/blog/steam-shader-cache-windows). Para medir o do sistema:

```powershell
$p = "$env:LOCALAPPDATA\D3DSCache"
[math]::Round((Get-ChildItem $p -Recurse -Force -File -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1MB, 1)
```

O valor está em MB.

## Quando limpar ajuda

| O que você vê | Limpar? | Por quê |
| --- | --- | --- |
| Falhas, travamentos ou engasgos que começaram depois de uma atualização de driver | Vale tentar | Uma entrada antiga ou danificada pode ser a causa, e a reconstrução a substitui |
| O cache cresceu para muitos gigabytes e você precisa do espaço | Sim | Ele se regenera, mas só para os jogos que você jogar de novo |
| Um jogo engasga na primeira vez em cada área | Não | Isso é o cache sendo preenchido, e limpá-lo faz acontecer de novo |
| Lentidão geral do PC | Não | Não tem nada a ver com isso |
| Limpeza de rotina | Desnecessário | Você paga a reconstrução por pouco ganho |

## Como limpar

O jeito integrado, para o cache do sistema:

1. Abra **Configurações › Sistema › Armazenamento › Arquivos temporários**.
2. Marque **DirectX Shader Cache**, deixando o resto como preferir.
3. Escolha **Remover arquivos**.

A [Limpeza de Disco](/pt-br/windows/blog/disk-cleanup-vs-storage-sense-windows) (`cleanmgr`) tem a mesma opção. O Windows a registra como um manipulador de limpeza, `D3D Shader Cache`, e o ThinkPad de teste também o tinha.

À mão, feche seus jogos e ferramentas gráficas, abra `%LOCALAPPDATA%\D3DSCache` com `Win + R` e apague o que estiver dentro. Pule o que estiver em uso. Para o cache de um driver, apague o conteúdo da pasta acima com o jogo fechado. O **Shader Cache Size** do Painel de Controle da NVIDIA só limita até quanto ele pode crescer.

## O que esperar depois

A primeira abertura de cada jogo compila os shaders de novo. Alguns jogos mostram uma barra de progresso, outros engasgam ao se mover por áreas novas até o cache encher. Quanto tempo leva depende do jogo e do seu hardware, e pode ser de minutos. Não julgue o resultado pela primeira sessão.

## O que não fazer

- Não limpe antes de uma sessão de jogo ou de um benchmark. Ele estará no ponto mais lento.
- Não o agende. Ele não é lixo que se acumula de forma prejudicial, e um cache sempre vazio significa compilar o tempo todo.
- Não apague as pastas do driver fora dos caminhos acima. `C:\Windows\System32\DriverStore` e as pastas de instalação do driver não são caches.
- Não espere que isso conserte um jogo com arquivos quebrados. Use a opção de verificar arquivos do launcher para isso.

## Onde o Mole entra

O **Limpar** do Mole para Windows lista esses caches pelo nome, incluindo **DirectX Shader Cache**, **DirectX Pipeline Cache** e as pastas da NVIDIA, da AMD e do Vulkan acima, mais a pasta `Local` mais antiga da Intel, cada uma com o tamanho. O Mole não lista a pasta `LocalLow` que os drivers atuais da Intel usam. Elas começam desmarcadas e o Recomendado as deixa de fora, porque cada jogo então precisa compilar os shaders de novo. Marque uma quando tiver decidido que esse custo vale a pena. Os caches por jogo do Steam aparecem do mesmo jeito, e o cache da NVIDIA em `ProgramData` precisa de administrador. Para o resto da pasta em que eles ficam, veja [o que você pode apagar em AppData](/pt-br/windows/blog/appdata-folder-what-can-delete).

## Perguntas frequentes

### É seguro apagar o DirectX Shader Cache?

Sim. O Windows o reconstrói. O custo é um carregamento mais lento ou algum engasgo nos jogos da próxima vez que rodarem.

### Apagar o cache de shaders melhora o desempenho?

Em geral não, e no curto prazo piora. Ajuda quando um cache danificado está causando falhas ou quando você precisa do espaço em disco.

### Onde o DirectX Shader Cache fica armazenado?

Em `%LOCALAPPDATA%\D3DSCache`. NVIDIA, AMD, Intel e Steam guardam caches próprios em outras pastas.

### Por que o cache de shaders continua voltando?

Porque jogos e apps compilam shaders de novo enquanto rodam. É para isso que ele serve, então não é sinal de que a limpeza falhou.

### Devo limpar o cache de shaders depois de uma atualização de driver?

Só se algo estiver errado depois da atualização. Os drivers costumam reconstruir o que precisam, e limpar é um passo razoável quando você vê falhas ou travamentos.


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