次の方法で共有


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

宛先サブリソースを識別する 0 から始まるインデックス。 親リソースが複雑な場合は、 D3D12CalcSubresource を使用してサブリソース インデックスを計算します。

pSrcResource

種類: [in] ID3D12Resource*

ソース リソース。 マルチサンプリングする必要があります。

SrcSubresource

型: [in] UINT

ソース リソースのソース サブリソース。

Format

種類: [入力] DXGI_FORMAT

マルチサンプリング リソースを単一サンプリング リソースに解決する方法を示すDXGI_FORMAT。 「解説」を参照してください。

戻り値

なし

解説

デバッグ レイヤー

ソース ビューによって参照されるサブリソースが D3D12_RESOURCE_STATE_RESOLVE_SOURCE 状態でない場合、デバッグ レイヤーはエラーを発行します。

ターゲット バッファーが D3D12_RESOURCE_STATE_RESOLVE_DEST 状態でない場合、デバッグ レイヤーはエラーを発行します。

ソース リソースと移行先リソースは、同じリソースの種類であり、同じディメンションを持つ必要があります。 さらに、互換性のある形式が必要です。 これには 3 つのシナリオがあります。

シナリオ 必要条件
ソースと変換先は事前構造化され、型指定されます 変換元とコピー先の両方に同じ形式が必要であり、その形式は Format パラメーターで指定する必要があります。
一方のリソースは事前構造化および型指定され、もう 1 つは事前構造化および型なしです 型指定されたリソースには、型指定なしのリソースと互換性のある形式が必要です (つまり、型指定されたリソースが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形式を指定すると、次のようになります。
  • ソース (または dest) 形式をDXGI_FORMAT_R16G16B16A16_UNORM
  • dest (またはソース) 形式をDXGI_FORMAT_R16G16B16A16_FLOAT

必要条件

   
対象プラットフォーム Windows
ヘッダー d3d12.h
Library D3d12.lib
[DLL] D3d12.dll

関連項目

ID3D12GraphicsCommandList

サブリソース