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格式:
|
要求
目标平台 | Windows |
标头 | d3d12.h |
Library | D3d12.lib |
DLL | D3d12.dll |