From f7b036764aac16c62f1beaa891ba0389662b3919 Mon Sep 17 00:00:00 2001 From: columbarius Date: Mon, 28 Aug 2023 15:51:00 +0200 Subject: [PATCH] vulkan: compute return from process on invalid buffer id Combined with the blit filter the process function of the source is often called without a valid buffer, which results in a crash. This hack mitigates this. --- spa/plugins/vulkan/vulkan-compute-utils.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spa/plugins/vulkan/vulkan-compute-utils.c b/spa/plugins/vulkan/vulkan-compute-utils.c index 336384b98..63b3679cc 100644 --- a/spa/plugins/vulkan/vulkan-compute-utils.c +++ b/spa/plugins/vulkan/vulkan-compute-utils.c @@ -149,6 +149,11 @@ static int updateDescriptors(struct vulkan_compute_state *s) }; descriptorSetLen++; } + // Abort process if any buffer is not valid + if (s->streams[0].current_buffer_id == SPA_ID_INVALID + || (s->n_streams == 2 && s->streams[1].current_buffer_id == SPA_ID_INVALID)) + return -1; + vkUpdateDescriptorSets(s->base.device, descriptorSetLen, writeDescriptorSet, 0, NULL);