ID3D12GraphicsCommandList::ResolveSubresource 方法 (d3d12.h)

将多采样资源复制到非多采样资源中。

语法

void ResolveSubresource(
  ID3D12Resource *pDstResource,
  UINT           DstSubresource,
  ID3D12Resource *pSrcResource,
  UINT           SrcSubresource,
  DXGI_FORMAT    Format
);

参数

pDstResource

类型:[in] ID3D12Resource*

目标资源。 必须是 在D3D12_HEAP_TYPE_DEFAULT 堆上创建的 并且是单采样。 请参阅 ID3D12Resource

DstSubresource

类型:[in] UINT

一个从零开始的索引,用于标识目标子资源。 如果父资源很复杂,请使用 D3D12CalcSubresource 计算子资源索引。

pSrcResource

类型:[in] ID3D12Resource*

源资源。 必须是多重采样。

SrcSubresource

类型:[in] UINT

源资源的源子资源。

Format

类型:[in] DXGI_FORMAT

指示如何将多重采样资源解析为单采样资源的 DXGI_FORMAT 。 请参阅备注。

返回值

备注

调试层

如果源视图引用的子资源不处于 D3D12_RESOURCE_STATE_RESOLVE_SOURCE 状态,则调试层将发出错误。

如果目标缓冲区不处于 D3D12_RESOURCE_STATE_RESOLVE_DEST 状态,则调试层将发出错误。

源和目标资源必须具有相同的资源类型,并且具有相同的维度。 此外,它们必须具有兼容的格式。 有三种情况:

方案 要求
源和目标已预先构建和类型化 源和目标必须具有相同的格式,并且必须在 Format 参数中指定该格式。
一个资源是预结构化和类型化资源,另一个资源是预结构化的和无类型的 类型化资源的格式必须与无类型资源 (即类型化资源DXGI_FORMAT_R32_FLOAT且无类型资源DXGI_FORMAT_R32_TYPELESS) 。 必须在 Format 参数中指定类型化资源的格式。
源和目标是预先构建的且无类型 源和目标必须具有相同的无类型格式 (即两者都必须具有DXGI_FORMAT_R32_TYPELESS) ,并且 Format 参数必须指定与源和目标 (兼容的格式,即如果两者都DXGI_FORMAT_R32_TYPELESS则可以在 Format 参数) 指定DXGI_FORMAT_R32_FLOAT。 例如,给定DXGI_FORMAT_R16G16B16A16_TYPELESS格式:
  • 可以DXGI_FORMAT_R16G16B16A16_UNORM源 (或 dest) 格式
  • 可以DXGI_FORMAT_R16G16B16A16_FLOAT dest (或 source) 格式

要求

   
目标平台 Windows
标头 d3d12.h
Library D3d12.lib
DLL D3d12.dll

请参阅

ID3D12GraphicsCommandList

子资源