summaryrefslogtreecommitdiff
path: root/src/mesa/state_tracker/st_context.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/state_tracker/st_context.c')
-rw-r--r--src/mesa/state_tracker/st_context.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c
index fb397ea510..4081722bc7 100644
--- a/src/mesa/state_tracker/st_context.c
+++ b/src/mesa/state_tracker/st_context.c
@@ -158,9 +158,6 @@ static void st_destroy_context_priv( struct st_context *st )
{
uint i;
- st_reference_fragprog(st, &st->fp, NULL);
- st_reference_vertprog(st, &st->vp, NULL);
-
draw_destroy(st->draw);
st_destroy_atoms( st );
st_destroy_draw( st );
@@ -168,6 +165,7 @@ static void st_destroy_context_priv( struct st_context *st )
st_destroy_bitmap(st);
st_destroy_blit(st);
st_destroy_clear(st);
+ st_destroy_drawpix(st);
_vbo_DestroyContext(st->ctx);
@@ -194,6 +192,9 @@ void st_destroy_context( struct st_context *st )
/* need to unbind and destroy CSO objects before anything else */
cso_release_all(st->cso_context);
+ st_reference_fragprog(st, &st->fp, NULL);
+ st_reference_vertprog(st, &st->vp, NULL);
+
_mesa_delete_program_cache(st->ctx, st->pixel_xfer.cache);
_mesa_free_context_data(ctx);