From: Benjamin Otte Date: Tue, 20 Jun 2023 13:29:45 +0000 (+0200) Subject: vulkan: Set descriptorBindingStorageBufferUpdateAfterBind X-Git-Tag: archive/raspbian/4.12.3+ds-1+rpi1~1^2^2^2~22^2~1^2~117^2~4 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=015cebc0468e99c038eb1a2867e46e97ff73d8fb;p=gtk4.git vulkan: Set descriptorBindingStorageBufferUpdateAfterBind It's necessary now that we use storage buffers for gradients: [ VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageBufferUpdateAfterBind-03008 ] Object 0: handle = 0x1e72d70, type = VK_OBJECT_TYPE_DEVICE; | MessageID = 0x943cc552 | vkCreateDescriptorSetLayout(): pBindings[0] can't have VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT for VK_DESCRIPTOR_TYPE_STORAGE_BUFFER since descriptorBindingStorageBufferUpdateAfterBind is not enabled. The Vulkan spec states: If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageBufferUpdateAfterBind-03008) --- diff --git a/gdk/gdkvulkancontext.c b/gdk/gdkvulkancontext.c index 1dbea45076..b6ec40891f 100644 --- a/gdk/gdkvulkancontext.c +++ b/gdk/gdkvulkancontext.c @@ -1168,6 +1168,7 @@ gdk_display_create_vulkan_device (GdkDisplay *display, .descriptorBindingPartiallyBound = VK_TRUE, .descriptorBindingVariableDescriptorCount = VK_TRUE, .descriptorBindingSampledImageUpdateAfterBind = VK_TRUE, + .descriptorBindingStorageBufferUpdateAfterBind = VK_TRUE, } }, NULL,