위험 추적 및 타일 풀 리소스
타일이 지정되지 않은 리소스의 경우 Direct3D는 렌더링 중에 특정 위험 조건을 방지할 수 있지만, 타일식 리소스의 경우 위험 추적이 타일 수준에 있기 때문에 타일식 리소스를 렌더링하는 동안 위험 조건을 추적하는 데 비용이 너무 많이 들 수 있습니다.
예를 들어 타일이 없는 리소스의 경우 런타임에서는 지정된 SubResource를 입력(예: ShaderResourceView)과 출력(예: RenderTargetView)으로 동시에 바인딩할 수 없습니다. 이러한 경우 런타임이 입력을 바인딩 해제합니다. 런타임에서 이 추적 오버헤드는 저렴하며 SubResource 수준에서 수행됩니다. 이 추적 오버헤드의 장점 중 하나는 하드웨어 셰이더 실행 순서에 따라 실수로 응용 프로그램이 위험에 빠지는 경우를 최소화한다는 것입니다. 하드웨어 셰이더 실행 순서는 GPU(그래픽 처리 장치)에 지정되어 있지 않을 경우 다를 수 있으므로, GPU마다 다를 수 있습니다.
추적이 타일 수준에 있기 때문에 리소스가 바인딩되는 방식을 추적하면 타일 리소스에 비해 비용이 너무 많이 들 수 있습니다. 하나의 타일이 표면의 여러 영역에 동시에 매핑된 RenderTargetView에 렌더링 시도의 유효성을 검사하는 것과 같은 새로운 문제가 발생합니다. 타일별 위험 추적이 런타임에 너무 많은 리소스가 소모된다면, 적어도 디버그 계층에서의 옵션으로는 사용하는 것이 좋습니다.
애플리케이션은 타일 풀 메모리를 참조하는 타일 풀 메모리를 참조하는 타일형 리소스에 쓰기 또는 읽기 작업을 실행한 경우 표시 드라이버에 다음 작업을 시작하기 전에 첫 번째 작업이 완료될 것으로 예상한다는 사실을 향후 읽기 또는 쓰기 작업에서 별도의 타일식 리소스로 참조하도록 알려야 합니다. 이 조건에 대한 자세한 내용은 ID3D11DeviceContext2::TiledResourceBarrier 설명을 참조하세요.
관련 항목