> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GetResourceAllocationInfo

> GetResourceAllocationInfo (Direct3D 12 on XBOX) — このアダプター上のリソース コレクションに必要なメモリのサイズと配置を取得します。

このアダプター上のリソース コレクションに必要なメモリのサイズと配置を取得します。

## 構文

```cpp theme={null}
D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo(
    UINT visibleMask,
    UINT numResourceDescs,
    const D3D12_RESOURCE_DESC* pResourceDescs
)
```

### パラメーター

*visibleMask \[in]*\
型: UINT

シングル GPU 動作の場合は、これを 0 に設定します。GPU ノードが複数ある場合は、ノード (デバイスの物理アダプター) を識別するビットを設定します。マスク内の各ビットは、単一のノードに対応します。[マルチアダプター システム](https://learn.microsoft.com/en-us/windows/win32/direct3d12/multi-engine) も参照してください。

*numResourceDescs \[in]*\
型: **[UINT](https://learn.microsoft.com/en-us/windows/win32/WinProg/windows-data-types)**

*pResourceDescs* 配列内のリソース記述子の数。

*pResourceDescs \[in]*\
型: **const [D3D12\_RESOURCE\_DESC](/reference/graphics/d3d12/structs/d3d12_resource_desc_public)\***

情報を取得するリソースを記述した **D3D12\_RESOURCE\_DESC** 構造体の配列。

### 戻り値

型: D3D12\_RESOURCE\_ALLOCATION\_INFO

指定したリソース配列に割り当てられたビデオ メモリに関する情報を提供する [D3D12\_RESOURCE\_ALLOCATION\_INFO](/reference/graphics/d3d12/structs/d3d12_resource_allocation_info_public) 構造体。

エラーが発生した場合、**D3D12\_RESOURCE\_ALLOCATION\_INFO::SizeInBytes** は **UINT64\_MAX** に等しくなります。

## 解説

[CreatePlacedResource](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public) を使用する場合、アプリケーションはテクスチャ リソースのサイズとアライメント特性を理解するために **GetResourceAllocationInfo** を使用する必要があります。このメソッドの結果は特定のアダプターによって異なり、このアダプターとドライバーのバージョンに固有のものとして扱う必要があります。

アプリケーションは、**GetResourceAllocationInfo** の出力を使用してテクスチャのパックされたミップ プロパティを理解することはできません。テクスチャのパックされたミップ プロパティを理解するには、アプリケーションは [GetResourceTiling](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_getresourcetiling_public) を使用する必要があります。

一部のアダプター アーキテクチャでは、一般的なレンダリング シナリオ中の実効帯域幅を減らすためにテクスチャに追加のメモリを割り当てるため、テクスチャ リソースのサイズは **GetResourceTiling** によって返される情報と大きく異なります。これには、テクスチャ レイアウトに制約があるテクスチャや標準化されたテクスチャ レイアウトを持つテクスチャも含まれます。その追加のメモリは、[CreateReservedResource](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createreservedresource_public) と [UpdateTileMappings](/reference/graphics/d3d12/interfaces/id3d12commandqueue/methods/id3d12commandqueue_updatetilemappings_public) を使用してアプリケーションがスパースにマッピングしたり再マッピングしたりすることはできないため、**GetResourceTiling** では報告されません。

アプリケーションはバッファー リソース ([D3D12\_RESOURCE\_DIMENSION\_BUFFER](/reference/graphics/d3d12_x/enums/d3d12_resource_dimension)) に対しては **GetResourceAllocationInfo** の使用を省略できます。バッファーはすべてのアダプターで同じサイズであり、これは単に [D3D12\_RESOURCE\_DESC::Width](/reference/graphics/d3d12/structs/d3d12_resource_desc_public) 以上の 64KB の最小の倍数です。

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

## 要件

**ヘッダー:** d3d12\_xs.h または d3d12\_x.h\
**ライブラリ:** d3d12\_xs.lib または d3d12\_x.lib\
**サポートされているプラットフォーム**: XBOX Series 本体および XBOX One ファミリ

## 関連項目

[ID3D12Device](/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

- [GetResourceAllocationInfo1 (XBOX Series 本体)](/ja-jp/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_getresourceallocationinfo1_public.md)
- [D3D12_RESOURCE_ALLOCATION_INFO](/ja-jp/reference/graphics/d3d12/structs/d3d12_resource_allocation_info_public.md)
- [GetResourceTiling](/ja-jp/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_getresourcetiling_public.md)
- [CreatePlacedResource](/ja-jp/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public.md)
- [CreatePlacedResource2 (XBOX Series consoles)](/ja-jp/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createplacedresource2_public.md)
