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::OfferResourcesIDXGIDevice2::ReclaimResources 方法的行為,以協助測試和偵錯。
注意 Direct3D 11.1 執行時間支援這些旗標,從 Windows 8 開始提供。
 
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::OfferResourcesIDXGIDevice2::ReclaimResources方法的行為取決於全系統的記憶體壓力。 因此,大部分應用程式的內容遺失且必須重新產生的情況並不常見。 Direct3D 偵錯層中的上述新選項可讓您一致地模擬該案例,並測試程式碼路徑。

Direct3D 11.1 執行時間支援下列旗標。

D3D11_DEBUG_FEATURE_AVOID_BEHAVIOR_CHANGING_DEBUG_AIDS (0x40) 停用下列預設偵錯行為。
 

啟用偵錯層時,它會執行特定動作來顯示應用程式問題。 藉由設定D3D11_DEBUG_FEATURE_AVOID_BEHAVIOR_CHANGING_DEBUG_AIDS功能遮罩旗標,您可以啟用偵錯層,而不需要取得下列預設偵錯行為:

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
程式庫 D3D11.lib

另請參閱

ID3D11Debug 介面