DX12阅读笔记_第四章_2

4.2 GPU与CPU的交互
GPU与CPU并行工作,有时需要同步。为了获得最佳性能,我们的目标是尽可能地保持两者的忙碌,并尽量减少同步。
GPU有一个命令队列。CPU使用命令列表通过Direct3D API向队列提交命令。一旦一组命令被提交到命令队列,它们不会立即被GPU执行。它们一直在队列中,直到GPU准备好处理它们,因为GPU很可能忙于处理之前插入的命令。

创建命令队列的方法:

Microsoft::WRL::ComPtr<ID3D12CommandQueue> 	mCommandQueue;
//填写结构体 
D3D12_COMMAND_QUEUE_DESC queueDesc = {
   };
queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT; 
queueDesc.Flags = D3D12_COMMAND_QUEUE_FLAG_NONE; 
//创建队列
ThrowIfFailed(md3dDevice->CreateCommandQueue( 
&queueDesc, IID_PPV_ARGS(&mCommandQueue))); 

这个接口的主要方法之一是ExecuteCommandLists方法,它将命令列表中的命令添加到队列中:

void ID3D12CommandQueue::ExecuteCommandLists( 
	// Number of commands lists in the array 
	UINT Count, 
	// Pointer to the first element in an array of command lists 
	ID3D12CommandList *const *ppCommandLists); 

ID3D12GraphicsCommandList接口有许多将命令添加到命令列表的方法。如:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值