셰이더 캐시: 정의 및 게임 성능에 미치는 영향

여러 번 당신은에서 삭제할 임시 파일 중에서 보았을 것입니다 Windows 또는 소위 DirectX 셰이더 캐시 또는 셰이더 캐시라고 하는 공간을 확보하기 위해. 그것이 무엇인지, 왜 게임을 삭제할 때 게임 성능이 떨어지는지 궁금했다면 이 기사를 읽어야 합니다.

GPU는 CPU와 같은 프로세서이지만 병렬 처리가 스레드 지향적이라는 점에서 다릅니다. 그래서 그래픽 프로세서는 TLP형, 중앙 프로세서는 ILP형이라고 한다. 여기에 그래프의 실행 스레드가 프로세스가 아니라 그래픽 기본 요소 또는 데이터를 지향한다는 점을 추가해야 합니다.

셰이더 캐시

즉, 각 삼각형, 픽셀 또는 조각에는 3D 파이프라인의 각 단계에 대한 자체 셰이더 프로그램이 있습니다. 이것은 고급 언어로 작성되었습니다. 예를 들어 OpenGL 또는 Vulkan에 대해 이야기하는 경우 DirectX 또는 GLSL에 대해 이야기하는 경우 HLSL입니다. SONY의 PSGL과 같은 특정 시스템 전용인 것도 있지만 플레이 스테이션 콘솔. 음, 이러한 프로그램은 컴파일되어야 하므로 소스 코드에서 바이너리로 전달되어야 합니다.

셰이더 캐시란 무엇입니까?

셰이더 캐시 CoD

문제는 CPU가 모두 x86인 것과 달리 GPU의 경우 레지스터와 명령어 세트가 브랜드 간에가 아니라 동일한 브랜드의 아키텍처 간에 공통적이지 않을 때 발생합니다. 이것은 우리가 플레이하는 동안 셰이더의 코드를 컴파일해야 한다는 것을 의미하며, 이는 말더듬과 성능 문제를 일으킵니다. 따라서 생성된 바이너리는 게임이 다시 로드될 때 셰이더 캐시 또는 셰이더 캐시로 알려진 그래픽 카드의 비디오 메모리에 다시 로드되는 파일에 저장됩니다.

따라서 그래픽 카드를 업데이트하면 하드 드라이브 또는 SSD 또한. 더군다나 게임을 처음 플레이할 때 그래픽카드를 판단하는 것은 좋지 않은 이유 중 하나다. 특히 정기적인 성능을 측정하려는 경우.

VRAM도 공간을 차지합니다.

캐시 셰이더 제어판 NVIDIA

The GPU 의 그래픽 카드는 시스템에만 액세스합니다. PCI Express 인터페이스를 통해 DMA 장치를 사용하여 셰이더 캐시가 저장 장치에서 RAM으로, RAM에서 비디오 메모리로 장면을 구성하는 데 필요한 시각적 정보와 함께 로드됩니다. DirectStorage를 사용하면 그래픽 하드웨어가 SSD에 직접 액세스할 수 있을 것으로 예상되지만 액세스 대기 시간과 CPU.

많은 게임이 잘 개발되었고 셰이더 캐시는 공간을 거의 차지하지 않지만 다른 게임은 그렇게 많지 않고 결국 많은 양의 그래픽 메모리를 차지합니다. 드라이버에 관련된 제한이나 게임 자체가 있는 경우 갑자기 새 컴파일이 이전 컴파일을 대체하고 초기 성능 문제가 반환된다는 것을 의미합니다.

어쨌든 우리가 플레이하고 있는 게임에 비디오 RAM의 공간이 필요한 경우 현재 프레임의 렌더링이 우선한다는 점을 명심해야 합니다. 따라서 일시적으로 시스템 메모리에 저장된 셰이더 캐시를 검색합니다. 또한 한 번 그래픽 프리미티브의 셰이더가 생성되면 다시 수행할 필요가 없기 때문에 저장 장치에 대한 덤프가 지속적으로 생성된다는 점을 기억하십시오.

광선 추적 및 셰이더 캐시

레이 트레이싱에서 GPU에 대해 가장 자주 묻는 질문은 부울 유형입니다. 이 광선이 이 그래프 프리미티브와 교차합니까? 대답은 항상 예가 아니므로 상황에 따라 발생하거나 발생하지 않는 조건이 있습니다. 따라서 이 셰이더를 처음 실행할 때 가능한 모든 결과에 대해 캐시 셰이더를 컴파일하고 생성해야 합니다.

콘솔의 셰이더 캐시

XSX, XSS, PS5 콘솔

비디오 게임 콘솔은 공장에서 출고되는 첫 번째 모델부터 마지막 ​​모델까지 항상 동일한 구성 요소를 갖습니다. 몇 년이 지났지만 사양은 변경되지 않습니다. 예를 들어, 오늘날 가장 오래된 그래픽 카드보다 오래된 모델을 찾을 수 있습니다. 하드웨어 불변성을 활용하는 한 가지 방법은 게임 설치에 이미 컴파일된 소위 셰이더를 사용하는 것입니다. 따라서 각 게임에 대해 셰이더 캐시를 생성할 필요가 없지만 이는 양날의 검이기도 합니다.

예를 들어 더 강력하고 이전 버전과 호환되는 콘솔을 만들려면 다음 옵션을 사용할 수 있습니다.

  • ISA를 새 시스템의 GPU로 내보내 이전 시스템의 상위 집합으로 작동하도록 합니다. 이것이 AMD가 GCN용으로 설계된 이전 세대 게임을 원활하게 실행하기 위해 RDNA 5 아키텍처를 사용하는 PlayStation 2 및 Xbox 시리즈에서 수행한 작업입니다.
  • 이전 시스템의 모든 그래픽 회로를 새 시스템에 통합합니다. 이것은 Nintendo가 두 번째 PlayStation과 세 번째 일부 모델을 사용하여 최대 3DS 및 SONY 콘솔에서 수행한 작업입니다.

에뮬레이터 수준에서 대부분의 경우 수행되는 작업은 이미 컴파일된 셰이더를 가져와서 반대 프로세스를 수행하여 그래픽 카드와 함께 작동하도록 생성된 셰이더 캐시를 생성할 수 있는 중간 코드를 생성하는 것입니다. 그러나 이것은 정확한 과학이 아니며 게임을 실행할 때 특정 그래픽 결함이 발생할 수 있습니다.

GPU 제조업체를 위한 최적화

러브레이스 호퍼 조직

모두 NVIDIA 그리고 AMD 일반적으로 최신 드라이버에 최적화를 포함하여가장자리 계략. 여기에는 더 높은 성능을 위한 최적의 설정뿐만 아니라 각 게임에 대해 이미 최적화된 셰이더 캐시와 기본 게임보다 더 나은 사양이 포함됩니다. 그리고 두 제조업체 모두 현재 존재하는 모든 게임 중 가장 강력한 게임에서 가능한 최대 성능을 제공하는 가장 진보된 그래픽 카드에 관심이 있다는 것입니다.

따라서 이들은 특정 그래픽 아키텍처에 대해 셰이더 프로그램을 최적화하고 기본 게임과 함께 제공되는 것보다 더 잘 작동하는 셰이더 캐시를 생성하는 여러 개발 스튜디오에 돈을 남깁니다. 이것은 새로운 모델의 구매를 장려하고 산업을 유지하는 소비 흐름이 있는 데 필요한 프로그램 노후화를 만들기 위해 수행됩니다. 그렇기 때문에 이전 버전에 시각적으로 거의 변화가 없는 많은 게임이 결국 성능이 저하됩니다.