i965: Make brw_clear_cache NULL out stale program pointers.
[mesa.git] / src / mesa / drivers / dri / i965 / brw_state_cache.c
index ce178aa14cc71d6460835f830c5d917987160831..c6aa1344270032a1f45bdc475aa1fb7a5a2f2e14 100644 (file)
@@ -393,6 +393,21 @@ brw_clear_cache(struct brw_context *brw, struct brw_cache *cache)
    brw->state.pipelines[BRW_RENDER_PIPELINE].brw = ~0ull;
    brw->state.pipelines[BRW_COMPUTE_PIPELINE].mesa = ~0;
    brw->state.pipelines[BRW_COMPUTE_PIPELINE].brw = ~0ull;
+
+   /* Also, NULL out any stale program pointers. */
+   brw->vs.prog_data = NULL;
+   brw->vs.base.prog_data = NULL;
+   brw->tcs.prog_data = NULL;
+   brw->tcs.base.prog_data = NULL;
+   brw->tes.prog_data = NULL;
+   brw->tes.base.prog_data = NULL;
+   brw->gs.prog_data = NULL;
+   brw->gs.base.prog_data = NULL;
+   brw->wm.prog_data = NULL;
+   brw->wm.base.prog_data = NULL;
+   brw->cs.prog_data = NULL;
+   brw->cs.base.prog_data = NULL;
+
    intel_batchbuffer_flush(brw);
 }