st/mesa: minor refactoring of texture/sampler delete code
authorBrian Paul <brianp@vmware.com>
Wed, 6 Mar 2019 23:20:55 +0000 (16:20 -0700)
committerBrian Paul <brianp@vmware.com>
Tue, 12 Mar 2019 02:08:16 +0000 (20:08 -0600)
Rename st_texture_free_sampler_views() to
st_delete_texture_sampler_views() to align with
st_DeleteTextureObject(), its only caller.

Move the call to st_texture_release_all_sampler_views() from
st_DeleteTextureObject() to st_delete_texture_sampler_views()
so all the sampler view clean-up code is in one place.

Reviewed-by: Neha Bhende <bhenden@vmware.com>
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_sampler_view.c
src/mesa/state_tracker/st_sampler_view.h

index 47d06122ec11d4a2b294f9c206a03d142c3103a6..2caf61e8943d985a5c72044fba065017eadf8a87 100644 (file)
@@ -187,8 +187,7 @@ st_DeleteTextureObject(struct gl_context *ctx,
    struct st_texture_object *stObj = st_texture_object(texObj);
 
    pipe_resource_reference(&stObj->pt, NULL);
-   st_texture_release_all_sampler_views(st, stObj);
-   st_texture_free_sampler_views(stObj);
+   st_delete_texture_sampler_views(st, stObj);
    simple_mtx_destroy(&stObj->validate_mutex);
    _mesa_delete_texture_object(ctx, texObj);
 }
index 17c209c867fd91af79be3925ed7ddd981812e087..e4eaf395950c965cfc1476b5d9b38885f59a70f8 100644 (file)
@@ -231,15 +231,20 @@ st_texture_release_all_sampler_views(struct st_context *st,
 
 
 /*
- * Free the texture's st_sampler_views objects.  This should be called
- * after st_texture_release_all_sampler_views().
+ * Delete the texture's sampler views and st_sampler_views containers.
+ * This is to be called just before a texture is deleted.
  */
 void
-st_texture_free_sampler_views(struct st_texture_object *stObj)
+st_delete_texture_sampler_views(struct st_context *st,
+                                struct st_texture_object *stObj)
 {
+   st_texture_release_all_sampler_views(st, stObj);
+
+   /* Free the container of the current per-context sampler views */
    free(stObj->sampler_views);
    stObj->sampler_views = NULL;
 
+   /* Free old sampler view containers */
    while (stObj->sampler_views_old) {
       struct st_sampler_views *views = stObj->sampler_views_old;
       stObj->sampler_views_old = views->next;
index d7a4c0d8d6086b2578ba55a4323c7ae6cff6264e..1bd664d3ba61aa9776dc8f840933d3853282b0e7 100644 (file)
@@ -66,7 +66,8 @@ st_texture_release_all_sampler_views(struct st_context *st,
                                      struct st_texture_object *stObj);
 
 void
-st_texture_free_sampler_views(struct st_texture_object *stObj);
+st_delete_texture_sampler_views(struct st_context *st,
+                                struct st_texture_object *stObj);
 
 const struct st_sampler_view *
 st_texture_get_current_sampler_view(const struct st_context *st,