ID3D12Device::CreateHeap method (d3d12.h)
Creates a heap that can be used with placed resources and reserved resources.
HRESULT CreateHeap( [in] const D3D12_HEAP_DESC *pDesc, [in] REFIID riid, [out, optional] void **ppvHeap );
Type: const D3D12_HEAP_DESC*
A pointer to a constant D3D12_HEAP_DESC structure that describes the heap.
A reference to the globally unique identifier (GUID) of the heap interface to return in ppvHeap.
While riidResource is most commonly the GUID of ID3D12Heap, it may be the GUID of any interface. If the resource object doesn't support the interface for this GUID, then creation fails with E_NOINTERFACE.
[out, optional] ppvHeap
An optional pointer to a memory block that receives the requested interface pointer to the created heap object.
ppvHeap can be
nullptr, to enable capability testing. When ppvHeap is
nullptr, no object is created, and S_FALSE is returned when pDesc is valid.
|E_OUTOFMEMORY||There is insufficient memory to create the heap.|
See Direct3D 12 return codes for other possible return values.
CreateHeap creates a heap that can be used with placed resources and reserved resources.
Before releasing the final reference on the heap, your application must ensure that the GPU will no longer read or write to this heap.
A placed resource object holds a reference on the heap it is created on; but a reserved resource doesn't hold a reference for each mapping made to a heap.