次の方法で共有


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

種類: D3D12_COMMAND_LIST_TYPE

作成するコマンド リストの種類を指定します。

[in] pCommandAllocator

種類: ID3D12CommandAllocator*

デバイスがコマンド リストを作成するコマンド アロケーター オブジェクトへのポインター。

[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)));

「D3D12 リファレンス」のコード例を参照してください

要件

要件
対象プラットフォーム Windows
ヘッダー d3d12.h
Library D3D12.lib
[DLL] D3D12.dll

こちらもご覧ください

ID3D12Device

ID3D12GraphicsCommandList::Reset