ID3D11Debug::SetFeatureMask 方法 (d3d11sdklayers.h)

设置将打开和关闭调试功能的标志的位字段。

语法

HRESULT SetFeatureMask(
  UINT Mask
);

参数

Mask

类型: UINT

通过使用按位 OR 操作组合的功能掩码标志的组合。 如果存在标志,该功能将设置为 on,否则该功能将设置为 off。 有关功能掩码标志的说明,请参阅备注。

返回值

类型: 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
Library D3D11.lib

请参阅

ID3D11Debug 接口