ID3D11Debug::SetFeatureMask メソッド (d3d11sdklayers.h)

デバッグ機能のオンとオフを切り替えるフラグのビット フィールドを設定します。

構文

HRESULT SetFeatureMask(
  UINT Mask
);

パラメーター

Mask

型: UINT

ビットごとの OR 演算を使用して結合される機能マスク フラグの組み合わせ。 フラグが存在する場合、その機能はオンに設定され、それ以外の場合、機能はオフに設定されます。 機能マスク フラグの説明については、「解説」を参照してください。

戻り値

型: HRESULT

このメソッドは、 Direct3D 11 リターン コードのいずれかを返します

解説

メモ セッション 0 プロセスでこの API を呼び出すと、 DXGI_ERROR_NOT_CURRENTLY_AVAILABLEが返されます。
 
次のいずれかの機能マスク フラグを設定すると、レンダリング操作メソッド (以下に示す) が呼び出されたときに追加のタスクを実行します。
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::SetSwapChainID3D11Debug::SetPresentPerRenderOpDelay の以前の呼び出しによって確立された設定に従って行われます。
 

これらの機能マスク フラグは、次のレンダリング操作メソッドに適用されます。

次のいずれかの機能マスク フラグを設定すると、テストとデバッグに役立つ IDXGIDevice2::OfferResources メソッドと IDXGIDevice2::ReclaimResources メソッドの動作を制御できます。
メモ これらのフラグは、Windows 8 以降で使用できる Direct3D 11.1 ランタイムでサポートされています。
 
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 を呼び出す場合、ランタイムは部分プレゼンテーション情報を無視します。
Direct3D 11.2 ランタイムでは、次のフラグがサポートされています。
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
Library D3D11.lib

関連項目

ID3D11Debug インターフェイス