From 015cebc0468e99c038eb1a2867e46e97ff73d8fb Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 20 Jun 2023 15:29:45 +0200 Subject: [PATCH] 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) --- gdk/gdkvulkancontext.c | 1 + 1 file changed, 1 insertion(+) 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,