-
리소스는 여러 종류의 상태들중 하나의 상태를 가지고 있다.
- 즉, 리소스가 어떤 명령을 수행하기 위해서는 그 명령에 맞는 특정한 상태에 있을 때만 가능하다.
-
이러한 상태라는 개념은 리소스를 관리하기 위해서 만들어진 개념이다.
- 이전 DirectX 11에서는 하드웨어가 내부적인 상태를 관리해줬기 때문에 드라이버 성능에 영향을 받았다.
- DirectX 12에서는 리소스가 어떤 상태를 가져야 하는지를 소프트웨어에서 관리하는게 제일 적절하기 때문에 이러한 관리를 프로그래머가 하도록 추가되었다.
-
예를들어 GPU가 Depth/Stencil 버퍼를 사용하게 하려면 상태를D3D12_RESOURCE_STATE_DEPTH_WRITE 로 변경해주어야 한다.
- 이런식으로 명시가 되어야 GPU나 CPU에서 리소스를 사용할때 동기화 문제를 회피할 수 있어서 안전성과 성능향상에 도움이 된다.