Add offset to memory allocations

This is setting up for suballocations within one large
allocation

BUG=skia:5031
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2018933004
TBR=bsalomon@google.com

Review-Url: https://codereview.chromium.org/2018933004
diff --git a/src/gpu/vk/GrVkMemory.h b/src/gpu/vk/GrVkMemory.h
index 2e61451..279dd58 100644
--- a/src/gpu/vk/GrVkMemory.h
+++ b/src/gpu/vk/GrVkMemory.h
@@ -9,6 +9,7 @@
 #define GrVkMemory_DEFINED
 
 #include "vk/GrVkDefines.h"
+#include "vk/GrVkTypes.h"
 
 class GrVkGpu;
 
@@ -20,12 +21,14 @@
     bool AllocAndBindBufferMemory(const GrVkGpu* gpu,
                                   VkBuffer buffer,
                                   const VkMemoryPropertyFlags flags,
-                                  VkDeviceMemory* memory);
+                                  GrVkAlloc* alloc);
+    void FreeBufferMemory(const GrVkGpu* gpu, const GrVkAlloc& alloc);
 
     bool AllocAndBindImageMemory(const GrVkGpu* gpu,
                                  VkImage image,
                                  const VkMemoryPropertyFlags flags,
-                                 VkDeviceMemory* memory);
+                                 GrVkAlloc* alloc);
+    void FreeImageMemory(const GrVkGpu* gpu, const GrVkAlloc& alloc);
 
     VkPipelineStageFlags LayoutToPipelineStageFlags(const VkImageLayout layout);