Mesa (master): anv/descriptor_set: Unlink sets from the pool in set_destroy

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Apr 24 05:52:47 UTC 2019


Module: Mesa
Branch: master
Commit: 6be603edf7e2bd6ac7bc7a4e15152b8f0d0ee729
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6be603edf7e2bd6ac7bc7a4e15152b8f0d0ee729

Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Tue Apr 23 22:13:55 2019 -0500

anv/descriptor_set: Unlink sets from the pool in set_destroy

anv_descriptor_pool_free_set is called on the clean-up path of
anv_descriptor_set_create and the set may not have been added to the
pool's list of sets yet.  While we're here, we move adding it to that
list into set_create for symmetry.

Fixes: 105002bd2d "anv: destroy descriptor sets when pool gets..."
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

---

 src/intel/vulkan/anv_descriptor_set.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_descriptor_set.c
index ac380cb1981..a1dd8a3527f 100644
--- a/src/intel/vulkan/anv_descriptor_set.c
+++ b/src/intel/vulkan/anv_descriptor_set.c
@@ -840,8 +840,6 @@ anv_descriptor_pool_free_set(struct anv_descriptor_pool *pool,
       entry->size = set->size;
       pool->free_list = (char *) entry - pool->data;
    }
-
-   list_del(&set->pool_link);
 }
 
 struct surface_state_free_list_entry {
@@ -971,6 +969,8 @@ anv_descriptor_set_create(struct anv_device *device,
          anv_descriptor_pool_alloc_state(pool);
    }
 
+   list_addtail(&set->pool_link, &pool->desc_sets);
+
    *out_set = set;
 
    return VK_SUCCESS;
@@ -993,6 +993,8 @@ anv_descriptor_set_destroy(struct anv_device *device,
    for (uint32_t b = 0; b < set->buffer_view_count; b++)
       anv_descriptor_pool_free_state(pool, set->buffer_views[b].surface_state);
 
+   list_del(&set->pool_link);
+
    anv_descriptor_pool_free_set(pool, set);
 }
 
@@ -1016,8 +1018,6 @@ VkResult anv_AllocateDescriptorSets(
       if (result != VK_SUCCESS)
          break;
 
-      list_addtail(&set->pool_link, &pool->desc_sets);
-
       pDescriptorSets[i] = anv_descriptor_set_to_handle(set);
    }
 




More information about the mesa-commit mailing list