From OpenGL 4.0 spec, section 4.3.2 "Copying Pixels": "The pixels corresponding to these buffers are copied from the source rectangle bounded by the locations (srcX0, srcY 0) and (srcX1, srcY 1) to the destination rectangle bounded by the locations (dstX0, dstY 0) and (dstX1, dstY 1). The lower bounds of the rectangle are inclusive, while the upper bounds are exclusive."
So, the rectangles sharing just an edge shouldn't overlap. ----------- | | ------- --- | | | | | | ------- --- Cc: Ian Romanick <ian.d.roman...@intel.com> Cc: Matt Turner <matts...@gmail.com> Signed-off-by: Anuj Phogat <anuj.pho...@gmail.com> --- src/gallium/auxiliary/util/u_blit.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gallium/auxiliary/util/u_blit.c b/src/gallium/auxiliary/util/u_blit.c index 9737c94..f45a1b8 100644 --- a/src/gallium/auxiliary/util/u_blit.c +++ b/src/gallium/auxiliary/util/u_blit.c @@ -314,16 +314,16 @@ regions_overlap(int srcX0, int srcY0, int dstX0, int dstY0, int dstX1, int dstY1) { - if (MAX2(srcX0, srcX1) < MIN2(dstX0, dstX1)) + if (MAX2(srcX0, srcX1) <= MIN2(dstX0, dstX1)) return FALSE; /* src completely left of dst */ - if (MAX2(dstX0, dstX1) < MIN2(srcX0, srcX1)) + if (MAX2(dstX0, dstX1) <= MIN2(srcX0, srcX1)) return FALSE; /* dst completely left of src */ - if (MAX2(srcY0, srcY1) < MIN2(dstY0, dstY1)) + if (MAX2(srcY0, srcY1) <= MIN2(dstY0, dstY1)) return FALSE; /* src completely above dst */ - if (MAX2(dstY0, dstY1) < MIN2(srcY0, srcY1)) + if (MAX2(dstY0, dstY1) <= MIN2(srcY0, srcY1)) return FALSE; /* dst completely above src */ return TRUE; /* some overlap */ -- 2.5.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev