跳轉到主要內容
同時建立資源和隱含堆積 (可選擇用於受保護的工作階段),使堆積大到足以容納整個資源,且資源會對應至該堆積。如需程式碼範例,另請參閱 ID3D12Device::CreateCommittedResource。

語法

參數

pHeapProperties [in]
類型:const D3D12_HEAP_PROPERTIES *
D3D12_HEAP_PROPERTIES 結構的指標,提供資源堆積的屬性。 HeapFlags [in]
類型:D3D12_HEAP_FLAGS
堆積選項,以 D3D12_HEAP_FLAGS 列舉常數的位元 OR 組合表示。 pDesc [in]
類型:const D3D12_RESOURCE_DESC *
D3D12_RESOURCE_DESC 結構的指標,描述資源。 InitialResourceState [in]
類型:D3D12_RESOURCE_STATES
資源的初始狀態,以 D3D12_RESOURCE_STATES 列舉常數的位元 OR 組合表示。 當您搭配 D3D12_HEAP_TYPE_UPLOAD 堆積建立資源時,必須將 InitialResourceState 設定為 D3D12_RESOURCE_STATE_GENERIC_READ。 當您搭配 D3D12_HEAP_TYPE_READBACK 堆積建立資源時,必須將 InitialResourceState 設定為 D3D12_RESOURCE_STATE_COPY_DEST。 pOptimizedClearValue [in, optional]
類型: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 [in, optional]
類型:ID3D12ProtectedResourceSession *
代表內容保護工作階段之物件的選擇性指標。如果有提供,此工作階段表示資源應受到保護。您可以呼叫 ID3D12Device4::CreateProtectedResourceSession 來取得 ID3D12ProtectedResourceSession。 riidResource [in]
類型:const IID &
要在 ppvResource 中傳回之資源介面的全域唯一識別碼 (GUID) 參考。 雖然 riidResource 最常是 ID3D12Resource 的 GUID,但它可以是任何介面的 GUID。如果資源物件不支援此 GUID 的介面,則建立會失敗並傳回 E_NOINTERFACE。 ppvResource [out, optional]
類型:void **
記憶體區塊的選擇性指標,該區塊會接收所建立資源物件的要求介面指標。 ppvResource 可以是 nullptr,以啟用功能測試。當 ppvResource 為 nullptr 時,不會建立任何物件,且當 pDesc 有效時會傳回 S_FALSE。

傳回值

類型:HRESULT 如果函式成功,會傳回 S_OK。否則會傳回 HRESULT 錯誤碼。 如需其他可能的傳回值,請參閱 Direct3D 12 傳回碼。

備註

此方法會同時建立資源和堆積,使堆積大到足以容納整個資源,且資源會對應至該堆積。所建立的堆積稱為隱含堆積,因為應用程式無法取得該堆積物件。在釋放資源的最後一個參考之前,您的應用程式必須確保 GPU 不會再讀取或寫入此資源。 在方法將控制權傳回給您的應用程式之前,隱含堆積會成為常駐狀態以供 GPU 存取。另請參閱常駐。 資源 GPU VA 對應無法變更。請參閱 ID3D12CommandQueue::UpdateTileMappings 和磁碟區圖格資源。 此方法可由多個執行緒同時呼叫。

需求

標頭: d3d12_xs.h
程式庫: d3d12_xs.lib
支援的平台:XBOX Series 主機

另請參閱

最後修改於 2026年10月6日