Vulkan规范:第七章 7
来源:互联网 发布:淘宝老店新开流量限制 编辑:程序博客网 时间:2024/05/20 16:44
7. Render Pass
一个render pass表示一系列附件、subpass、subpass之间的依赖关系的集合,描述了附件在subpass的过程中是 如何被使用的。 在命令缓冲区中render pass的使用 是一个 render pass实例 。
render pass由VkRenderPass
类型的handle表示:
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
一个 附件描述 描述了一个附件的属性,包含它的格式、采样数、在每一个render pass实例的开始和结束时它的内容是被看作了什么。
一个 subpass 代表渲染中的一个读写render pass 的附件子集的阶段 。 渲染命令被记录在render pass实例的某一个subpass中。
一个 subpass 描述了参与到subpass执行的附件的子集。 每一个subpass都可以被当作_输入附件_ 的附件中读取数据,写入数据到被当作颜色、深度、模板附件的附件中,并对解析附件执行多采样解析操作。 一个subpass描述也可以包含多个 保留附件,这些附件不被subpass读取或者写入,但是它们的内容在subpass之间被一直保留。
如果附件是该subpass的颜色、深度、模板、解析或者输入附件(如VkSubpassDescription
的成员 pColorAttachments
, pDepthStencilAttachment
, pResolveAttachments
, and pInputAttachments
所描述),一个subpass就可以使用它。 如果一个附件在subpass之间被保留,subpass就不会使用它。 序号最小的subpass第一次使用附件。序号最大的subpass最后一次使用附件。
一个renderpass的所有subpass都渲染到同一维,每一个像素对应的单subpass的多个片元可读取前一个subpass在同一个 (x,y,layer)位置写入的内容。
通过提前描述一个完整的subpass集合,render pass提供了在不同subpass之间优化存储和转移附件数据的机会。
实际上,这意味着带有一个简单帧缓冲区空间依赖的subpass也许会被合并到一个tiled rendering pass,一个render pass实例内附件的数据保持在芯片上。 然而,一个render pass仅仅包含一个subpass也很常见。
subpass依赖 描述了subpass之间的执行和内存依赖。
一个 subpass依赖链 是render pass内部多个subpass之间的一系列依赖关系,每一个subpass依赖的源subpass就是前一个依赖关系的目标subpass。
多个subpass也许会重叠或者乱序的执行,除非强制指定执行的依赖顺序。每一个subpass只参考记录到同一个subpass的命令submission order , 和划分renderpass界限的vkCmdBeginRenderPass
、 vkCmdEndRenderPass
命令(在另一个subpass的命令并没有被包含)。 这影响力大多数其他的implicit ordering guarantees。
一个render pass描述了subpass和独立于任何特定图像视图的附件的结构。 这个特定的图像视图(将被用于附件)和附件的维度,通过VkFramebuffer
对象指定。 缓冲区是参考特定的render pass(和缓冲区兼容的,参考Render Pass 兼容性)来创建的。 总的来说,一个render pass和一个帧缓存器给一个或多个subpass定义了完整的渲染状态,也包括多个subpass之间的依赖性。
一个给定的subpass绘制命令的各种管线阶段,在多个绘制命令之内或者跨多个命令,也许会顺序/乱序的并行执行,然而仍遵循 管线顺序。 然而,对于给定的(x,y,layer,sample) 采样位置,某个逐采样操作依栅格化顺序执行。
- Vulkan规范:第七章 7
- Vulkan规范:第七章 7.1
- Vulkan规范:第七章 7.4
- Vulkan规范:第七章 7.2 ~ 7.3
- Vulkan规范:第三章
- Vulkan规范:第九章
- Vulkan规范:第四章 4.1
- Vulkan规范:第四章 4.2
- Vulkan规范:第四章 4.3
- Vulkan规范:第五章 5.1
- Vulkan规范:第五章 5.2
- Vulkan规范:第五章 5.3
- Vulkan规范:第五章 5.6
- Vulkan规范:第八章 8
- Vulkan规范:第九章 9.1
- Vulkan规范:第九章 9.2
- Vulkan规范:第九章 9.6
- Vulkan规范:第九章 9.7
- 张正友标定法内参公式与计算
- 使用 AJAX 及 JSON 打印数组,下拉列表信息
- poj 1017 Packets
- Linux 代理服务器nginx安装
- ROOT证书、CA证书和使用CA签发的X.509证书
- Vulkan规范:第七章 7
- C++命名空间详解
- Ubuntu16.04搭建以太坊开发环境
- Object.wait notify notifyAll native
- const关键字修饰指针速记的好方法
- Node.js 异步流程控制
- Mac下安装、配置Go语言开发环境
- The supplied data appears to be in the Office 2007+ XML
- LoadRunner压力测试:详细操作流程