D3D12_HEAP_PROPERTIES structure (d3d12.h)
Describes heap properties.
Syntax
typedef struct D3D12_HEAP_PROPERTIES {
D3D12_HEAP_TYPE Type;
D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
D3D12_MEMORY_POOL MemoryPoolPreference;
UINT CreationNodeMask;
UINT VisibleNodeMask;
} D3D12_HEAP_PROPERTIES;
Members
Type
A D3D12_HEAP_TYPE-typed value that specifies the type of heap.
CPUPageProperty
A D3D12_CPU_PAGE_PROPERTY-typed value that specifies the CPU-page properties for the heap.
MemoryPoolPreference
A D3D12_MEMORY_POOL-typed value that specifies the memory pool for the heap.
CreationNodeMask
For multi-adapter operation, this indicates the node where the resource should be created.
Exactly one bit of this UINT must be set. See Multi-adapter systems.
Passing zero is equivalent to passing one, in order to simplify the usage of single-GPU adapters.
VisibleNodeMask
For multi-adapter operation, this indicates the set of nodes where the resource is visible.
VisibleNodeMask must have the same bit set that is set in CreationNodeMask. VisibleNodeMask can also have additional bits set for cross-node resources, but doing so can potentially reduce performance for resource accesses, so you should do so only when needed.
Passing zero is equivalent to passing one, in order to simplify the usage of single-GPU adapters.
Remarks
This structure is used by the following:
- D3D12_HEAP_DESC structure
- ID3D12Resource::GetHeapProperties
- ID3D12Device::GetCustomHeapProperties
- ID3D12Device::CreateCommittedResource
- When Type is D3D12_HEAP_TYPE_CUSTOM, CPUPageProperty and MemoryPoolPreference must not be ..._UNKNOWN.
- When Type is not D3D12_HEAP_TYPE_CUSTOM, CPUPageProperty and MemoryPoolPreference must be ..._UNKNOWN.
- When using D3D12_HEAP_TYPE_CUSTOM and D3D12_MEMORY_POOL_L1, on NUMA adapters, CPUPageProperty must be D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE. To differentiate NUMA from UMA adapters, see D3D12_FEATURE_ARCHITECTURE and D3D12_FEATURE_DATA_ARCHITECTURE.
Requirements
Requirement | Value |
---|---|
Header | d3d12.h |