mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
intel: Skip the flush before read-pixels via blit
As we will flush when reading the return values of the blit, we can forgo the earlier flush. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
c625aa19cb
commit
57ca0803b3
1 changed files with 7 additions and 4 deletions
|
|
@ -80,6 +80,7 @@ do_blit_readpixels(struct gl_context * ctx,
|
|||
drm_intel_bo *dst_buffer;
|
||||
GLboolean all;
|
||||
GLint dst_x, dst_y;
|
||||
GLuint dirty;
|
||||
|
||||
DBG("%s\n", __FUNCTION__);
|
||||
|
||||
|
|
@ -129,7 +130,9 @@ do_blit_readpixels(struct gl_context * ctx,
|
|||
return GL_TRUE;
|
||||
}
|
||||
|
||||
dirty = intel->front_buffer_dirty;
|
||||
intel_prepare_render(intel);
|
||||
intel->front_buffer_dirty = dirty;
|
||||
|
||||
all = (width * height * src->cpp == dst->Base.Size &&
|
||||
x == 0 && dst_offset == 0);
|
||||
|
|
@ -171,6 +174,10 @@ intelReadPixels(struct gl_context * 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
|
||||
|
|
@ -179,10 +186,6 @@ intelReadPixels(struct gl_context * ctx,
|
|||
intel_prepare_render(intel);
|
||||
intel->front_buffer_dirty = dirty;
|
||||
|
||||
if (do_blit_readpixels
|
||||
(ctx, x, y, width, height, format, type, pack, pixels))
|
||||
return;
|
||||
|
||||
fallback_debug("%s: fallback to swrast\n", __FUNCTION__);
|
||||
|
||||
/* Update Mesa state before calling down into _swrast_ReadPixels, as
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue