Adding new extension GL_OVR_multiview

GL_OVR_multiview functions exactly the same as GL_OVR_multiview2.
All GL_OVR_multiview2 tests now also repeat the same test using GL_OVR_multiview

Bug: angleproject:3341
Change-Id: I7e5294fb6bbf7692535174a15da6a42e1b5fc4e2
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1575904
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/tests/test_utils/MultiviewTest.cpp b/src/tests/test_utils/MultiviewTest.cpp
index aa2f7aa..25d419d 100644
--- a/src/tests/test_utils/MultiviewTest.cpp
+++ b/src/tests/test_utils/MultiviewTest.cpp
@@ -14,11 +14,27 @@
 namespace angle
 {
 
-GLuint CreateSimplePassthroughProgram(int numViews)
+GLuint CreateSimplePassthroughProgram(int numViews, ExtensionName multiviewExtension)
 {
+    std::string ext;
+    switch (multiviewExtension)
+    {
+        case multiview:
+            ext = "GL_OVR_multiview";
+            break;
+        case multiview2:
+            ext = "GL_OVR_multiview2";
+            break;
+        default:
+            // Unknown extension.
+            break;
+    }
+
     const std::string vsSource =
         "#version 300 es\n"
-        "#extension GL_OVR_multiview2 : require\n"
+        "#extension " +
+        ext +
+        " : require\n"
         "layout(num_views = " +
         ToString(numViews) +
         ") in;\n"
@@ -29,16 +45,18 @@
         "   gl_Position = vec4(vPosition.xy, 0.0, 1.0);\n"
         "}\n";
 
-    constexpr char kFS[] =
+    const std::string fsSource =
         "#version 300 es\n"
-        "#extension GL_OVR_multiview2 : require\n"
+        "#extension " +
+        ext +
+        " : require\n"
         "precision mediump float;\n"
         "out vec4 col;\n"
         "void main()\n"
         "{\n"
         "   col = vec4(0,1,0,1);\n"
         "}\n";
-    return CompileProgram(vsSource.c_str(), kFS);
+    return CompileProgram(vsSource.c_str(), fsSource.c_str());
 }
 
 void CreateMultiviewBackingTextures(int samples,
@@ -210,22 +228,39 @@
     {
         os << "_vertex_shader";
     }
+    if (params.mMultiviewExtension)
+    {
+        os << "_multiview";
+    }
+    else
+    {
+        os << "_multiview2";
+    }
     return os;
 }
 
-MultiviewImplementationParams VertexShaderOpenGL(GLint majorVersion, GLint minorVersion)
+MultiviewImplementationParams VertexShaderOpenGL(GLint majorVersion,
+                                                 GLint minorVersion,
+                                                 ExtensionName multiviewExtension)
 {
-    return MultiviewImplementationParams(majorVersion, minorVersion, false, egl_platform::OPENGL());
+    return MultiviewImplementationParams(majorVersion, minorVersion, false, egl_platform::OPENGL(),
+                                         multiviewExtension);
 }
 
-MultiviewImplementationParams VertexShaderD3D11(GLint majorVersion, GLint minorVersion)
+MultiviewImplementationParams VertexShaderD3D11(GLint majorVersion,
+                                                GLint minorVersion,
+                                                ExtensionName multiviewExtension)
 {
-    return MultiviewImplementationParams(majorVersion, minorVersion, false, egl_platform::D3D11());
+    return MultiviewImplementationParams(majorVersion, minorVersion, false, egl_platform::D3D11(),
+                                         multiviewExtension);
 }
 
-MultiviewImplementationParams GeomShaderD3D11(GLint majorVersion, GLint minorVersion)
+MultiviewImplementationParams GeomShaderD3D11(GLint majorVersion,
+                                              GLint minorVersion,
+                                              ExtensionName multiviewExtension)
 {
-    return MultiviewImplementationParams(majorVersion, minorVersion, true, egl_platform::D3D11());
+    return MultiviewImplementationParams(majorVersion, minorVersion, true, egl_platform::D3D11(),
+                                         multiviewExtension);
 }
 
 void MultiviewTest::overrideWorkaroundsD3D(WorkaroundsD3D *workarounds)