From: José Fonseca Date: Wed, 3 Mar 2010 18:47:29 +0000 (+0000) Subject: llvmpipe: Ensure context is flushed when destroying shaders. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4d5dd82558fcf1f6fcfdb95b225a4e3f842a9133;p=mesa.git llvmpipe: Ensure context is flushed when destroying shaders. --- diff --git a/src/gallium/drivers/llvmpipe/lp_state_fs.c b/src/gallium/drivers/llvmpipe/lp_state_fs.c index 90dae3f9101..c4b79dd4156 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_fs.c +++ b/src/gallium/drivers/llvmpipe/lp_state_fs.c @@ -974,6 +974,13 @@ llvmpipe_delete_fs_state(struct pipe_context *pipe, void *fs) assert(fs != llvmpipe->fs); (void) llvmpipe; + /* + * XXX: we need to flush the context until we have some sort of reference + * counting in fragment shaders as they may still be binned + */ + draw_flush(llvmpipe->draw); + lp_setup_flush(llvmpipe->setup, 0); + variant = shader->variants; while(variant) { struct lp_fragment_shader_variant *next = variant->next;