On Tue, Dec 13, 2011 at 1:53 PM, Eric Anholt <e...@anholt.net> wrote: > --- > src/mesa/swrast/s_blit.c | 10 +++++++++- > 1 files changed, 9 insertions(+), 1 deletions(-) > > diff --git a/src/mesa/swrast/s_blit.c b/src/mesa/swrast/s_blit.c > index 2817ec1..803ad2e 100644 > --- a/src/mesa/swrast/s_blit.c > +++ b/src/mesa/swrast/s_blit.c > @@ -478,7 +478,15 @@ simple_blit(struct gl_context *ctx, > ASSERT(srcX1 - srcX0 == dstX1 - dstX0); > ASSERT(srcY1 - srcY0 == dstY1 - dstY0); > > - /* determine if copy should be bottom-to-top or top-to-bottom */ > + /* From the GL_ARB_framebuffer_object spec: > + * > + * "If the source and destination buffers are identical, and the > source > + * and destination rectangles overlap, the result of the blit > operation > + * is undefined." > + * > + * However, we provide the expected result anyway by flipping the order of > + * the memcpy of rows. > + */ > if (srcY0 > dstY0) { > /* src above dst: copy bottom-to-top */ > yStep = 1;
Reviewed-by: Brian Paul <bri...@vmware.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev