一:相关 vulkan 接口
1. vkCreateRenderPass2 / vkDestroyRenderPass
创建和销毁 renderpass 对象
2. vkCmdBeginRenderPass / vkCmdEndRenderPass
在当前命令缓冲区中开始和结束一个 render pass。
3. vkCmdBeginRendering / vkCmdEndRendering
这是 Vulkan API 中的一个命令,用于开始“动态渲染”(Dynamic Rendering)。它是 Vulkan 1.3 核心功能的一部分,也可通过 VK_KHR_dynamic_rendering 扩展获得。这个函数允许应用程序在不预先创建 VkRenderPass 对象的情况下,直接在命令缓冲区中指定渲染附件并开始渲染。
二:RenderPass 创建过程
1. 什么是renderpass?
RenderPass 是 Vulkan 中用于描述一组渲染操作如何使用 Framebuffer 的对象,它定义了 GPU 在一次或多个 subpass 中对 framebuffer 的读写流程及其依赖关系。
2. 调用流程
zink_batch_rp
zink_begin_render_pass
setup_framebuffer
get_render_pass
zink_create_render_pass
create_r