The EGL_NOK_swap_region2 spec states that the rectangles are specified with a bottom-left origin within a surface coordinate space also with a bottom left origin, so this patch ensures the rectangles are flipped before passing them on to dri2_copy_region. Fixes piglit's egl-nok-swap-region test. Tested-by: Matt Turner <mattst88@gmail.com>tags/gles3-fmt-v1
@@ -777,10 +777,9 @@ dri2_swap_buffers_region(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *draw, | |||
if (numRects > (int)ARRAY_SIZE(rectangles)) | |||
return dri2_copy_region(drv, disp, draw, dri2_surf->region); | |||
/* FIXME: Invert y here? */ | |||
for (i = 0; i < numRects; i++) { | |||
rectangles[i].x = rects[i * 4]; | |||
rectangles[i].y = rects[i * 4 + 1]; | |||
rectangles[i].y = dri2_surf->base.Height - rects[i * 4 + 1] - rects[i * 4 + 3]; | |||
rectangles[i].width = rects[i * 4 + 2]; | |||
rectangles[i].height = rects[i * 4 + 3]; | |||
} |