summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-07-17 20:32:46 +0200
committerMarek Olšák <[email protected]>2016-07-30 15:02:14 +0200
commit1f73e2bb942783bf143185a58d2290fda2b08c81 (patch)
tree54ba603691f77dae5ed1e2e3422a34fbc1619a22
parent0a46e6f410f2838886828e18f0b6604b2702d809 (diff)
st/mesa: unreference optional shaders when unbinding
Reviewed-by: Nicolai Hähnle <[email protected]>
-rw-r--r--src/mesa/state_tracker/st_atom_shader.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_atom_shader.c b/src/mesa/state_tracker/st_atom_shader.c
index b3401c48d52..7a23469cede 100644
--- a/src/mesa/state_tracker/st_atom_shader.c
+++ b/src/mesa/state_tracker/st_atom_shader.c
@@ -217,6 +217,7 @@ update_gp( struct st_context *st )
if (!st->ctx->GeometryProgram._Current) {
cso_set_geometry_shader_handle(st->cso_context, NULL);
+ st_reference_geomprog(st, &st->gp, NULL);
return;
}
@@ -245,6 +246,7 @@ update_tcp( struct st_context *st )
if (!st->ctx->TessCtrlProgram._Current) {
cso_set_tessctrl_shader_handle(st->cso_context, NULL);
+ st_reference_tesscprog(st, &st->tcp, NULL);
return;
}
@@ -273,6 +275,7 @@ update_tep( struct st_context *st )
if (!st->ctx->TessEvalProgram._Current) {
cso_set_tesseval_shader_handle(st->cso_context, NULL);
+ st_reference_tesseprog(st, &st->tep, NULL);
return;
}
@@ -301,6 +304,7 @@ update_cp( struct st_context *st )
if (!st->ctx->ComputeProgram._Current) {
cso_set_compute_shader_handle(st->cso_context, NULL);
+ st_reference_compprog(st, &st->cp, NULL);
return;
}