ID3D12GraphicsCommandList1::SetViewInstanceMask 메서드(d3d12.h)

후속 그리기에서 사용할 수 있는 보기 인스턴스를 제어하는 마스크를 설정합니다.

구문

void SetViewInstanceMask(
  [in] UINT Mask
);

매개 변수

[in] Mask

형식: UINT

사용하거나 사용하지 않도록 설정되는 뷰를 지정하는 마스크입니다. 가장 중요하지 않은 비트에서 시작하는 비트가 설정된 경우 사용하도록 설정된 instance 확인합니다.

반환 값

없음

설명

뷰 instance 마스크는 만드는 동안 D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING 플래그를 지정하여 뷰 instance 마스킹을 선언하는 PSO에만 영향을 줍니다. 뷰 instance 마스킹을 선언하는 PSO를 만들려고 하면 보기 인스턴스를 지원하지 않는 어댑터에서 실패합니다.

뷰 instance 마스크는 기본적으로 0으로 설정되며 모든 보기를 사용하지 않도록 설정합니다. 이렇게 하면 뷰 instance 마스킹을 선언하는 애플리케이션이 사용하도록 설정할 뷰를 명시적으로 선택해야 합니다. 그렇지 않으면 아무 것도 렌더링되지 않습니다. 뷰 instance 마스크가 기본적으로 모든 보기를 사용하도록 설정한 경우 애플리케이션은 사용되지 않는 보기를 사용하지 않도록 설정하지 않을 수 있으므로 작업 낭비로 인해 성능이 저하될 수 있습니다.

번들은 호출자에서 뷰 instance 마스크를 상속하지 않으며, 대신 기본값은 0입니다. 이는 구현 레코드가 그리는 방식에 영향을 주는 경우 번들이 기록될 때 마스크 설정을 알고 있어야 하기 때문입니다. 그러나 번들이 설정한 뷰 instance 마스크는 번들이 완료된 후에도 호출자에게 유지됩니다. 이러한 상속 의미 체계는 PSO의 의미 체계와 비슷합니다.

SV_ViewID 종속된 셰이더 코드 경로는 마스킹된 뷰 인스턴스에 대한 셰이더 단계에서 실행되지 않으며 클리핑, 뷰포트 처리 또는 래스터화가 수행되지 않습니다. 렌더링하는 동안 마스크를 검사하는 구현은 보기 instance 마스킹을 전혀 선언하지 않는 PSO보다 성능이 약간 저하될 수 있지만, 일반적으로 마스킹된 뷰와 연결된 작업을 건너뛰면 성능이 저하될 수 있습니다. 건너뛴 작업의 빈도와 양에 따라 성능 향상이 중요할 수 있습니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 d3d12.h

추가 정보

ID3D12GraphicsCommandList1