ID3D12Device::GetCustomHeapProperties(UINT,D3D12_HEAP_TYPE) method (d3d12.h)

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(
  [in] UINT            nodeMask,
       D3D12_HEAP_TYPE heapType
);

Parameters

[in] 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 systems.

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

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

See also

ID3D12Device