Vulkan: disable VK_PRESENT_MODE_FIFO_KHR on Linux Intel

Causes random timeouts.

Bug: angleproject:2932, angleproject:3153
Change-Id: I69a200684afab9e00642850bfa8e8efd0da5ad1d
Reviewed-on: https://chromium-review.googlesource.com/c/1495229
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Jamie Madill <jmadill@google.com>
Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/RendererVk.cpp b/src/libANGLE/renderer/vulkan/RendererVk.cpp
index c4d0d2d..5142374 100644
--- a/src/libANGLE/renderer/vulkan/RendererVk.cpp
+++ b/src/libANGLE/renderer/vulkan/RendererVk.cpp
@@ -1213,6 +1213,11 @@
                        deviceExtensionNames) &&
         ExtensionFound(VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME, deviceExtensionNames);
 #endif
+
+    if (IsLinux() && IsIntel(mPhysicalDeviceProperties.vendorID))
+    {
+        mFeatures.disableFifoPresentMode = true;
+    }
 }
 
 void RendererVk::initPipelineCacheVkKey()
diff --git a/src/libANGLE/renderer/vulkan/SurfaceVk.cpp b/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
index ac5ff35..682208b 100644
--- a/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
+++ b/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
@@ -395,7 +395,7 @@
 
     // Select appropriate present mode based on vsync parameter.  Default to 1 (FIFO), though it
     // will get clamped to the min/max values specified at display creation time.
-    setSwapInterval(1);
+    setSwapInterval(renderer->getFeatures().disableFifoPresentMode ? 0 : 1);
 
     // Default to identity transform.
     mPreTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR;