vulkan,anv: Add a common render pass implementation
This adds a common VkRenderPass
struct which any driver can use if it's sufficient for its needs. It also adds a common implementation of vkCmdBeginRenderPass()
, vkCmdEndRenderPass()
, and vkCmdNextSubpass()
in terms of the new vkCmdBegin/EndRendering()
included in VK_KHR_dynamic_rendering and Vulkan 1.3. All subpass dependencies and implicit layout transitions are turned into actual barriers. It does require VK_KHR_synchronization2 because it always uses the 64-bit version of the pipeline stage and access bitfields.