Vulkan销毁命令池

Vulkan销毁命令池
当不需要使用通过指定命令池分配的所有命令缓冲区,而且也不需要使用该命令池时,可以通过安全方式销毁该命令池。

具体处理过程

(1)获取逻辑设备的句柄,将该句柄存储在一个VkDevice类型的变量中,将该变量命名为logical_device。
(2)将需要销毁的命令池的句柄赋予一个VkCommandPool类型的变量,将该变量命名为command_pool。
(3)调用vkDestroyCommandPool(logical_device,command_pool,nullptr)函数。将第一个参数设置为逻辑设备的句柄;将第二个参数设置为命令池的句柄;将第三个参数设置为nullptr。
(4)为安全起见,将VK_NULL_HANDLE赋予command_pool变量。

具体运行情况

使用下面的代码可以销毁命令池。

Vulkan销毁命令池

在通过该命令池分配的所有命令缓冲区都处于等待被设备执行的状态时,无法销毁该命令池。要销毁命令池,可以等待栅栏;也可以使用在选定的队列正在处理命令时使应用程序等待的函数,销毁命令池;还可以在已提交给设备中所有队列的作业都正在处于被处理状态(整个设备正在处理命令)时,销毁命令池。只有这样才能安全地销毁命令池。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!

 

Vulkan实战