ID3D12Device::CreateCommandList 方法 (d3d12.h)
建立命令清單。
語法
HRESULT CreateCommandList(
[in] UINT nodeMask,
[in] D3D12_COMMAND_LIST_TYPE type,
[in] ID3D12CommandAllocator *pCommandAllocator,
[in, optional] ID3D12PipelineState *pInitialState,
[in] REFIID riid,
[out] void **ppCommandList
);
參數
[in] nodeMask
類型: UINT
針對單一 GPU 作業,請將此設定為零。 如果有多個 GPU 節點,請設定一個位來識別要建立命令清單的裝置實體適配卡 (節點) 。 遮罩中的每個位都會對應至單一節點。 只有一個位必須設定。 另請參閱 多配接器系統。
[in] type
指定要建立的命令清單類型。
[in] pCommandAllocator
裝置從中建立命令清單之命令配置器物件的指標。
[in, optional] pInitialState
類型: ID3D12PipelineState*
管線狀態對象的選擇性指標,其中包含命令清單的初始管線狀態。 nullptr
如果是,則運行時間會設定虛擬的初始管線狀態,讓驅動程式不需要處理未定義的狀態。 這的額外負荷很低,特別是針對命令清單,記錄命令清單的整體成本可能會使單一初始狀態設定的成本減少。 因此,如果這麼做並不方便,則不需要設定初始管線狀態參數。
另一方面,對於套件組合而言,嘗試設定初始狀態參數 (可能比較合理,因為套件組合可能整體較小,而且可以經常重複使用) 。
[in] riid
類型: REFIID
在 ppCommandList 中傳回的命令清單介面 (GUID) 全域唯一標識符的參考。
[out] ppCommandList
類型: void**
記憶體區塊的指標,接收命令清單之 ID3D12CommandList 或 ID3D12GraphicsCommandList 介面的指標。
傳回值
類型: HRESULT
如果函式成功,它會傳回 S_OK。 否則,它會傳回 HRESULT錯誤碼。
傳回值 | 描述 |
---|---|
E_OUTOFMEMORY | 記憶體不足,無法建立命令清單。 |
如需其他可能的傳回值,請參閱 Direct3D 12 傳回碼 。
備註
裝置會從命令配置器建立命令清單。
範例
D3D12Bundles 範例使用 ID3D12Device::CreateCommandList,如下所示。
建立管線物件。
ComPtr<ID3D12CommandAllocator> m_commandAllocator;
ComPtr<ID3D12GraphicsCommandList> m_commandList;
建立命令配置器。
ThrowIfFailed(m_device->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(&m_commandAllocator)));
建立直接命令清單。
ThrowIfFailed(m_device->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, m_commandAllocator.Get(), nullptr, IID_PPV_ARGS(&m_commandList)));
請參閱 D3D12 參考中的範例程式代碼。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | d3d12.h |
程式庫 | D3D12.lib |
Dll | D3D12.dll |