Allow out of bounds coordinates in glBlitFramebuffer Device::stretchRect() now supports out of bounds coordinates. To avoid linear interpolation errors, source coordinates now have to be in floating point rather than integer format. Most changes in this cl are just to accommodate that int->float change for the source rect. Fixes all (28) failures in: dEQP-GLES3.functional.fbo.blit.rect Change-Id: I8fd017e60b61f2d7d6517b0e648b324be441cddd Reviewed-on: https://swiftshader-review.googlesource.com/14648 Tested-by: Alexis Hétu <sugoi@google.com> Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/OpenGL/libGLES_CM/Device.cpp b/src/OpenGL/libGLES_CM/Device.cpp index 26f53bc..23c96f4 100644 --- a/src/OpenGL/libGLES_CM/Device.cpp +++ b/src/OpenGL/libGLES_CM/Device.cpp
@@ -506,7 +506,8 @@ } else { - blit(source, sRect, dest, dRect, scaling && filter); + sw::SliceRectF sRectF((float)sRect.x0, (float)sRect.y0, (float)sRect.x1, (float)sRect.y1, sRect.slice); + blit(source, sRectF, dest, dRect, scaling && filter); } return true;