From 2da5969fdc1a2f0fc9142d1fa2eb7d12199cd63a Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Mon, 4 Aug 2025 14:42:10 +0200 Subject: [PATCH] Vulkan: Remove framebuffer slot assert This assert was to notify developers that they are using a framebuffer configuration that isn't supported when using render passes. Render passes should not be used and will be removed later in 5.0. Removing the assert will already help during triaging. Pull Request: https://projects.blender.org/blender/blender/pulls/143936 --- source/blender/gpu/vulkan/vk_device.hh | 2 ++ source/blender/gpu/vulkan/vk_framebuffer.cc | 29 +-------------------- source/blender/gpu/vulkan/vk_framebuffer.hh | 7 ----- 3 files changed, 3 insertions(+), 35 deletions(-) diff --git a/source/blender/gpu/vulkan/vk_device.hh b/source/blender/gpu/vulkan/vk_device.hh index a9f378c01c0..e3e8abb2d10 100644 --- a/source/blender/gpu/vulkan/vk_device.hh +++ b/source/blender/gpu/vulkan/vk_device.hh @@ -41,6 +41,8 @@ struct VKExtensions { bool fragment_shader_barycentric = false; /** * Does the device support VK_KHR_dynamic_rendering enabled. + * + * We should assume that this is always supported. Option will be removed later in 5.0. */ bool dynamic_rendering = false; diff --git a/source/blender/gpu/vulkan/vk_framebuffer.cc b/source/blender/gpu/vulkan/vk_framebuffer.cc index f823b6e34ee..e4ed4ea6555 100644 --- a/source/blender/gpu/vulkan/vk_framebuffer.cc +++ b/source/blender/gpu/vulkan/vk_framebuffer.cc @@ -126,34 +126,7 @@ void VKFrameBuffer::vk_render_areas_append(Vector &r_render_areas) con bool VKFrameBuffer::check(char err_out[256]) { - bool success = true; - - if (has_gaps_between_color_attachments()) { - success = false; - - BLI_snprintf(err_out, - 256, - "Framebuffer '%s' has gaps between color attachments. This is not supported by " - "legacy devices using VkRenderPass natively.\n", - name_); - } - - return success; -} - -bool VKFrameBuffer::has_gaps_between_color_attachments() const -{ - bool empty_slot = false; - for (int attachment_index : IndexRange(GPU_FB_COLOR_ATTACHMENT0, GPU_FB_MAX_COLOR_ATTACHMENT)) { - const GPUAttachment &attachment = attachments_[attachment_index]; - if (attachment.tex == nullptr) { - empty_slot = true; - } - else if (empty_slot) { - return true; - } - } - return false; + return true; } void VKFrameBuffer::build_clear_attachments_depth_stencil( diff --git a/source/blender/gpu/vulkan/vk_framebuffer.hh b/source/blender/gpu/vulkan/vk_framebuffer.hh index 55aed6d35a4..ad5d4ea1c16 100644 --- a/source/blender/gpu/vulkan/vk_framebuffer.hh +++ b/source/blender/gpu/vulkan/vk_framebuffer.hh @@ -157,13 +157,6 @@ class VKFrameBuffer : public FrameBuffer { const bool multi_clear_colors, render_graph::VKClearAttachmentsNode::CreateInfo &clear_attachments) const; void clear(render_graph::VKClearAttachmentsNode::CreateInfo &clear_attachments); - - /** - * Check if there are gaps between color attachments. - * - * This is not supported when using VkRenderPass/VkFramebuffer. - */ - bool has_gaps_between_color_attachments() const; }; static inline VKFrameBuffer *unwrap(FrameBuffer *framebuffer)