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 |