Vulkan: Implement robustness extensions.

Device recovery is not possible but device loss can be tracked.

BUG=angleproject:2787

Change-Id: Ib94dd557b6b005a560b7a64275b176f7b1777211
Reviewed-on: https://chromium-review.googlesource.com/1194458
Reviewed-by: Tobin Ehlis <tobine@google.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/RendererVk.cpp b/src/libANGLE/renderer/vulkan/RendererVk.cpp
index cd474fd..dfb0619 100644
--- a/src/libANGLE/renderer/vulkan/RendererVk.cpp
+++ b/src/libANGLE/renderer/vulkan/RendererVk.cpp
@@ -299,6 +299,7 @@
       mDevice(VK_NULL_HANDLE),
       mLastCompletedQueueSerial(mQueueSerialFactory.generate()),
       mCurrentQueueSerial(mQueueSerialFactory.generate()),
+      mDeviceLost(false),
       mPipelineCacheVkUpdateTimeout(kPipelineCacheVkUpdatePeriod)
 {
 }
@@ -355,6 +356,16 @@
     mPhysicalDevice = VK_NULL_HANDLE;
 }
 
+void RendererVk::markDeviceLost()
+{
+    mDeviceLost = true;
+}
+
+bool RendererVk::isDeviceLost() const
+{
+    return mDeviceLost;
+}
+
 angle::Result RendererVk::initialize(DisplayVk *displayVk,
                                      const egl::AttributeMap &attribs,
                                      const char *wsiName)