Direct3D 12——学习——初始化D3D——5——创建命令分配器CreateCommandAllocator

本文介绍了D3D12中的一种内存管理类接口,它涉及命令列表和命令分配器。当执行命令列表时,实际上是在引用由命令分配器存储的命令。D3D12_COMMAND_LIST_TYPE定义了不同类型的命令列表,包括直接、捆绑、计算、复制以及视频处理等,每种类型有其特定的GPU状态管理规则。
摘要由CSDN通过智能技术生成

是一种和命令列表有关的内存管理类接口,记录在命令列表内的命令,实际上是存储在与之关联的命令分配器上,当调用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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值