Make sure that Vulkan debug callback ptr is non-null.

BUG=skia:5244
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1935163002

Review-Url: https://codereview.chromium.org/1935163002
diff --git a/src/gpu/vk/GrVkGpu.cpp b/src/gpu/vk/GrVkGpu.cpp
index 7178277..a852522 100644
--- a/src/gpu/vk/GrVkGpu.cpp
+++ b/src/gpu/vk/GrVkGpu.cpp
@@ -83,15 +83,13 @@
 GrVkGpu::GrVkGpu(GrContext* context, const GrContextOptions& options,
                  const GrVkBackendContext* backendCtx)
     : INHERITED(context)
-#ifdef ENABLE_VK_LAYERS
-    , fVkInstance(backendCtx->fInstance)
-#endif
     , fDevice(backendCtx->fDevice)
     , fQueue(backendCtx->fQueue)
     , fResourceProvider(this) {
     fBackendContext.reset(backendCtx);
 
 #ifdef ENABLE_VK_LAYERS
+    fCallback = nullptr;
     if (backendCtx->fExtensions & kEXT_debug_report_GrVkExtensionFlag) {
         // Setup callback creation information
         VkDebugReportCallbackCreateInfoEXT callbackCreateInfo;
@@ -106,8 +104,8 @@
         callbackCreateInfo.pUserData = nullptr;
 
         // Register the callback
-        GR_VK_CALL_ERRCHECK(this->vkInterface(), CreateDebugReportCallbackEXT(fVkInstance,
-                            &callbackCreateInfo, nullptr, &fCallback));
+        GR_VK_CALL_ERRCHECK(this->vkInterface(), CreateDebugReportCallbackEXT(
+                            backendCtx->fInstance, &callbackCreateInfo, nullptr, &fCallback));
     }
 #endif
 
@@ -141,7 +139,7 @@
 
     // wait for all commands to finish
     fResourceProvider.checkCommandBuffers();
-    SkDEBUGCODE(VkResult res =) VK_CALL(QueueWaitIdle(fQueue));
+    SkDEBUGCODE(VkResult res = ) VK_CALL(QueueWaitIdle(fQueue));
     // VK_ERROR_DEVICE_LOST is acceptable when tearing down (see 4.2.4 in spec)
     SkASSERT(VK_SUCCESS == res || VK_ERROR_DEVICE_LOST == res);
 
@@ -153,7 +151,10 @@
     shaderc_compiler_release(fCompiler);
 
 #ifdef ENABLE_VK_LAYERS
-    VK_CALL(DestroyDebugReportCallbackEXT(fVkInstance, fCallback, nullptr));
+    if (fCallback) {
+        VK_CALL(DestroyDebugReportCallbackEXT(fBackendContext->fInstance, fCallback, nullptr));
+        fCallback = nullptr;
+    }
 #endif
 }