> ## 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(XBOX의 Direct3D 12) — 이 어댑터에서 리소스 컬렉션에 필요한 메모리의 크기와 정렬을 가져옵니다.

이 어댑터에서 리소스 컬렉션에 필요한 메모리의 크기와 정렬을 가져옵니다.

## 구문

```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++ 알고리즘이 사용됩니다. 예를 들어 두 개의 작은 64KB 정렬된 리소스와 하나의 작은 4MB 정렬된 리소스가 있는 세 요소 배열은 배열의 순서에 따라 다른 크기를 보고합니다. 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 콘솔)](/ko/reference/graphics/d3d12/interfaces/id3d12device4/methods/id3d12device4_getresourceallocationinfo1_public.md)
- [D3D12_RESOURCE_ALLOCATION_INFO](/ko/reference/graphics/d3d12/structs/d3d12_resource_allocation_info_public.md)
- [GetResourceTiling](/ko/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_getresourcetiling_public.md)
- [CreatePlacedResource](/ko/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createplacedresource_public.md)
- [CreatePlacedResource2 (XBOX Series 콘솔)](/ko/reference/graphics/d3d12/interfaces/id3d12device10/methods/id3d12device10_createplacedresource2_public.md)
