Vulkan Cookbook 第三章 15 等待所有提交的命令完成

等待所有提交的命令完成

译者注:示例代码点击此处

有时我们希望等到提交给所有逻辑队列的所有工作都完成。这种类型的等待通常在我们关闭应用程序之前完成。并且我们想要销毁所有创建或分配的资源。

怎么做...

1.获取已创建逻辑设备的句柄,并将其存储在名为logical_device的VkDevice类型的变量中。
2.调用vkDeviceWaitIdle( logical_device ),为其提供逻辑设备句柄。
3.通过将返回值与VK_SUCCESS进行比较来检查是否没有错误。

这个怎么运作...

vkDeviceWaitIdle()函数使我们的应用程序等到逻辑设备不在忙。这类似于等待为给定设备请求的所有队列,直到完成提交给所有队列的命令。

上述函数通常在退出应用程序之前调用。当我们想要销毁资源时,必须确保它们不在被逻辑设备使用。此功能可确保可以安全地执行此类销毁。

等待提交给设备的所有命令是这样执行的:

VkResult result = vkDeviceWaitIdle( logical_device ); 
if( VK_SUCCESS != result ) {
  std::cout << "Waiting on a device failed." << std::endl;
  return false; 
}
return true;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值