diff --git a/src/nouveau/vulkan/nvk_nir_lower_descriptors.c b/src/nouveau/vulkan/nvk_nir_lower_descriptors.c index e4dd7eaf4b2..b952b23a4c7 100644 --- a/src/nouveau/vulkan/nvk_nir_lower_descriptors.c +++ b/src/nouveau/vulkan/nvk_nir_lower_descriptors.c @@ -964,8 +964,10 @@ is_edb_buffer_view(nir_deref_instr *deref, nir_variable *var = nir_deref_instr_get_variable(deref); uint8_t set = var->data.descriptor_set; - return ctx->set_layouts[set]->flags & - VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT; + return (ctx->set_layouts[set]->flags & + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT) && + !(ctx->set_layouts[set]->flags & + VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT); } static nir_def * diff --git a/src/nouveau/vulkan/nvk_physical_device.c b/src/nouveau/vulkan/nvk_physical_device.c index afedf4d64fe..ae716b1a56f 100644 --- a/src/nouveau/vulkan/nvk_physical_device.c +++ b/src/nouveau/vulkan/nvk_physical_device.c @@ -552,7 +552,7 @@ nvk_get_device_features(const struct nv_device_info *info, .descriptorBuffer = true, .descriptorBufferCaptureReplay = true, .descriptorBufferImageLayoutIgnored = true, - .descriptorBufferPushDescriptors = false, + .descriptorBufferPushDescriptors = true, /* VK_EXT_device_generated_commands */ .deviceGeneratedCommands = true, @@ -984,7 +984,7 @@ nvk_get_device_properties(const struct nvk_instance *instance, /* VK_EXT_descriptor_buffer */ .combinedImageSamplerDescriptorSingleArray = true, - .bufferlessPushDescriptors = false, + .bufferlessPushDescriptors = true, .allowSamplerImageViewPostSubmitCreation = false, .descriptorBufferOffsetAlignment = nvk_min_cbuf_alignment(info), .maxDescriptorBufferBindings = 32,