-
-DEBUG_GET_ONCE_BOOL_OPTION(lp_no_rast, "LP_NO_RAST", FALSE)
-
-
-/** shared by all contexts */
-unsigned llvmpipe_variant_count;
-
-
-/**
- * This function is called by the gallivm "garbage collector" when
- * the LLVM global data structures are freed. We must free all LLVM-related
- * data. Specifically, all JIT'd shader variants.
- */
-static void
-garbage_collect_callback(void *cb_data)
-{
- struct llvmpipe_context *lp = (struct llvmpipe_context *) cb_data;
- struct lp_fs_variant_list_item *li;
-
- /* Free all the context's shader variants */
- li = first_elem(&lp->fs_variants_list);
- while (!at_end(&lp->fs_variants_list, li)) {
- struct lp_fs_variant_list_item *next = next_elem(li);
- llvmpipe_remove_shader_variant(lp, li->base);
- li = next;
- }
-
- /* Free all the context's primitive setup variants */
- lp_delete_setup_variants(lp);
-
- /* release references to setup variants, shaders */
- lp_setup_set_setup_variant(lp->setup, NULL);
- lp_setup_set_fs_variant(lp->setup, NULL);
- lp_setup_reset(lp->setup);
-
- /* This type will be recreated upon demand */
- lp->jit_context_ptr_type = NULL;
-
- /* mark all state as dirty to ensure new shaders are jit'd, etc. */
- lp->dirty = ~0;
-}
-
-