다음을 통해 공유


Direct3D 12의 작업 제출

Direct3D 앱의 CPU 효율성을 개선하기 위해 버전 12를 기준으로 Direct3D는 더 이상 디바이스와 연결된 즉각적인 컨텍스트를 지원하지 않습니다. 대신 애플리케이션은 그리기 및 리소스 관리 호출을 포함하는 명령 목록을 기록한 다음 제출합니다. 여러 스레드에서 하나 이상의 명령 큐로 이러한 명령 목록을 제출하여 명령 실행을 관리할 수 있습니다. 이러한 기본 변경은 애플리케이션이 나중에 다시 사용하기 위해 렌더링 작업을 미리 계산할 수 있도록 하여 단일 스레드 효율성을 높이고 여러 스레드에 렌더링 작업을 분산하여 다중 코어 시스템을 활용합니다.

이 섹션에서는

주제 묘사
명령 큐 및 명령 목록 디자인 철학 렌더링 작업 및 다중 스레드 크기 조정을 다시 사용할 수 있도록 하려면 Direct3D 앱이 렌더링 작업을 GPU에 제출하는 방법에 대한 기본적인 변경이 필요했습니다.
만들기 및 기록 명령 목록 및 번들 이 항목에서는 Direct3D 12 앱에서 명령 목록 및 번들을 기록하는 방법에 대해 설명합니다. 명령 목록과 번들을 모두 사용하면 앱이 GPU(그래픽 처리 장치)에서 나중에 실행하기 위한 그리기 또는 상태 변경 호출을 기록할 수 있습니다.
명령 목록 실행 및 동기화 Microsoft Direct3D 12에서는 이전 버전의 직접 실행 모드가 더 이상 존재하지 않습니다. 대신 앱은 명령 목록과 번들을 만든 다음 GPU 명령 집합을 기록합니다. 명령 큐는 실행할 명령 목록을 제출하는 데 사용됩니다. 이 모델을 사용하면 개발자가 GPU와 CPU의 효율적인 사용을 더 효율적으로 제어할 수 있습니다.
Direct3D 12 그래픽 파이프라인 상태 관리 이 항목에서는 Direct3D 12에서 그래픽 파이프라인 상태를 설정하는 방법을 설명합니다.
Direct3D 12 리소스 장벽을 사용하여 리소스 상태 동기화 전체 CPU 사용량을 줄이고 드라이버 다중 스레딩 및 사전 처리를 사용하도록 설정하기 위해 Direct3D 12는 리소스별 상태 관리를 그래픽 드라이버에서 애플리케이션으로 이동합니다.
Direct3D 12 사용하여 파이프라인 및 셰이더 Direct3D 12 프로그래밍 가능 파이프라인은 이전 세대 그래픽 프로그래밍 인터페이스에 비해 렌더링 성능을 크게 향상합니다.
VRS(가변 속도 음영) 가변 속도 음영 또는 거친 픽셀 음영은 렌더링된 이미지에 따라 다른 속도로 렌더링 성능/파워를 할당할 수 있는 메커니즘입니다.
렌더링이 전달합니다. 렌더링 패스 기능을 사용하면 메모리 트래픽을 오프칩 메모리로/오프칩 메모리로 줄여 렌더러가 GPU 효율성을 향상시킬 수 있습니다. 애플리케이션이 리소스 렌더링 순서 요구 사항 및 데이터 종속성을 더 잘 식별할 수 있도록 하여 이 작업을 수행합니다.