From 83eef372a22acce244f0f652e17cacec086a5489 Mon Sep 17 00:00:00 2001 From: Danylo Piliaiev Date: Thu, 3 Feb 2022 18:07:21 +0200 Subject: [PATCH] turnip: Unconditionaly remove descriptor set from pool's list on free We didn't remove desc set from the pool's list if pool was host_memory_base. On the other hand in there is no point in removing desc set from the list in DestroyDescriptorPool/ResetDescriptorPool. Fixes: da7a4751 ("turnip: Drop references to layout of all sets on pool reset/destruction") Fixes cts tests: dEQP-VK.api.buffer_marker.graphics.default_mem.bottom_of_pipe.memory_dep.draw dEQP-VK.api.buffer_marker.graphics.default_mem.bottom_of_pipe.memory_dep.dispatch Signed-off-by: Danylo Piliaiev Part-of: (cherry picked from commit 183bc15bdbe22e46596ffa281781f0c473ad7cb4) --- .pick_status.json | 2 +- src/freedreno/vulkan/tu_descriptor_set.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index d6d42123a2c..1a2d2b54ead 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -445,7 +445,7 @@ "description": "turnip: Unconditionaly remove descriptor set from pool's list on free", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "da7a475138d6b5cab15e26be3343abf36ab74727" }, diff --git a/src/freedreno/vulkan/tu_descriptor_set.c b/src/freedreno/vulkan/tu_descriptor_set.c index 0c2cef08787..834ade7a5ca 100644 --- a/src/freedreno/vulkan/tu_descriptor_set.c +++ b/src/freedreno/vulkan/tu_descriptor_set.c @@ -589,8 +589,6 @@ tu_descriptor_set_destroy(struct tu_device *device, } } - list_del(&set->pool_link); - vk_object_free(&device->vk, NULL, set); } @@ -814,8 +812,10 @@ tu_FreeDescriptorSets(VkDevice _device, for (uint32_t i = 0; i < count; i++) { TU_FROM_HANDLE(tu_descriptor_set, set, pDescriptorSets[i]); - if (set) + if (set) { tu_descriptor_set_layout_unref(device, set->layout); + list_del(&set->pool_link); + } if (set && !pool->host_memory_base) tu_descriptor_set_destroy(device, pool, set, true);