是一种和命令列表有关的内存管理类接口,记录在命令列表内的命令,实际上是存储在与之关联的命令分配器上,当调用ID3D12CommandQueue::ExecuteCommandLists() 方法执行命令列表的时候,命令队列就会引用分配器里的命令
ThrowIfFailed(md3dDevice->CreateCommandAllocator(
D3D12_COMMAND_LIST_TYPE_DIRECT,
IID_PPV_ARGS(mDirectCmdListAlloc.GetAddressOf())));
参数 type D3D12_COMMAND_LIST_TYPE
D3D12_COMMAND_LIST_TYPE_DIRECT = 0 指定 GPU 可执行的命令缓冲区。 直接命令列表不会继承任何 GPU 状态。
D3D12_COMMAND_LIST_TYPE_BUNDLE = 1, 指定只能通过直接命令列表执行的命令缓冲区。 捆绑命令列表继承当前设置的管道状态对象和基元拓扑) 之外的所有 GPU 状态 (。
D3D12_COMMAND_LIST_TYPE_COMPUTE = 2, 指定用于计算的命令缓冲区。
D3D12_COMMAND_LIST_TYPE_COPY = 3, 指定用于复制的命令缓冲区。
D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4, 指定用于视频解码的命令缓冲区。
D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5, 指定用于视频处理的命令缓冲区。
D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6