[Mesa-dev] [PATCH v2] egl: Fix missing clamping in eglSetDamageRegionKHR

Harish Krupo harish.krupo.kps at intel.com
Tue Jul 24 12:45:54 UTC 2018


Hi Eric,

Eric Engestrom <eric.engestrom at intel.com> writes:

> 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.kps at 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.engestrom at 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?
>

Thanks and yes please :)

Thank you
Regards
Harish Krupo


More information about the mesa-dev mailing list