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 |