ID3D12Device8::CreateCommittedResource2 方法 (d3d12.h)
同時建立資源與隱含堆積(選擇性地用於受保護的會話),讓堆積足以包含整個資源,而且資源會對應至堆積。 另請參閱 ID3D12Device::CreateCommittedResource,以取得程式碼範例。
語法
HRESULT CreateCommittedResource2(
const D3D12_HEAP_PROPERTIES *pHeapProperties,
D3D12_HEAP_FLAGS HeapFlags,
const D3D12_RESOURCE_DESC1 *pDesc,
D3D12_RESOURCE_STATES InitialResourceState,
const D3D12_CLEAR_VALUE *pOptimizedClearValue,
ID3D12ProtectedResourceSession *pProtectedSession,
REFIID riidResource,
void **ppvResource
);
參數
pHeapProperties
類型:_In_ const D3D12_HEAP_PROPERTIES*
提供資源堆積屬性之 D3D12_HEAP_PROPERTIES 結構的指標。
HeapFlags
堆積選項,做為 D3D12_HEAP_FLAGS 列舉常數的位 OR'd 組合。
pDesc
類型:const D3D12_RESOURCE_DESC1*
描述資源之 D3D12_RESOURCE_DESC1 結構的指標,包括 mip 區域。
InitialResourceState
資源的初始狀態,作為 D3D12_RESOURCE_STATES 列舉常數的位 OR'd 組合。
當您與 D3D12_HEAP_TYPE_UPLOAD 堆積一起建立資源時,必須將 initialResourceState 設定為 D3D12_RESOURCE_STATE_GENERIC_READ。
當您與 D3D12_HEAP_TYPE_READBACK 堆積一起建立資源時,必須將 InitialResourceState 設定為 D3D12_RESOURCE_STATE_COPY_DEST。
pOptimizedClearValue
類型:const D3D12_CLEAR_VALUE*
指定描述純色預設值的 D3D12_CLEAR_VALUE 結構。
pOptimizedClearValue 指定最理想的清除作業值。 當建立的資源是具有 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET 或 D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL 旗標的紋理時,您應該選擇最常呼叫清除作業的值。 您可以使用其他值呼叫清除作業,但當值符合傳遞至資源建立的值時,這些作業不會那麼有效率。
當您使用 D3D12_RESOURCE_DIMENSION_BUFFER時,必須將 pOptimizedClearValue 設定為 nullptr
。
pProtectedSession
類型:ID3D12ProtectedResourceSession*
對象的選擇性指標,表示內容保護的會話。 如果提供,則此會話表示應該保護資源。 您可以呼叫 ID3D12Device4::CreateProtectedResourceSession來取得 ID3D12ProtectedResourceSession。
riidResource
類型:REFIID
要傳回 ppvResource中之資源介面之全域唯一標識碼 (GUID) 的參考。
雖然
ppvResource
類型:void**
記憶體區塊的選擇性指標,可接收所建立資源物件的要求介面指標。
ppvResource 可以 nullptr
,以啟用功能測試。 當
傳回值
類型:HRESULT
如果函式成功,它會傳回 S_OK。 否則,它會傳回 HRESULT錯誤碼。
傳回值 | 描述 |
---|---|
E_OUTOFMEMORY | 記憶體不足,無法建立資源。 |
如需其他可能的傳回值,請參閱 Direct3D 12 傳回碼。
言論
此方法會同時建立資源與堆積,讓堆積夠大而足以包含整個資源,而且資源會對應至堆積。 建立的堆積稱為隱含堆積,因為應用程式無法取得堆積物件。 在釋放資源的最終參考之前,您的應用程式必須確定 GPU 將不再讀取或寫入此資源。
隱含堆積會在方法將控制權傳回應用程式之前,針對 GPU 存取進行常駐。 另請參閱 落地。
無法變更資源 GPU VA 對應。 請參閱 ID3D12CommandQueue::UpdateTileMappings 和 磁碟區磚化資源。
這個方法可由多個線程同時呼叫。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 組建 20348 |
支援的最低伺服器 | Windows 10 組建 20348 |
標頭 | d3d12.h |
連結庫 | d3d12.lib |
DLL | d3d12.dll |