Reland "Create API for GrVkMemoryAllocator and impliment use of AMD VulkanMemoryAllocator on this API."

This reverts commit 98bddf930e4a8767bca60d84d585c386fabfc6b7.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "Create API for GrVkMemoryAllocator and impliment use of AMD VulkanMemoryAllocator on this API."
> 
> This reverts commit 26c0e4c1f54759249c2d61b50fb5430bd73793f2.
> 
> Reason for revert: breaks roll into fuchsia
> 
> Original change's description:
> > Create API for GrVkMemoryAllocator and impliment use of AMD VulkanMemoryAllocator on this API.
> > 
> > Bug: skia:
> > Change-Id: I1e122e1b11ab308c2f83cb98c36c81511f4507d0
> > Reviewed-on: https://skia-review.googlesource.com/129980
> > Commit-Queue: Greg Daniel <egdaniel@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> > Reviewed-by: Jim Van Verth <jvanverth@google.com>
> 
> 
> 
> Change-Id: I6c74978f778987c422e6162e7dd85ea9c6baa0e4
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: skia:
> Reviewed-on: https://skia-review.googlesource.com/130182
> Reviewed-by: Greg Daniel <egdaniel@google.com>
> Commit-Queue: Greg Daniel <egdaniel@google.com>

Bug: skia:
Change-Id: I422ffb3562da567f2e85c806286ad1a17c3862cd
Reviewed-on: https://skia-review.googlesource.com/130183
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
diff --git a/gn/gn_to_bp.py b/gn/gn_to_bp.py
index 8ad221c..34dd49a 100644
--- a/gn/gn_to_bp.py
+++ b/gn/gn_to_bp.py
@@ -251,6 +251,11 @@
 local_includes.add("third_party/skcms")
 dm_includes   .add("third_party/skcms")
 
+# need to manually include the vulkanmemoryallocator headers. If HWUI ever needs
+# direct access to the allocator we need to add it to export_includes as well.
+srcs.add("third_party/vulkanmemoryallocator/GrVulkanMemoryAllocator.cpp")
+local_includes.add("third_party/vulkanmemoryallocator/")
+
 # No need to list headers.
 srcs            = {s for s in srcs           if not s.endswith('.h')}
 dm_srcs         = {s for s in dm_srcs        if not s.endswith('.h')}
diff --git a/gn/gn_to_bp_utils.py b/gn/gn_to_bp_utils.py
index 6545640..78217a7 100644
--- a/gn/gn_to_bp_utils.py
+++ b/gn/gn_to_bp_utils.py
@@ -45,6 +45,13 @@
 def CleanupCFlags(cflags):
   # Only use the generated flags related to warnings.
   cflags = {s for s in cflags if s.startswith('-W')}
+  # Add additional warning suppressions so we can build
+  # third_party/vulkanmemoryallocator
+  cflags = cflags.union([
+    "-Wno-thread-safety-analysis",
+    "-Wno-missing-field-initializers",
+    "-Wno-unused-variable",
+  ])
   # Add the rest of the flags we want.
   cflags = cflags.union([
     "-fvisibility=hidden",
diff --git a/gn/gpu.gni b/gn/gpu.gni
index 14059fd..d0e7f7f 100644
--- a/gn/gpu.gni
+++ b/gn/gpu.gni
@@ -535,8 +535,11 @@
   "$_include/gpu/vk/GrVkBackendContext.h",
   "$_include/gpu/vk/GrVkDefines.h",
   "$_include/gpu/vk/GrVkInterface.h",
+  "$_include/gpu/vk/GrVkMemoryAllocator.h",
   "$_include/gpu/vk/GrVkTypes.h",
   "$_include/private/GrVkTypesPriv.h",
+  "$_src/gpu/vk/GrVkAMDMemoryAllocator.cpp",
+  "$_src/gpu/vk/GrVkAMDMemoryAllocator.h",
   "$_src/gpu/vk/GrVkBackendContext.cpp",
   "$_src/gpu/vk/GrVkBuffer.cpp",
   "$_src/gpu/vk/GrVkBuffer.h",