mesa/st: release variants for active programs before unref
[mesa.git] / src / mesa / state_tracker / st_program.c
index 466c3f1a29e5028f97c0aa9c1177b0155fa8a8b6..c0e63b8a98c8cae18625c7fe25977c7085885ad9 100644 (file)
@@ -334,6 +334,19 @@ st_release_variants(struct st_context *st, struct st_program *p)
     */
 }
 
+/**
+ * Free all basic program variants and unref program.
+ */
+void
+st_release_program(struct st_context *st, struct st_program **p)
+{
+   if (!*p)
+      return;
+
+   st_release_variants(st, *p);
+   st_reference_prog(st, p, NULL);
+}
+
 void
 st_finalize_nir_before_variants(struct nir_shader *nir)
 {