Fixed using an offset in Blitter::blitFromBuffer()

The destination offset wasn't taken into account in the
computation of the source offset, which is necessary
because we compute the source coordinates from the
destination coordinates in the generated routine.

Bug: angleproject:4037 angleproject:4013
Change-Id: Ib9961cec267653c8d33da1847486943f8a670a49
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/37588
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
diff --git a/src/Device/Blitter.cpp b/src/Device/Blitter.cpp
index 6a58c69..9f95205 100644
--- a/src/Device/Blitter.cpp
+++ b/src/Device/Blitter.cpp
@@ -1718,7 +1718,10 @@
 			bufferSlicePitch, // sSliceB
 			dst->slicePitchBytes(aspect, subresource.mipLevel), // dSliceB
 
-			0, 0, 1, 1,
+			static_cast<float>(-offset.x), // x0
+			static_cast<float>(-offset.y), // y0
+			1.0f, // w
+			1.0f, // h
 
 			offset.y, // y0d
 			static_cast<int>(offset.y + extent.height), // y1d