在vulkan中,有一个结构是管道创建所需的,命名为VkPipelineRasterizationStateCreateInfo
.在这个结构中有一个名为的成员rasterizerDiscardEnable
.如果将此成员设置为,VK_TRUE
那么在光栅化步骤之前将丢弃所有基元.这会禁用帧缓冲区的任何输出.
我想不出这可能有意义的场景.在哪些情况下它可能有用吗?
此参数的一个有用的副作用(尽管不一定是预期的用例)是用于基准测试/确定 Vulkan 应用程序的瓶颈:如果在光栅化阶段之前(以及因此在执行任何片段着色器之前)丢弃所有基元没有提高您的帧速率,那么您可以排除您的应用程序性能受片段阶段限制。
对于任何只是为了顶点处理阶段的副作用而执行渲染管道的情况.例如,您可以使用GS将数据提供到缓冲区中,稍后可以从缓冲区中进行渲染.
现在,在许多情况下,您可以使用计算着色器执行类似的操作.但是你不能使用CS来有效地实现曲面细分; 这最好由硬件镶嵌工完成.因此,如果您想要捕获由细分生成的数据(可能是因为您将多次使用它进行渲染),则必须使用渲染过程.
归档时间: |
|
查看次数: |
536 次 |
最近记录: |