# 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의 셰이더 캐시](/ko/windows/blog/steam-shader-cache-windows)를 참고하세요. 시스템 캐시의 크기는 다음으로 측정합니다.

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

단위는 MB입니다.

## 지우면 도움이 될 때

| 보이는 증상 | 지울까요 | 이유 |
| --- | --- | --- |
| 드라이버 업데이트 후 시작된 결함, 충돌, 끊김 | 시도해 볼 만함 | 오래되었거나 손상된 항목이 원인일 수 있으며 다시 만들면 교체됨 |
| 캐시가 수 GB로 커졌고 공간이 필요함 | 지움 | 다시 생성되지만 다시 플레이하는 게임만 해당 |
| 게임이 각 구역을 처음 지날 때 끊김 | 지우지 않음 | 캐시가 채워지는 중이며, 지우면 같은 일이 다시 생김 |
| PC가 전반적으로 느림 | 지우지 않음 | 이것과 관련이 없음 |
| 정기적인 정리 | 필요 없음 | 얻는 것은 적은데 다시 만드는 비용을 치름 |

## 지우는 방법

시스템 캐시를 위한 기본 제공 방법입니다.

1. **설정 › 시스템 › 저장소 › 임시 파일**을 엽니다.
2. 나머지는 원하는 대로 두고 **DirectX 셰이더 캐시**를 선택합니다.
3. **파일 제거**를 선택합니다.

[디스크 정리](/ko/windows/blog/disk-cleanup-vs-storage-sense-windows)(`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에서 삭제할 수 있는 것](/ko/windows/blog/appdata-folder-what-can-delete)을 참고하세요.

## 자주 묻는 질문

### DirectX 셰이더 캐시를 삭제해도 안전한가요?

네. Windows가 다시 만듭니다. 대가는 다음에 게임을 실행할 때 로딩이 느리거나 약간 끊기는 것입니다.

### 셰이더 캐시를 삭제하면 성능이 좋아지나요?

대체로 그렇지 않으며 단기적으로는 오히려 나빠집니다. 손상된 캐시가 결함을 일으키거나 디스크 공간이 필요할 때 도움이 됩니다.

### DirectX 셰이더 캐시는 어디에 저장되나요?

`%LOCALAPPDATA%\D3DSCache`입니다. NVIDIA, AMD, Intel, Steam은 다른 폴더에 각자의 캐시를 둡니다.

### 셰이더 캐시가 계속 다시 생기는 이유는 무엇인가요?

게임과 앱이 실행되면서 셰이더를 다시 컴파일하기 때문입니다. 원래 그러라고 있는 것이므로 정리가 실패했다는 신호가 아닙니다.

### 드라이버 업데이트 후 셰이더 캐시를 지워야 하나요?

업데이트 후 문제가 있을 때만 하세요. 드라이버는 보통 필요한 것을 알아서 다시 만들며, 결함이나 충돌이 보인다면 지워 보는 것도 괜찮은 단계입니다.


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