É 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. Para medir o do sistema:
$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:
- Abra Configurações › Sistema › Armazenamento › Arquivos temporários.
- Marque DirectX Shader Cache, deixando o resto como preferir.
- Escolha Remover arquivos.
A Limpeza de Disco (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\DriverStoree 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.
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.