ID3D12Device::GetCustomHeapProperties method

Divulges the equivalent custom heap properties that are used for non-custom heap types, based on the adapter's architectural properties.

Syntax

D3D12_HEAP_PROPERTIES GetCustomHeapProperties(
  UINT            nodeMask,
  D3D12_HEAP_TYPE heapType
);

Parameters

nodeMask

Type: UINT

For single-GPU operation, set this to zero. If there are multiple GPU nodes, set a bit to identify the node (the device's physical adapter). Each bit in the mask corresponds to a single node. Only 1 bit must be set. See Multi-Adapter.

heapType

Type: D3D12_HEAP_TYPE

A D3D12_HEAP_TYPE-typed value that specifies the heap to get properties for. D3D12_HEAP_TYPE_CUSTOM is not supported as a parameter value.

Return Value

Type: D3D12_HEAP_PROPERTIES

Returns a D3D12_HEAP_PROPERTIES structure that provides properties for the specified heap. The Type member of the returned D3D12_HEAP_PROPERTIES is always D3D12_HEAP_TYPE_CUSTOM.

When D3D12_FEATURE_DATA_ARCHITECTURE::UMA is FALSE, the returned D3D12_HEAP_PROPERTIES members convert as follows:

Heap Type How the returned D3D12_HEAP_PROPERTIES members convert
D3D12_HEAP_TYPE_UPLOAD CPUPageProperty = WRITE_COMBINE, MemoryPoolPreference = L0.
D3D12_HEAP_TYPE_DEFAULT CPUPageProperty = NOT_AVAILABLE, MemoryPoolPreference = L1.
D3D12_HEAP_TYPE_READBACK CPUPageProperty = WRITE_BACK, MemoryPoolPreference = L0.
 

When D3D12_FEATURE_DATA_ARCHITECTURE::UMA is TRUE and D3D12_FEATURE_DATA_ARCHITECTURE::CacheCoherentUMA is FALSE, the returned D3D12_HEAP_PROPERTIES members convert as follows:

Heap Type How the returned D3D12_HEAP_PROPERTIES members convert
D3D12_HEAP_TYPE_UPLOAD CPUPageProperty = WRITE_COMBINE, MemoryPoolPreference = L0.
D3D12_HEAP_TYPE_DEFAULT CPUPageProperty = NOT_AVAILABLE, MemoryPoolPreference = L0.
D3D12_HEAP_TYPE_READBACK CPUPageProperty = WRITE_BACK, MemoryPoolPreference = L0.
 

When D3D12_FEATURE_DATA_ARCHITECTURE::UMA is TRUE and D3D12_FEATURE_DATA_ARCHITECTURE::CacheCoherentUMA is TRUE, the returned D3D12_HEAP_PROPERTIES members convert as follows:

Heap Type How the returned D3D12_HEAP_PROPERTIES members convert
D3D12_HEAP_TYPE_UPLOAD CPUPageProperty = WRITE_BACK, MemoryPoolPreference = L0.
D3D12_HEAP_TYPE_DEFAULT CPUPageProperty = NOT_AVAILABLE, MemoryPoolPreference = L0.
D3D12_HEAP_TYPE_READBACK CPUPageProperty = WRITE_BACK, MemoryPoolPreference = L0.

Requirements

   
Target Platform Windows
Header d3d12.h
Library D3D12.lib
DLL D3D12.dll

See Also

ID3D12Device