다음을 통해 공유


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 노드가 있는 경우 명령 목록을 만들 노드(디바이스의 실제 어댑터)를 식별하기 위해 비트를 설정합니다. 마스크의 각 비트는 단일 노드에 해당합니다. 하나의 비트만 설정해야 합니다. 다중 어댑터 시스템도 참조하세요.

[in] type

형식: D3D12_COMMAND_LIST_TYPE

만들 명령 목록의 형식을 지정합니다.

[in] pCommandAllocator

형식: ID3D12CommandAllocator*

디바이스에서 명령 목록을 만드는 명령 할당자 개체에 대한 포인터입니다.

[in, optional] pInitialState

형식: ID3D12PipelineState*

명령 목록의 초기 파이프라인 상태를 포함하는 파이프라인 상태 개체에 대한 선택적 포인터입니다. 인 경우 런타임은 nullptr드라이버가 정의되지 않은 상태를 처리할 필요가 없도록 더미 초기 파이프라인 상태를 설정합니다. 이에 대한 오버헤드는 낮으며, 특히 명령 목록을 기록하는 데 드는 전체 비용이 단일 초기 상태 설정의 비용을 저하시킬 수 있는 명령 목록의 경우 낮습니다. 따라서 초기 파이프라인 상태 매개 변수를 설정하지 않으면 비용이 거의 들지 않습니다. 이렇게 하면 불편합니다.

반면 번들의 경우 초기 상태 매개 변수를 설정하는 것이 더 합리적일 수 있습니다(번들은 전체적으로 더 작고 자주 재사용될 수 있기 때문에).

[in] riid

형식: REFIID

ppCommandList에서 반환할 명령 목록 인터페이스의 GUID(Globally Unique Identifier)에 대한 참조입니다.

[out] ppCommandList

형식: void**

명령 목록에 대한 ID3D12CommandList 또는 ID3D12GraphicsCommandList 인터페이스에 대한 포인터를 수신하는 메모리 블록에 대한 포인터입니다.

반환 값

형식: HRESULT

함수가 성공하면 S_OK를 반환합니다. 그렇지 않으면 HRESULT오류 코드를 반환합니다.

반환 값 Description
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

추가 정보

ID3D12Device

ID3D12GraphicsCommandList::Reset