Add new GrVkBackendContext::Create explicitly requiring vk proc getters

Also remove the feature of GrVkGpu that creates the instance/device if the client doesn't provide one.

Change-Id: Ie617313b6c684ed355333a475b80d0aae7e3a026
Reviewed-on: https://skia-review.googlesource.com/14261
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/tools/gpu/vk/VkTestContext.cpp b/tools/gpu/vk/VkTestContext.cpp
index b1e7ad4..3e76d87 100644
--- a/tools/gpu/vk/VkTestContext.cpp
+++ b/tools/gpu/vk/VkTestContext.cpp
@@ -109,7 +109,8 @@
 class VkTestContextImpl : public sk_gpu_test::VkTestContext {
 public:
     static VkTestContext* Create() {
-        sk_sp<const GrVkBackendContext> backendContext(GrVkBackendContext::Create());
+        sk_sp<const GrVkBackendContext> backendContext(
+                GrVkBackendContext::Create(vkGetInstanceProcAddr, vkGetDeviceProcAddr));
         if (!backendContext) {
             return nullptr;
         }
diff --git a/tools/viewer/sk_app/VulkanWindowContext.cpp b/tools/viewer/sk_app/VulkanWindowContext.cpp
index 831c7ae..f483c27 100644
--- a/tools/viewer/sk_app/VulkanWindowContext.cpp
+++ b/tools/viewer/sk_app/VulkanWindowContext.cpp
@@ -41,7 +41,8 @@
     , fBackbuffers(nullptr) {
 
     // any config code here (particularly for msaa)?
-    fBackendContext.reset(GrVkBackendContext::Create(&fPresentQueueIndex, canPresent));
+    fBackendContext.reset(GrVkBackendContext::Create(vkGetInstanceProcAddr, vkGetDeviceProcAddr,
+                                                     &fPresentQueueIndex, canPresent));
 
     if (!(fBackendContext->fExtensions & kKHR_surface_GrVkExtensionFlag) ||
         !(fBackendContext->fExtensions & kKHR_swapchain_GrVkExtensionFlag)) {