Vulkan Cookbook 第六章 9 进入下一个子过程

进入下一个子过程

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

在渲染过程中记录的命令被划分为子过程。当一个给定子过程的一组命令已经被记录并且我们想要记录另一个子类的命令时,我们需要切换(或前进)到下一个子过程。

怎么做...

获取正在记录的命令缓冲区的句柄,并将其存储在名为command_buffer的vkcommandbuffer类型变量中。确保开始渲染过程的操作已记录在命令缓冲区中。

指定如何记录子过程命令:直接或通过辅助命令缓冲区。 将适当的值存储在名为subpass_contents的VkSubpassContents类型变量中(请参阅开始渲染过程配方)。

调用vkCmdNextSubpass( command_buffer, subpass_contents )。请提供command_buffer和subpass_contents变量。

这个怎么运作...

进入到下一个子过程会在同一渲染过程中从当前切换到下一个子过程。 在此操作期间,将执行适当的布局转换,并引入内存和执行依赖性(类似于内存屏障中的那些)。 如果需要,所有这些都由驱动程序自动执行,因此新子过程中的附件可以在创建渲染过程中指定的方式使用。 移至下一个子过程还会对指定的颜色附件执行多重采样解析操作。

子过程的命令可以直接记录,方法是将它们嵌入命令缓冲区,或者间接执行辅助命令缓冲区。

要记录从一个子过程切换到另一个子过程的操作,我们需要调用如下函数:
 

vkCmdNextSubpass( command_buffer, subpass_contents );

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值