diff --git a/src/mesa/state_tracker/st_pbo.c b/src/mesa/state_tracker/st_pbo.c index f32578405f9..27ef9916282 100644 --- a/src/mesa/state_tracker/st_pbo.c +++ b/src/mesa/state_tracker/st_pbo.c @@ -739,9 +739,5 @@ st_destroy_pbo_helpers(struct st_context *st) st->pbo.vs = NULL; } - if (st->pbo.shaders) { - hash_table_foreach(st->pbo.shaders, entry) - st->pipe->delete_compute_state(st->pipe, entry->data); - _mesa_hash_table_destroy(st->pbo.shaders, NULL); - } + st_pbo_compute_deinit(st); } diff --git a/src/mesa/state_tracker/st_pbo.h b/src/mesa/state_tracker/st_pbo.h index b1eafc8fd0a..0b5e28fdf0d 100644 --- a/src/mesa/state_tracker/st_pbo.h +++ b/src/mesa/state_tracker/st_pbo.h @@ -129,5 +129,7 @@ st_init_pbo_helpers(struct st_context *st); extern void st_destroy_pbo_helpers(struct st_context *st); +void +st_pbo_compute_deinit(struct st_context *st); #endif /* ST_PBO_H */ diff --git a/src/mesa/state_tracker/st_pbo_compute.c b/src/mesa/state_tracker/st_pbo_compute.c index 3182f2192eb..df0bdab3a9b 100644 --- a/src/mesa/state_tracker/st_pbo_compute.c +++ b/src/mesa/state_tracker/st_pbo_compute.c @@ -1167,3 +1167,12 @@ st_GetTexSubImage_shader(struct gl_context * ctx, return true; } +void +st_pbo_compute_deinit(struct st_context *st) +{ + if (!st->pbo.shaders) + return; + hash_table_foreach(st->pbo.shaders, entry) + st->pipe->delete_compute_state(st->pipe, entry->data); + _mesa_hash_table_destroy(st->pbo.shaders, NULL); +}