st/mesa: flush bitmap cache before compute dispatch
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Thu, 9 Jun 2016 10:12:34 +0000 (12:12 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Tue, 21 Jun 2016 08:54:00 +0000 (10:54 +0200)
In the unlikely case that a program uses glBitmap to render to a framebuffer
whose texture is bound in a compute shader.

Found by inspection.

Cc: 11.2 12.0 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/state_tracker/st_cb_compute.c

index bfc6d96cd57dafbe301cf470035066633ddba779..063d750d03a89431ac8cbd80603b4cf5bbce164b 100644 (file)
@@ -28,6 +28,7 @@
 #include "main/state.h"
 #include "st_atom.h"
 #include "st_context.h"
+#include "st_cb_bitmap.h"
 #include "st_cb_bufferobjects.h"
 #include "st_cb_compute.h"
 
@@ -44,6 +45,8 @@ static void st_dispatch_compute_common(struct gl_context *ctx,
    struct pipe_context *pipe = st->pipe;
    struct pipe_grid_info info = { 0 };
 
+   st_flush_bitmap_cache(st);
+
    if (ctx->NewState)
       _mesa_update_state(ctx);