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 操作の場合は、これを 0 に設定します。 複数の GPU ノードがある場合は、コマンド リストを作成するノード (デバイスの物理アダプター) を識別するようにビットを設定します。 マスク内の各ビットは、単一ノードに対応します。 1 ビットのみを設定する必要があります。 「マルチアダプター システム」も参照してください。
[in] type
作成するコマンド リストの種類を指定します。
[in] pCommandAllocator
デバイスがコマンド リストを作成するコマンド アロケーター オブジェクトへのポインター。
[in, optional] pInitialState
種類: ID3D12PipelineState*
コマンド リストの初期パイプライン状態を含むパイプライン状態オブジェクトへの省略可能なポインター。 が の場合、ドライバーが nullptr
未定義の状態を処理する必要がないように、ランタイムによってダミーの初期パイプライン状態が設定されます。 このオーバーヘッドは低く、特にコマンド リストの場合、コマンド リストを記録する全体的なコストは、1 つの初期状態設定のコストを小さくする可能性があります。 そのため、最初のパイプライン状態パラメーターを設定しない場合は、コストがほとんどかからず、不便です。
一方、バンドルの場合は、初期状態パラメーターを設定する方が理にかなっている可能性があります (バンドルは全体的に小さく、頻繁に再利用できるため)。
[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)));
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | d3d12.h |
Library | D3D12.lib |
[DLL] | D3D12.dll |