다중 스레딩을 사용하여 개체 만들기
ID3D11Device 인터페이스를 사용하여 리소스 및 개체를 만들고 렌더링에 ID3D11DeviceContext를 사용합니다.
리소스를 만드는 방법의 몇 가지 예는 다음과 같습니다.
다중 스레딩 고려 사항
애플리케이션이 달성할 수 있는 리소스 생성 및 렌더링의 동시성 양은 드라이버가 구현하는 다중 스레딩 지원 수준에 따라 달라집니다. 드라이버가 동시 생성을 지원하는 경우 애플리케이션에는 동시성 문제가 훨씬 적어야 합니다. 그러나 드라이버가 동시 개체 생성을 지원하지 않는 경우 동시성 양이 매우 제한됩니다. 드라이버에서 사용할 수 있는 지원의 양을 이해하려면 드라이버에 D3D11_FEATURE_DATA_THREADING 구조체의 DriverConcurrentCreates 멤버 값에 대해 쿼리합니다. 다중 스레딩의 드라이버 지원을 확인하는 방법에 대한 자세한 내용은 방법: 드라이버 지원 확인을 참조하세요.
동시 작업이 반드시 더 나은 성능으로 이어지는 것은 아닙니다. 예를 들어 텍스처 만들기 및 로드는 일반적으로 메모리 대역폭에 의해 제한됩니다. 여러 CPU 코어를 유휴 상태로 두더라도 여러 텍스처를 만들고 로드하는 것이 한 번에 하나의 텍스처를 수행하는 것보다 빠르지 않을 수 있습니다. 그러나 이 작업은 메모리 대역폭과 같은 시스템 리소스에 덜 의존하므로 여러 스레드를 사용하여 여러 셰이더를 만들면 성능이 향상됩니다.
드라이버 및 그래픽 하드웨어가 다중 스레딩을 지원하는 경우 일반적으로 pInitialData 매개 변수의 초기 데이터에 대한 포인터를 전달하여 새로 만든 리소스를 보다 효율적으로 초기화할 수 있습니다(예: ID3D11Device::CreateTexture2D 메서드 호출).
관련 항목