diff options
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_context.c | 10 | ||||
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_context.h | 1 | ||||
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_pixel_read.c | 4 |
3 files changed, 12 insertions, 3 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_context.c b/src/mesa/drivers/dri/intel/intel_context.c index 6638f1704a4..801b747a926 100644 --- a/src/mesa/drivers/dri/intel/intel_context.c +++ b/src/mesa/drivers/dri/intel/intel_context.c @@ -495,7 +495,7 @@ intelInvalidateState(struct gl_context * ctx, GLuint new_state) } void -intel_flush(struct gl_context *ctx) +intel_flush_rendering_to_batch(struct gl_context *ctx) { struct intel_context *intel = intel_context(ctx); @@ -504,6 +504,14 @@ intel_flush(struct gl_context *ctx) if (intel->gen < 4) INTEL_FIREVERTICES(intel); +} + +void +intel_flush(struct gl_context *ctx) +{ + struct intel_context *intel = intel_context(ctx); + + intel_flush_rendering_to_batch(ctx); if (intel->batch.used) intel_batchbuffer_flush(intel); diff --git a/src/mesa/drivers/dri/intel/intel_context.h b/src/mesa/drivers/dri/intel/intel_context.h index 47e53d9e38a..08c1692ad96 100644 --- a/src/mesa/drivers/dri/intel/intel_context.h +++ b/src/mesa/drivers/dri/intel/intel_context.h @@ -483,6 +483,7 @@ extern bool intelInitContext(struct intel_context *intel, struct dd_function_table *functions); extern void intelFinish(struct gl_context * ctx); +extern void intel_flush_rendering_to_batch(struct gl_context *ctx); extern void intel_flush(struct gl_context * ctx); extern void intelInitDriverFunctions(struct dd_function_table *functions); diff --git a/src/mesa/drivers/dri/intel/intel_pixel_read.c b/src/mesa/drivers/dri/intel/intel_pixel_read.c index 803d7147037..a79b69ca695 100644 --- a/src/mesa/drivers/dri/intel/intel_pixel_read.c +++ b/src/mesa/drivers/dri/intel/intel_pixel_read.c @@ -172,14 +172,14 @@ intelReadPixels(struct gl_context * ctx, struct intel_context *intel = intel_context(ctx); bool dirty; + intel_flush_rendering_to_batch(ctx); + DBG("%s\n", __FUNCTION__); if (do_blit_readpixels (ctx, x, y, width, height, format, type, pack, pixels)) return; - intel_flush(ctx); - /* glReadPixels() wont dirty the front buffer, so reset the dirty * flag after calling intel_prepare_render(). */ dirty = intel->front_buffer_dirty; |