ID3D12Device::CreateReservedResource 方法 (d3d12.h)

建立保留的資源,且尚未對應至堆積中的任何頁面。

語法

HRESULT CreateReservedResource(
  [in]            const D3D12_RESOURCE_DESC *pDesc,
  [in]            D3D12_RESOURCE_STATES     InitialState,
  [in, optional]  const D3D12_CLEAR_VALUE   *pOptimizedClearValue,
  [in]            REFIID                    riid,
  [out, optional] void                      **ppvResource
);

參數

[in] pDesc

類型: const D3D12_RESOURCE_DESC*

描述資源之D3D12_RESOURCE_DESC結構的指標。

[in] InitialState

類型: D3D12_RESOURCE_STATES

資源的初始狀態,做為 D3D12_RESOURCE_STATES 列舉常數的位 OR'd 組合。

[in, optional] pOptimizedClearValue

類型: const D3D12_CLEAR_VALUE*

指定描述純色預設值 的D3D12_CLEAR_VALUE 結構。

pOptimizedClearValue 會指定最理想的清除作業值。 當建立的資源是具有 D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGETD3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL 旗標的紋理時,您應該選擇最常呼叫清除作業的值。 您可以使用其他值呼叫清除作業,但這些作業不會像值符合傳入資源建立的值一樣有效率。

當您使用 D3D12_RESOURCE_DIMENSION_BUFFER 時,必須將 pOptimizedClearValue 設定為 nullptr

[in] riid

類型: REFIID

要傳回 ppvResource 中資源介面之全域唯一標識碼的參考 (GUID) 。 請參閱備註

雖然 riidResource 通常是 ID3D12ResourceGUID,但它可能是任何介面的 GUID。 如果資源物件不支援此 GUID 的介面,則建立會失敗並 E_NOINTERFACE

[out, optional] ppvResource

類型: void**

記憶體區塊的選擇性指標,可接收所建立資源物件的要求介面指標。

ppvResource 可以是 nullptr,以啟用功能測試。 當 ppvResourcenullptr時,不會建立任何物件,而且 pDesc 有效時會傳回S_FALSE

傳回值

類型: HRESULT

如果函式成功,它會 傳回S_OK。 否則,它會傳回 HRESULT錯誤碼

傳回值 描述
E_OUTOFMEMORY 記憶體不足,無法建立資源。

如需其他可能的傳回值,請參閱 Direct3D 12 傳回碼

備註

CreateReservedResource 相當於 Direct3D 11 中的 D3D11_RESOURCE_MISC_TILED 。 它只會建立具有虛擬記憶體的資源,而不需要備份存儲區。

您必須使用 CopyTileMappingsUpdateTileMappings 將資源對應至實體記憶體 (到堆積) 。

只有在適配卡支援並排資源層 1 或更新版本時,才能建立這些資源類型。 並排顯示的資源層會定義存取未對應至堆積之資源的行為。

規格需求

需求
目標平台 Windows
標頭 d3d12.h
程式庫 D3D12.lib
Dll D3D12.dll

另請參閱

CreateCommittedResource

CreatePlacedResource

ID3D12Device