RESTRICT AUTOMERGE Add 1/16th pixel offset when drawing non-AA points/lines

This nudge ensures that pixel-aligned non-AA'd draws fill the desired
fragment.

Coupled with http://review.skia.org/665816, we're moving this logic from
Skia to Android so that the prerotation matrix can be properly accounted
for. Offseting only in Skia without accounting for prerotation  meant
the device-space Y offset could be applied in the wrong direction when
using Vulkan.

Equivalent change in T: Idfb5027fe3230f2c2b0cad224f2c7640e147ce4a

Bug: 254771190
Test: android.uirendering.cts.testclasses.ExactCanvasTests#testDrawLine
Change-Id: I975b62510a36312a395d1e254474bca726a9445d
(cherry picked from commit 7f785ebd57cf129bb39e89237fba541912ce3649)
diff --git a/libs/hwui/renderthread/VulkanSurface.h b/libs/hwui/renderthread/VulkanSurface.h
index e2ddc6b..6f528010 100644
--- a/libs/hwui/renderthread/VulkanSurface.h
+++ b/libs/hwui/renderthread/VulkanSurface.h
@@ -47,6 +47,7 @@
     const SkMatrix& getCurrentPreTransform() { return mWindowInfo.preTransform; }
 
     void setColorSpace(sk_sp<SkColorSpace> colorSpace);
+    const SkM44& getPixelSnapMatrix() const { return mWindowInfo.pixelSnapMatrix; }
 
 private:
     /*
@@ -105,6 +106,7 @@
         SkISize actualSize;
         // transform to be applied to the SkSurface to map the coordinates to the provided transform
         SkMatrix preTransform;
+        SkM44 pixelSnapMatrix;
     };
 
     VulkanSurface(ANativeWindow* window, const WindowInfo& windowInfo, GrDirectContext* grContext);