vulkan: Request VK_GOOGLE_display_timing if supported

This can later be used to integrate with libraries like Swappy from the
Android Game SDK.

Bug: 42241264
Change-Id: I04c5c2ffe864bb3325cf3ab03e059e7468da35bc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/189320
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
diff --git a/src/dawn/native/vulkan/DeviceVk.cpp b/src/dawn/native/vulkan/DeviceVk.cpp
index b9e68ee..73285c4 100644
--- a/src/dawn/native/vulkan/DeviceVk.cpp
+++ b/src/dawn/native/vulkan/DeviceVk.cpp
@@ -377,7 +377,7 @@
 ResultOrError<VulkanDeviceKnobs> Device::CreateDevice(VkPhysicalDevice vkPhysicalDevice) {
     VulkanDeviceKnobs usedKnobs = {};
 
-    // Default to asking for all avilable known extensions.
+    // Default to asking for all available known extensions.
     usedKnobs.extensions = mDeviceInfo.extensions;
 
     // However only request the extensions that haven't been promoted in the device's apiVersion
diff --git a/src/dawn/native/vulkan/VulkanExtensions.cpp b/src/dawn/native/vulkan/VulkanExtensions.cpp
index 8f0634a..b550523 100644
--- a/src/dawn/native/vulkan/VulkanExtensions.cpp
+++ b/src/dawn/native/vulkan/VulkanExtensions.cpp
@@ -181,6 +181,7 @@
     {DeviceExt::Robustness2, "VK_EXT_robustness2", NeverPromoted},
     {DeviceExt::ShaderSubgroupUniformControlFlow, "VK_KHR_shader_subgroup_uniform_control_flow",
      NeverPromoted},
+    {DeviceExt::DisplayTiming, "VK_GOOGLE_display_timing", NeverPromoted},
 
     {DeviceExt::ExternalMemoryAndroidHardwareBuffer,
      "VK_ANDROID_external_memory_android_hardware_buffer", NeverPromoted},
@@ -325,6 +326,10 @@
                 hasDependencies = HasDep(DeviceExt::GetPhysicalDeviceProperties2);
                 break;
 
+            case DeviceExt::DisplayTiming:
+                hasDependencies = HasDep(DeviceExt::Swapchain);
+                break;
+
             case DeviceExt::EnumCount:
                 DAWN_UNREACHABLE();
         }
diff --git a/src/dawn/native/vulkan/VulkanExtensions.h b/src/dawn/native/vulkan/VulkanExtensions.h
index cce482a..1a83f3d 100644
--- a/src/dawn/native/vulkan/VulkanExtensions.h
+++ b/src/dawn/native/vulkan/VulkanExtensions.h
@@ -120,6 +120,7 @@
     QueueFamilyForeign,
     Robustness2,
     ShaderSubgroupUniformControlFlow,
+    DisplayTiming,
 
     // External* extensions
     ExternalMemoryAndroidHardwareBuffer,