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
만들 명령 목록의 형식을 지정합니다.
[in] pCommandAllocator
디바이스에서 명령 목록을 만드는 명령 할당자 개체에 대한 포인터입니다.
[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)));
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | d3d12.h |
라이브러리 | D3D12.lib |
DLL | D3D12.dll |