ID3D11Debug::SetFeatureMask 메서드(d3d11sdklayers.h)
디버그 기능을 켜고 끄는 플래그의 비트 필드를 설정합니다.
구문
HRESULT SetFeatureMask(
UINT Mask
);
매개 변수
Mask
형식: UINT
비트 OR 연산을 사용하여 결합된 기능 마스크 플래그의 조합입니다. 플래그가 있으면 해당 기능이 켜기로 설정되고, 그렇지 않으면 기능이 꺼지도록 설정됩니다. 기능 마스크 플래그에 대한 설명은 비고를 참조하세요.
반환 값
형식: HRESULT
이 메서드는 Direct3D 11 반환 코드 중 하나를 반환합니다.
설명
D3D11_DEBUG_FEATURE_FINISH_PER_RENDER_OP(0x2) | 애플리케이션은 계속하기 전에 GPU가 렌더링 작업 처리를 완료할 때까지 기다립니다. |
D3D11_DEBUG_FEATURE_FLUSH_PER_RENDER_OP(0x1) | 런타임은 ID3D11DeviceContext::Flush를 추가로 호출합니다. |
D3D11_DEBUG_FEATURE_PRESENT_PER_RENDER_OP(0x4) | 런타임은 IDXGISwapChain::P resent를 호출합니다. 렌더링 버퍼의 표시는 ID3D11Debug::SetSwapChain 및 ID3D11Debug::SetPresentPerRenderOpDelay에 대한 이전 호출에 의해 설정된 설정에 따라 발생합니다. |
이러한 기능 마스크 플래그는 다음 렌더링 작업 메서드에 적용됩니다.
- ID3D11DeviceContext::Draw
- ID3D11DeviceContext::DrawIndexed
- ID3D11DeviceContext::DrawInstanced
- ID3D11DeviceContext::DrawIndexedInstanced
- ID3D11DeviceContext::DrawAuto
- ID3D11DeviceContext::ClearRenderTargetView
- ID3D11DeviceContext::ClearDepthStencilView
- ID3D11DeviceContext::CopySubresourceRegion
- ID3D11DeviceContext::CopyResource
- ID3D11DeviceContext::UpdateSubresource
- ID3D11DeviceContext::GenerateMips
- ID3D11DeviceContext::ResolveSubresource
D3D11_DEBUG_FEATURE_ALWAYS_DISCARD_OFFERED_RESOURCE(0x8) | 이 플래그를 사용하는 동안 IDXGIDevice2::OfferResources 를 호출하여 리소스를 제공하는 경우 해당 콘텐츠는 항상 삭제됩니다. 이 플래그를 사용하여 회수 시 리소스 콘텐츠를 다시 생성하는 코드 경로를 테스트합니다. 이 플래그는 D3D11_DEBUG_FEATURE_NEVER_DISCARD_OFFERED_RESOURCE 함께 사용할 수 없습니다. |
D3D11_DEBUG_FEATURE_NEVER_DISCARD_OFFERED_RESOURCE(0x10) | 이 플래그를 사용하는 동안 IDXGIDevice2::OfferResources 를 호출하여 리소스를 제공하는 경우 해당 콘텐츠는 삭제되지 않습니다. 이 플래그를 사용하여 회수 시 리소스 콘텐츠를 다시 생성할 필요가 없는 코드 경로를 테스트합니다. 이 플래그는 D3D11_DEBUG_FEATURE_ALWAYS_DISCARD_OFFERED_RESOURCE 함께 사용할 수 없습니다. |
IDXGIDevice2::OfferResources 및 IDXGIDevice2::ReclaimResources 메서드의 동작은 시스템 차원의 메모리 압력에 따라 달라집니다. 따라서 콘텐츠가 손실되고 다시 생성되어야 하는 시나리오는 대부분의 애플리케이션에서 일반적이지 않습니다. Direct3D 디버그 계층의 이전 새 옵션을 사용하면 해당 시나리오를 일관되게 시뮬레이션하고 코드 경로를 테스트할 수 있습니다.
다음 플래그는 Direct3D 11.1 런타임에서 지원됩니다.
D3D11_DEBUG_FEATURE_AVOID_BEHAVIOR_CHANGING_DEBUG_AIDS(0x40) | 다음 기본 디버깅 동작을 사용하지 않도록 설정합니다. |
디버그 계층이 사용하도록 설정되면 특정 작업을 수행하여 애플리케이션 문제를 표시합니다. D3D11_DEBUG_FEATURE_AVOID_BEHAVIOR_CHANGING_DEBUG_AIDS 기능 마스크 플래그를 설정하면 다음과 같은 기본 디버깅 동작을 가져오지 않고 디버그 계층을 사용하도록 설정할 수 있습니다.
- 애플리케이션이 ID3D11DeviceContext1::D iscardView를 호출하는 경우 런타임은 리소스를 임의 색으로 채웁니다.
- 애플리케이션이 부분 프레젠테이션 매개 변수를 사용하여 IDXGISwapChain1::P resent1 을 호출하는 경우 런타임은 부분 프레젠테이션 정보를 무시합니다.
D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION(0x80) | 다음 기본 디버깅 동작을 사용하지 않도록 설정합니다. |
기본적으로 디버그 계층은 디바이스 컨텍스트에서 수행되는 모든 작업(예: 그리기 D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION, 복사 등)에 대해 바 둑판식 리소스 에 대한 모든 타일 매핑을 적절하게 사용하는지 유효성을 검사합니다. 사용된 타일형 리소스의 크기에 따라(있는 경우) 이 유효성 검사는 프로세서 집약적이고 느릴 수 있습니다. 앱은 처음에 바둑판식 리소스 타일 매핑 유효성 검사를 사용하여 실행하려고 할 수 있습니다. 그런 다음 호출 패턴이 안전하다고 판단되면 D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION 설정하여 유효성 검사를 사용하지 않도록 설정할 수 있습니다.
타일식 리소스를 만들 때 D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION 설정된 경우 디버그 계층은 전체 수명 동안 해당 리소스에 대한 타일 매핑 추적을 수행하지 않습니다. 또는 타일식 리소스와 관련된 지정된 디바이스 컨텍스트 메서드 호출(예: 그리기 또는 복사 호출)에 대해 D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION 설정된 경우 디버그 계층은 호출에 대한 모든 타일 매핑 유효성 검사를 건너뜁니다.
요구 사항
대상 플랫폼 | Windows |
헤더 | d3d11sdklayers.h |
라이브러리 | D3D11.lib |