Vulkan等待队列的命令处理完毕

Vulkan等待队列的命令处理完毕
当想要使应用程序与已提交给指定队列的作业同步时,不必总使用栅栏。可以使应用程序在提交给指定队列的所有任务都被处理完之前等待。

具体处理过程

(1)获取用于提交任务的队列的句柄,将该句柄存储在一个VkQueue类型的变量中,将该变量命名为queue。
(2)调用vkQueueWaitIdle(queue)函数,将参数设置为queue变量。
(3)通过查明该函数调用操作的返回值等于VK_SUCCESS,确认该函数调用操作成功完成。

具体运行情况

在提交给指定队列的作业(对所有命令缓冲区进行处理)被完成前,vkQueueWaitIdle()函数会使应用程序暂停运行。

但这种同步方式的应用场合极少。图形硬件(GPU)的速度通常比中央处理器(CPU)的速度快得多,而且需要持续不断地向图形硬件(GPU)提交作业,以便使应用程序能够充分发挥它的性能。

TIP 应用程序的等待可能会使图形硬件的通道中添加关卡,进而导致设备利用率下降。

使用下列代码可以使应用程序等待,直到已提交的作业被处理完为止。

Vulkan等待队列的命令处理完毕

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!

 

Vulkan实战