ID3D12DebugCommandList1::AssertResourceState 方法 (d3d12sdklayers.h)

验证给定状态是否与子资源的状态匹配,假设给定子资源的状态在记录命令列表期间 (已知,例如,在记录) 的同一个命令列表之前转换了资源。 如果状态尚未知,此方法将设置已知状态,以便稍后在同一命令列表录制中进一步验证。

语法

BOOL AssertResourceState(
  [in] ID3D12Resource *pResource,
       UINT           Subresource,
       UINT           State
);

参数

[in] pResource

类型: ID3D12Resource*

指定要检查的 ID3D12Resource

Subresource

类型: UINT

要检查的子资源的索引。 这可以设置为索引,也可以D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES。

State

类型: UINT

指定要为其检查的状态。 这可以是一个或多个 D3D12_RESOURCE_STATES 标志或组合在一起。

返回值

类型: BOOL

如果资源或子资源的跟踪状态与指定状态匹配,则此方法返回 true ;否则返回 false

注解

由于命令列表的执行发生在录制后的某个时间,因此在命令列表录制期间通常无法知道资源的状态。 AssertResourceState 使应用程序开发人员能够在命令列表中的固定记录点对资源或子资源施加假定状态。

资源或子资源的状态通常是已知的,因为以前的屏障或按使用推断 (在命令列表录制期间对 CopyBufferRegion) 的早期调用中使用。 在这种情况下,如果给定状态与已知或假定状态不匹配, AssertResourceState 可能会生成调试消息。

此 API 仅用于调试验证,不会影响资源的实际运行时或 GPU 状态。

要求

要求
目标平台 Windows
标头 d3d12sdklayers.h

另请参阅

ID3D12DebugCommandList1