Don't use glBlitFramebufferEXT for overlapping copies.

According to the GL_EXT_framebuffer_blit spec, the result of doing so is
undefined. But we need well-defined results. :)

Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
Michel Dänzer 2012-10-31 16:56:00 +01:00 committed by Eric Anholt
parent e846f48f48
commit 14e02f5132

View File

@ -318,7 +318,8 @@ __glamor_copy_n_to_n(DrawablePtr src,
dx, dy,
src_pixmap, dst_pixmap);
#ifndef GLAMOR_GLES2
if ((overlaped || glamor_priv->state != RENDER_STATE
if (!overlaped &&
(glamor_priv->state != RENDER_STATE
|| !src_pixmap_priv->base.gl_tex || !dst_pixmap_priv->base.gl_tex)
&& glamor_copy_n_to_n_fbo_blit(src, dst, gc, box, nbox, dx,
dy)) {