Vulkan: Add display creation, test and extension.

With this CL we have the ability to create Vulkan test configs and run
basic tests, although the only thing that works is creating a Vulkan
Renderer using the extension.

BUG=angleproject:1319

Change-Id: I8ad17bba01241334be7da16e68fea38762ca6a20
Reviewed-on: https://chromium-review.googlesource.com/367750
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/tests/gl_tests/RendererTest.cpp b/src/tests/gl_tests/RendererTest.cpp
index b9c745f..2aeafd1 100644
--- a/src/tests/gl_tests/RendererTest.cpp
+++ b/src/tests/gl_tests/RendererTest.cpp
@@ -106,6 +106,11 @@
         ASSERT_TRUE(IsNULL());
     }
 
+    if (platform.renderer == EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE)
+    {
+        ASSERT_TRUE(IsVulkan());
+    }
+
     EGLint glesMajorVersion = GetParam().majorVersion;
     EGLint glesMinorVersion = GetParam().minorVersion;
 
@@ -126,6 +131,9 @@
     {
         FAIL() << "Unhandled GL ES client version.";
     }
+
+    ASSERT_GL_NO_ERROR();
+    ASSERT_EGL_SUCCESS();
 }
 
 // Perform a simple operation (clear and read pixels) to verify the device is working
@@ -137,6 +145,13 @@
         return;
     }
 
+    // TODO(jmadil): Vulkan clear.
+    if (IsVulkan())
+    {
+        std::cout << "Vulkan clears not yet implemented" << std::endl;
+        return;
+    }
+
     glClearColor(0.0f, 1.0f, 0.0f, 1.0f);
     glClear(GL_COLOR_BUFFER_BIT);
     EXPECT_PIXEL_EQ(0, 0, 0, 255, 0, 255);
@@ -229,5 +244,9 @@
                        // All ES version on top of the NULL backend
                        ES2_NULL(),
                        ES3_NULL(),
-                       ES31_NULL());
-}
+                       ES31_NULL(),
+
+                       // ES on top of Vulkan
+                       ES2_VULKAN(),
+                       ES3_VULKAN());
+}  // anonymous namespace