다음을 통해 공유


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 노드가 있는 경우 비트를 설정하여 노드(디바이스의 물리적 어댑터)를 식별합니다. 마스크의 각 비트는 단일 노드에 해당합니다. 다중 어댑터 시스템참조하세요.

[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반환된 정보와 크게 다릅니다. 여기에는 텍스처 레이아웃에 제약 조건이 있거나 표준화된 텍스처 레이아웃이 있는 텍스처도 포함됩니다. 이 추가 메모리는 CreateReservedResourceUpdateTileMappings사용하여 애플리케이션에서 드물게 매핑하거나 다시 매핑할 수 없으므로 GetResourceTiling보고되지 않습니다.

애플리케이션은 버퍼 리소스(D3D12_RESOURCE_DIMENSION_BUFFER)에 GetResourceAllocationInfo 사용을 포기할 수 있습니다. 버퍼는 모든 어댑터에서 크기가 같으며 이는 D3D12_RESOURCE_DESC::Width크거나 같은 64KB의 가장 작은 배수에 불과합니다.

여러 리소스 설명이 전달되면 구조체 크기 및 맞춤을 계산하기 위한 C++ 알고리즘이 사용됩니다. 예를 들어 두 개의 작은 64KB 정렬 리소스와 작은 4MB 정렬 리소스가 있는 3개 요소 배열은 배열의 순서에 따라 서로 다른 크기를 보고합니다. 4MB 정렬된 리소스가 중간에 있는 경우 결과 크기 12MB입니다. 그렇지 않으면 결과 크기 8MB입니다. 반환되는 맞춤 항상 4MB입니다. 리소스 배열에 있는 모든 맞춤의 상위 집합이기 때문입니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 10 빌드 20348
지원되는 최소 서버 Windows 10 빌드 20348
대상 플랫폼 Windows
헤더 d3d12.h
라이브러리 d3d12.lib
DLL d3d12.dll

참고 항목

ID3D12Device4