ID3D12Device4::CreateReservedResource1 方法 (d3d12.h)
針對保留的受保護會話) 選擇性地建立資源 (,但尚未對應至堆積中的任何頁面。 另請參閱 ID3D12Device::CreateReservedResource。
注意
只有使用相同受保護資源會話所建立堆積的圖格可以對應至受保護的保留資源。
語法
HRESULT CreateReservedResource1(
[in] const D3D12_RESOURCE_DESC *pDesc,
[in] D3D12_RESOURCE_STATES InitialState,
[in, optional] const D3D12_CLEAR_VALUE *pOptimizedClearValue,
[in, optional] ID3D12ProtectedResourceSession *pProtectedSession,
[in] REFIID riid,
[out, optional] void **ppvResource
);
參數
[in] pDesc
類型: const D3D12_RESOURCE_DESC*
描述資源的 D3D12_RESOURCE_DESC 結構的指標。
[in] InitialState
資源的初始狀態,做為 D3D12_RESOURCE_STATES 列舉常數的位 OR'd 組合。
[in, optional] 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
。
[in, optional] pProtectedSession
類型: ID3D12ProtectedResourceSession*
對象的選擇性指標,代表內容保護的會話。 如果提供,此會話會指出資源應受到保護。 您可以呼叫 ID3D12Device4::CreateProtectedResourceSession 來取得 ID3D12ProtectedResourceSession。
[in] riid
類型: REFIID
要傳回 ppvResource 中資源介面之全域唯一標識碼的參考 (GUID) 。 請參閱備註。
雖然 riidResource 最常是 ID3D12Resource 的 GUID,但它可能是任何介面的 GUID。 如果資源物件不支援此 GUID 的介面,則建立會失敗,並 E_NOINTERFACE。
[out, optional] ppvResource
類型: void**
記憶體區塊的選擇性指標,可接收所建立資源物件的要求介面指標。
ppvResource 可以是 nullptr
,以啟用功能測試。 當 ppvResource 為 nullptr
時,不會建立任何物件,而且 pDesc 有效時會傳回S_FALSE。
傳回值
類型: HRESULT
如果函式成功,它會傳回 S_OK。 否則,它會傳回 HRESULT錯誤碼。
傳回值 | 描述 |
---|---|
E_OUTOFMEMORY | 記憶體不足,無法建立資源。 |
如需其他可能的傳回值,請參閱 Direct3D 12 傳回碼 。
備註
CreateReservedResource 相當於 Direct3D 11 中的 D3D11_RESOURCE_MISC_TILED 。 它只會建立具有虛擬記憶體的資源,而不需要備份存放區。
您必須使用 CopyTileMappings 和 UpdateTileMappings 將資源對應至實體記憶體 (到堆積) 。
只有在配接器支援磚化資源層 1 或更新版本時,才能建立這些資源類型。 圖格資源層會定義存取未對應至堆積之資源的行為。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 組建 20348 |
最低支援的伺服器 | Windows 10 組建 20348 |
目標平台 | Windows |
標頭 | d3d12.h |
程式庫 | d3d12.lib |
Dll | d3d12.dll |