Vulkan: Remove support for render passes

Vulkan 1.0 render passes have been replaced by dynamic rendering in 1.2.
Blender Vulkan backend was implemented with dynamic rendering in mind.
All our supported platforms support dynamic rendering. Render pass support
was added to try to work around an issue with legacy drivers. However these
drivers also fail with render passes.

Using render passes had several limitations (blending and some workbench
features were not supported).  As no GPU uses it and it is quite some code
to support it is better to remove it.

Pull Request: https://projects.blender.org/blender/blender/pulls/144149
This commit is contained in:
Jeroen Bakker
2025-08-08 08:08:58 +02:00
parent 73afa1c94f
commit 97f1aeb84c
23 changed files with 62 additions and 486 deletions

View File

@@ -329,9 +329,7 @@ class GHOST_DeviceVK {
VkPhysicalDeviceDynamicRenderingFeatures dynamic_rendering = {};
dynamic_rendering.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES;
dynamic_rendering.dynamicRendering = VK_TRUE;
if (extension_enabled(VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME)) {
feature_struct_ptr.push_back(&dynamic_rendering);
}
feature_struct_ptr.push_back(&dynamic_rendering);
VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT
dynamic_rendering_unused_attachments = {};
@@ -1241,7 +1239,7 @@ GHOST_TSuccess GHOST_ContextVK::initializeDrawingContext()
#else
required_device_extensions.push_back(VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME);
#endif
optional_device_extensions.push_back(VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME);
required_device_extensions.push_back(VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME);
optional_device_extensions.push_back(VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME);
optional_device_extensions.push_back(VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME);
optional_device_extensions.push_back(VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME);