On Sunday, 2018-07-08 12:53:00 +0530, Harish Krupo wrote: > Clamp the x and y co-ordinates of the rectangles. > > v2: Clamp width/height after converting to co-ordinates > (Ilia Merkin) > > Signed-off-by: Harish Krupo <harish.krupo....@intel.com> > --- > src/egl/main/eglapi.c | 25 +++++++++++-------------- > 1 file changed, 11 insertions(+), 14 deletions(-) > > diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c > index c110349119..deb479b6d5 100644 > --- a/src/egl/main/eglapi.c > +++ b/src/egl/main/eglapi.c > @@ -1320,9 +1320,7 @@ eglSwapBuffersWithDamageKHR(EGLDisplay dpy, EGLSurface > surface, > } > > /** > - * If the width of the passed rect is greater than the surface's > - * width then it is clamped to the width of the surface. Same with > - * height. > + * Clamp the rectangles so that they lie within the surface. > */ > > static void > @@ -1334,17 +1332,16 @@ _eglSetDamageRegionKHRClampRects(_EGLDisplay* disp, > _EGLSurface* surf, > EGLint surf_width = surf->Width; > > for (i = 0; i < (4 * n_rects); i += 4) { > - EGLint x, y, rect_width, rect_height; > - x = rects[i]; > - y = rects[i + 1]; > - rect_width = rects[i + 2]; > - rect_height = rects[i + 3]; > - > - if (rect_width > surf_width - x) > - rects[i + 2] = surf_width - x; > - > - if (rect_height > surf_height - y) > - rects[i + 3] = surf_height - y; > + EGLint x1, y1, x2, y2; > + x1 = rects[i]; > + y1 = rects[i + 1]; > + x2 = rects[i + 2] + x1; > + y2 = rects[i + 3] + y1; > + > + rects[i] = CLAMP(x1, 0, surf_width); > + rects[i + 1] = CLAMP(y1, 0, surf_height); > + rects[i + 2] = CLAMP(x2, 0, surf_width) - rects[i]; > + rects[i + 3] = CLAMP(y2, 0, surf_height) - rects[i + 1];
This looks correct to me: Reviewed-by: Eric Engestrom <eric.engest...@intel.com> I ran it through our CI as well, looks all good, no regression; would you like one of us to push it for you? > } > } > > -- > 2.18.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev