在vulkan中,有一个管道创建所需的结构,名为VkPipelineRasterizationStateCreateInfo.在这个结构中有一个名为rasterizerDiscardEnable的成员.如果此成员设置为VK_TRUE,则在光栅化步骤之前将丢弃所有基元.这会禁用帧缓冲区的任何输出.
我想不出这可能有意义的场景.在哪些情况下它可能有用吗?
解决方法:
对于任何只是为了顶点处理阶段的副作用而执行渲染管道的情况.例如,您可以使用GS将数据提供到缓冲区中,稍后可以从缓冲区中进行渲染.
现在,在许多情况下,您可以使用计算着色器执行类似的操作.但是你不能使用CS来有效地实现曲面细分;这最好由硬件曲面细分器完成.因此,如果您想要捕获由细分生成的数据(可能是因为您将多次使用它进行渲染),则必须使用渲染过程.