語法
參數
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。
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 和磚狀體積資源。 此方法可由多個執行緒同時呼叫。範例
D3D12Bundles 範例使用 ID3D12Device::CreateCommittedResource 的方式如下: 建立頂點緩衝區。需求
標頭: d3d12_xs.h 或 d3d12_x.h程式庫: d3d12_xs.lib 或 d3d12_x.lib
支援的平台:XBOX Series 主機與 XBOX One 系列
