Windows에서 DirectX 셰이더 캐시를 삭제해도 안전한가요
DirectX 셰이더 캐시는 그래픽 카드가 실행하는 작은 프로그램인 셰이더를 Windows가 컴파일한 뒤 보관해, 게임과 앱이 다시 컴파일하지 않도록 하는 곳입니다. 삭제해도 안전하며 Windows의 자체 정리 도구도 이를 제공합니다. 다만 다음 실행 때 다시 만들어야 하므로 한동안 게임 로딩이 느리거나 끊길 수 있습니다. 실제로 공간을 차지하고 있거나 손상이 의심될 때 지우고, 정기적인 관리로 지우지는 마세요.
위치
시스템 캐시는 %LOCALAPPDATA%\D3DSCache이며, 그 안에 캐시별 폴더가 있습니다. 그래픽 드라이버와 게임도 각자의 캐시를 둡니다.
| 사용자 폴더 아래 경로 | 소유자 |
|---|---|
AppData\Local\D3DSCache |
Windows DirectX |
AppData\Local\Microsoft\DirectX Shader Cache |
Windows DirectX 파이프라인 캐시 |
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 (현재 드라이버) |
Intel |
AppData\Local\VulkanCache |
Vulkan |
어떤 것이 있는지는 그래픽 하드웨어에 따라 다릅니다. Steam은 자체 라이브러리 안에 게임별 캐시를 두며, Steam의 셰이더 캐시를 참고하세요. 시스템 캐시의 크기는 다음으로 측정합니다.
$p = "$env:LOCALAPPDATA\D3DSCache"
[math]::Round((Get-ChildItem $p -Recurse -Force -File -ErrorAction SilentlyContinue | Measure-Object Length -Sum).Sum / 1MB, 1)
단위는 MB입니다.
지우면 도움이 될 때
| 보이는 증상 | 지울까요 | 이유 |
|---|---|---|
| 드라이버 업데이트 후 시작된 결함, 충돌, 끊김 | 시도해 볼 만함 | 오래되었거나 손상된 항목이 원인일 수 있으며 다시 만들면 교체됨 |
| 캐시가 수 GB로 커졌고 공간이 필요함 | 지움 | 다시 생성되지만 다시 플레이하는 게임만 해당 |
| 게임이 각 구역을 처음 지날 때 끊김 | 지우지 않음 | 캐시가 채워지는 중이며, 지우면 같은 일이 다시 생김 |
| PC가 전반적으로 느림 | 지우지 않음 | 이것과 관련이 없음 |
| 정기적인 정리 | 필요 없음 | 얻는 것은 적은데 다시 만드는 비용을 치름 |
지우는 방법
시스템 캐시를 위한 기본 제공 방법입니다.
- 설정 › 시스템 › 저장소 › 임시 파일을 엽니다.
- 나머지는 원하는 대로 두고 DirectX 셰이더 캐시를 선택합니다.
- 파일 제거를 선택합니다.
디스크 정리(cleanmgr)에도 같은 옵션이 있습니다. Windows는 이를 D3D Shader Cache라는 정리 처리기로 등록하며, 테스트용 ThinkPad에도 있었습니다.
직접 지우려면 게임과 그래픽 도구를 닫고, Win + R로 %LOCALAPPDATA%\D3DSCache를 열어 안의 내용을 삭제합니다. 사용 중인 것은 건너뛰세요. 드라이버 캐시는 게임을 닫은 상태에서 위 폴더의 내용을 삭제합니다. NVIDIA 제어판의 셰이더 캐시 크기는 캐시가 커질 수 있는 한도만 제한합니다.
지운 뒤 예상되는 일
각 게임을 처음 실행하면 셰이더를 다시 컴파일합니다. 어떤 게임은 진행 표시줄을 보여 주고, 어떤 게임은 캐시가 찰 때까지 새 구역을 이동하면서 끊깁니다. 걸리는 시간은 게임과 하드웨어에 따라 다르며 몇 분이 될 수 있습니다. 첫 번째 플레이 세션으로 결과를 판단하지 마세요.
하지 말아야 할 것
- 게임 세션이나 벤치마크 직전에 지우지 마세요. 가장 느린 상태가 됩니다.
- 예약 작업으로 지우지 마세요. 해로울 만큼 쌓이는 쓰레기가 아니며, 항상 비어 있는 캐시는 항상 컴파일 중이라는 뜻입니다.
- 위 경로 밖의 드라이버 폴더는 삭제하지 마세요.
C:\Windows\System32\DriverStore와 드라이버 설치 폴더는 캐시가 아닙니다. - 파일이 깨진 게임이 이것으로 고쳐지리라 기대하지 마세요. 그럴 때는 런처의 파일 확인 옵션을 쓰세요.
Mole의 역할
Mole for Windows의 정리는 이 캐시들을 이름으로 나열합니다. DirectX Shader Cache, DirectX Pipeline Cache, 위의 NVIDIA, AMD, Vulkan 폴더와 Intel의 예전 Local 폴더가 크기와 함께 표시됩니다. 현재 Intel 드라이버가 쓰는 LocalLow 폴더는 나열하지 않습니다. 이들은 선택 해제된 채 시작하고 추천에서도 빠지는데, 지우면 각 게임이 셰이더를 다시 컴파일해야 하기 때문입니다. 그 비용을 감수하기로 했을 때 선택하세요. Steam의 게임별 캐시도 같은 방식으로 나타나며, ProgramData의 NVIDIA 캐시는 관리자 권한이 필요합니다. 이들이 들어 있는 나머지 폴더는 AppData에서 삭제할 수 있는 것을 참고하세요.
자주 묻는 질문
DirectX 셰이더 캐시를 삭제해도 안전한가요?
네. Windows가 다시 만듭니다. 대가는 다음에 게임을 실행할 때 로딩이 느리거나 약간 끊기는 것입니다.
셰이더 캐시를 삭제하면 성능이 좋아지나요?
대체로 그렇지 않으며 단기적으로는 오히려 나빠집니다. 손상된 캐시가 결함을 일으키거나 디스크 공간이 필요할 때 도움이 됩니다.
DirectX 셰이더 캐시는 어디에 저장되나요?
%LOCALAPPDATA%\D3DSCache입니다. NVIDIA, AMD, Intel, Steam은 다른 폴더에 각자의 캐시를 둡니다.
셰이더 캐시가 계속 다시 생기는 이유는 무엇인가요?
게임과 앱이 실행되면서 셰이더를 다시 컴파일하기 때문입니다. 원래 그러라고 있는 것이므로 정리가 실패했다는 신호가 아닙니다.
드라이버 업데이트 후 셰이더 캐시를 지워야 하나요?
업데이트 후 문제가 있을 때만 하세요. 드라이버는 보통 필요한 것을 알아서 다시 만들며, 결함이나 충돌이 보인다면 지워 보는 것도 괜찮은 단계입니다.