次の方法で共有


ID3D12Device4::GetResourceAllocationInfo1(UINT,UINT,constD3D12_RESOURCE_DESC*,D3D12_RESOURCE_ALLOCATION_INFO1*) メソッド (d3d12.h)

このアダプター上のリソースのコレクションに必要なメモリのサイズと配置に関する豊富な情報を取得します。 ID3D12Device::GetResourceAllocationInfoも参照してください。

このバージョンでは、メソッドから返される D3D12_RESOURCE_ALLOCATION_INFO に加えて、D3D12_RESOURCE_ALLOCATION_INFO1 構造体の配列も返されます。これにより、入力として渡される各リソースの説明に関する追加の詳細が提供されます。 pResourceAllocationInfo1 パラメーターを参照してください。

構文

D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo1(
  [in]  UINT                            visibleMask,
  [in]  UINT                            numResourceDescs,
  [in]  const D3D12_RESOURCE_DESC       *pResourceDescs,
  [out] D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1
);

パラメーター

[in] visibleMask

型: UINT

単一 GPU 操作の場合は、これを 0 に設定します。 複数の GPU ノードがある場合は、ノード (デバイスの物理アダプター) を識別するビットを設定します。 マスク内の各ビットは、1 つのノードに対応します。 マルチアダプター・システムも参照してください。

[in] numResourceDescs

型: UINT

pResourceDescs 配列内のリソース記述子の数。 これは、pResourceAllocationInfo1サイズ (要素の数) でもあります。

[in] pResourceDescs

型: const D3D12_RESOURCE_DESC*

情報を取得するリソースを記述した D3D12_RESOURCE_DESC 構造体の配列。

[out] pResourceAllocationInfo1

型: D3D12_RESOURCE_ALLOCATION_INFO1*

D3D12_RESOURCE_ALLOCATION_INFO1 構造体の配列。入力として渡される各リソース記述の追加の詳細が含まれます。 これにより、アプリケーションで複数のリソースにヒープを割り当てるのが簡単になり、各リソースを配置する場所のオフセットを手動で計算する必要はありません。

戻り値

型: D3D12_RESOURCE_ALLOCATION_INFO

指定したリソース配列に割り当てられたビデオ メモリに関する情報を提供する D3D12_RESOURCE_ALLOCATION_INFO 構造体。

備考

CreatePlacedResource使用している場合、テクスチャ リソースのサイズとアラインメント特性を理解するには、アプリケーション GetResourceAllocationInfo を使用する必要があります。 このメソッドの結果は、特定のアダプターによって異なり、このアダプターとドライバーのバージョンに固有として扱う必要があります。

アプリケーションでは、GetResourceAllocationInfo の出力を使用して、テクスチャのパックされたミップ プロパティを理解することはできません。 テクスチャのパックされたミップ プロパティを理解するには、アプリケーションで GetResourceTiling使用する必要があります。

一部のアダプター アーキテクチャでは、一般的なレンダリング シナリオで有効な帯域幅を減らすためにテクスチャに余分なメモリが割り当てられるため、テクスチャ リソースのサイズは、GetResourceTilingによって返される情報と大きく異なります。 これには、テクスチャ レイアウトに制約があるテクスチャや、標準化されたテクスチャ レイアウトも含まれます。 その余分なメモリは、CreateReservedResource と UpdateTileMappingsを使用してアプリケーションによって疎にマップまたは再マップすることはできません。そのため、GetResourceTiling報告されません。

アプリケーションでは、バッファー リソース (D3D12_RESOURCE_DIMENSION_BUFFER) GetResourceAllocationInfo を使用して、使用を取り除くことができます。 バッファーは、すべてのアダプターで同じサイズを持ちます。これは、D3D12_RESOURCE_DESC::Width以上の 64 KB の最小倍数にすぎません。

複数のリソース記述が渡されると、構造のサイズと配置を計算するための C++ アルゴリズムが使用されます。 たとえば、2 つの小さな 64 KB でアラインされたリソースと 4 MB の小さなリソースを持つ 3 要素配列では、配列の順序に基づいてサイズが異なると報告されます。 4 MB のアラインされたリソースが中央にある場合、結果として得られる Size は 12 MB です。 それ以外の場合、結果の サイズ は 8 MB です。 返される 配置 は、リソース配列内のすべての配置のスーパーセットであるため、常に 4 MB になります。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 ビルド 20348
サポートされる最小サーバー Windows 10 ビルド 20348
ターゲット プラットフォーム の ウィンドウズ
ヘッダー d3d12.h
ライブラリ d3d12.lib
DLL d3d12.dll

関連項目

ID3D12Device4