GL_ANGLE_multiview has been renamed to GL_OVR_multiview2.

changes include:
1) GL_OVR_multiview to GL_OVR_multiview2 extension directive change
2) Removal of all references to side by side. We no longer support multiple views in a single 2DTexture. Only 2DTextureArray's are supported
3) WebGL 2 (ES3) is required for multiview

Bug: angleproject:3341
Change-Id: Ie0c1d21d7610f8feebdb2e4d01c6947f57e69328
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1552023
Commit-Queue: Rafael Cintron <rafael.cintron@microsoft.com>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/tests/gl_tests/FramebufferMultiviewTest.cpp b/src/tests/gl_tests/FramebufferMultiviewTest.cpp
index 420b8ae..ad7dc48 100644
--- a/src/tests/gl_tests/FramebufferMultiviewTest.cpp
+++ b/src/tests/gl_tests/FramebufferMultiviewTest.cpp
@@ -33,144 +33,6 @@
     FramebufferMultiviewTest() : MultiviewTest() {}
 };
 
-class FramebufferMultiviewSideBySideClearTest : public FramebufferMultiviewTest
-{
-  protected:
-    FramebufferMultiviewSideBySideClearTest()
-        : mMultiviewFBO(0u), mNonMultiviewFBO(0u), mDepthTex(0u), mDepthStencilTex(0u)
-    {}
-
-    void TearDown() override
-    {
-        if (mMultiviewFBO != 0)
-        {
-            glDeleteFramebuffers(1, &mMultiviewFBO);
-            mMultiviewFBO = 0u;
-        }
-        if (mNonMultiviewFBO != 0)
-        {
-            glDeleteTextures(1, &mNonMultiviewFBO);
-            mNonMultiviewFBO = 0u;
-        }
-        if (!mColorTex.empty())
-        {
-            GLsizei textureCount = static_cast<GLsizei>(mColorTex.size());
-            glDeleteTextures(textureCount, mColorTex.data());
-            mColorTex.clear();
-        }
-        if (mDepthStencilTex != 0u)
-        {
-            glDeleteTextures(1, &mDepthStencilTex);
-            mDepthStencilTex = 0u;
-        }
-        if (mDepthTex != 0u)
-        {
-            glDeleteTextures(1, &mDepthTex);
-            mDepthTex = 0u;
-        }
-        MultiviewTest::TearDown();
-    }
-
-    void initializeFBOs(size_t numColorBuffers, bool stencil, bool depth)
-    {
-        ASSERT_TRUE(mColorTex.empty());
-        ASSERT_EQ(0u, mDepthStencilTex);
-        ASSERT_EQ(0u, mDepthTex);
-        const std::vector<GLenum> &drawBuffers = GetDrawBufferRange(numColorBuffers);
-
-        // Generate textures.
-        mColorTex.resize(numColorBuffers);
-        GLsizei textureCount = static_cast<GLsizei>(mColorTex.size());
-        glGenTextures(textureCount, mColorTex.data());
-        if (stencil)
-        {
-            glGenTextures(1, &mDepthStencilTex);
-        }
-        else if (depth)
-        {
-            glGenTextures(1, &mDepthTex);
-        }
-
-        CreateMultiviewBackingTextures(GL_FRAMEBUFFER_MULTIVIEW_SIDE_BY_SIDE_ANGLE, 0, 2, 2, 2,
-                                       mColorTex, mDepthTex, mDepthStencilTex);
-
-        glGenFramebuffers(1, &mMultiviewFBO);
-        glGenFramebuffers(1, &mNonMultiviewFBO);
-
-        // Generate multiview fbo and attach textures.
-        const GLint kViewportOffsets[4] = {1, 0, 3, 0};
-        glBindFramebuffer(GL_FRAMEBUFFER, mMultiviewFBO);
-        const size_t kBase = static_cast<size_t>(GL_COLOR_ATTACHMENT0);
-        for (size_t i = 0u; i < numColorBuffers; ++i)
-        {
-            glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER,
-                                                         static_cast<GLenum>(kBase + i),
-                                                         mColorTex[i], 0, 2, &kViewportOffsets[0]);
-        }
-
-        if (stencil)
-        {
-            glFramebufferTextureMultiviewSideBySideANGLE(
-                GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, mDepthStencilTex, 0, 2,
-                &kViewportOffsets[0]);
-        }
-        else if (depth)
-        {
-            glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
-                                                         mDepthTex, 0, 2, &kViewportOffsets[0]);
-        }
-        glDrawBuffers(static_cast<GLsizei>(drawBuffers.size()), drawBuffers.data());
-
-        // Generate non-multiview fbo and attach textures.
-        glBindFramebuffer(GL_FRAMEBUFFER, mNonMultiviewFBO);
-        for (size_t i = 0u; i < numColorBuffers; ++i)
-        {
-            glFramebufferTexture2D(GL_FRAMEBUFFER, static_cast<GLenum>(kBase + i), GL_TEXTURE_2D,
-                                   mColorTex[i], 0);
-        }
-        if (stencil)
-        {
-            glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D,
-                                   mDepthStencilTex, 0);
-        }
-        else if (depth)
-        {
-            glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, mDepthTex,
-                                   0);
-        }
-        glDrawBuffers(static_cast<GLsizei>(drawBuffers.size()), drawBuffers.data());
-
-        ASSERT_GL_NO_ERROR();
-    }
-
-    void checkAlternatingColumnsOfRedAndGreenInFBO()
-    {
-        // column 0
-        EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::red);
-        EXPECT_PIXEL_COLOR_EQ(0, 1, GLColor::red);
-
-        // column 1
-        EXPECT_PIXEL_COLOR_EQ(1, 0, GLColor::green);
-        EXPECT_PIXEL_COLOR_EQ(1, 1, GLColor::green);
-
-        // column 2
-        EXPECT_PIXEL_COLOR_EQ(2, 0, GLColor::red);
-        EXPECT_PIXEL_COLOR_EQ(2, 1, GLColor::red);
-
-        // column 3
-        EXPECT_PIXEL_COLOR_EQ(3, 0, GLColor::green);
-        EXPECT_PIXEL_COLOR_EQ(3, 1, GLColor::green);
-    }
-
-    GLuint mMultiviewFBO;
-    GLuint mNonMultiviewFBO;
-
-  private:
-    std::vector<GLuint> mColorTex;
-    GLuint mDepthTex;
-    GLuint mDepthStencilTex;
-};
-
 class FramebufferMultiviewLayeredClearTest : public FramebufferMultiviewTest
 {
   protected:
@@ -235,15 +97,15 @@
             glGenTextures(1, &mDepthTex);
         }
 
-        CreateMultiviewBackingTextures(GL_FRAMEBUFFER_MULTIVIEW_LAYERED_ANGLE, 0, width, height,
-                                       numLayers, mColorTex, mDepthTex, mDepthStencilTex);
+        CreateMultiviewBackingTextures(0, width, height, numLayers, mColorTex, mDepthTex,
+                                       mDepthStencilTex);
 
         glGenFramebuffers(1, &mMultiviewFBO);
 
         // Generate multiview FBO and attach textures.
         glBindFramebuffer(GL_FRAMEBUFFER, mMultiviewFBO);
-        AttachMultiviewTextures(GL_FRAMEBUFFER, GL_FRAMEBUFFER_MULTIVIEW_LAYERED_ANGLE, width,
-                                numViews, baseViewIndex, mColorTex, mDepthTex, mDepthStencilTex);
+        AttachMultiviewTextures(GL_FRAMEBUFFER, width, numViews, baseViewIndex, mColorTex,
+                                mDepthTex, mDepthStencilTex);
 
         const auto &drawBuffers = GetDrawBufferRange(numColorAttachments);
         glDrawBuffers(numColorAttachments, drawBuffers.data());
@@ -298,7 +160,7 @@
     GLuint mDepthStencilTex;
 };
 
-// Test that the framebuffer tokens introduced by ANGLE_multiview can be used to query the
+// Test that the framebuffer tokens introduced by OVR_multiview2 can be used to query the
 // framebuffer state and that their corresponding default values are correctly set.
 TEST_P(FramebufferMultiviewTest, DefaultState)
 {
@@ -314,36 +176,21 @@
 
     GLint numViews = -1;
     glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_ANGLE,
+                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR,
                                           &numViews);
     ASSERT_GL_NO_ERROR();
     EXPECT_EQ(1, numViews);
 
     GLint baseViewIndex = -1;
     glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_ANGLE,
+                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR,
                                           &baseViewIndex);
     ASSERT_GL_NO_ERROR();
     EXPECT_EQ(0, baseViewIndex);
-
-    GLint multiviewLayout = GL_FRAMEBUFFER_MULTIVIEW_SIDE_BY_SIDE_ANGLE;
-    glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_MULTIVIEW_LAYOUT_ANGLE,
-                                          &multiviewLayout);
-    ASSERT_GL_NO_ERROR();
-    EXPECT_EQ(GL_NONE, multiviewLayout);
-
-    GLint viewportOffsets[2] = {-1, -1};
-    glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_VIEWPORT_OFFSETS_ANGLE,
-                                          &viewportOffsets[0]);
-    ASSERT_GL_NO_ERROR();
-    EXPECT_EQ(0, viewportOffsets[0]);
-    EXPECT_EQ(0, viewportOffsets[1]);
 }
 
-// Test that without having the ANGLE_multiview extension, querying for the framebuffer state using
-// the ANGLE_multiview tokens results in an INVALID_ENUM error.
+// Test that without having the OVR_multiview2 extension, querying for the framebuffer state using
+// the OVR_multiview2 tokens results in an INVALID_ENUM error.
 TEST_P(FramebufferMultiviewTest, NegativeFramebufferStateQueries)
 {
     GLFramebuffer fbo;
@@ -356,57 +203,18 @@
 
     GLint numViews = -1;
     glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_ANGLE,
+                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR,
                                           &numViews);
     EXPECT_GL_ERROR(GL_INVALID_ENUM);
 
     GLint baseViewIndex = -1;
     glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_ANGLE,
+                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR,
                                           &baseViewIndex);
     EXPECT_GL_ERROR(GL_INVALID_ENUM);
-
-    GLint multiviewLayout = GL_FRAMEBUFFER_MULTIVIEW_SIDE_BY_SIDE_ANGLE;
-    glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_MULTIVIEW_LAYOUT_ANGLE,
-                                          &multiviewLayout);
-    EXPECT_GL_ERROR(GL_INVALID_ENUM);
-
-    GLint viewportOffsets[2] = {-1, -1};
-    glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_VIEWPORT_OFFSETS_ANGLE,
-                                          &viewportOffsets[0]);
-    EXPECT_GL_ERROR(GL_INVALID_ENUM);
 }
 
-// Test that the correct errors are generated whenever glFramebufferTextureMultiviewSideBySideANGLE
-// is called with invalid arguments.
-TEST_P(FramebufferMultiviewTest, InvalidMultiviewSideBySideArguments)
-{
-    ANGLE_SKIP_TEST_IF(!requestMultiviewExtension());
-
-    GLFramebuffer fbo;
-    glBindFramebuffer(GL_FRAMEBUFFER, fbo);
-
-    GLTexture tex;
-    glBindTexture(GL_TEXTURE_2D, tex);
-    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
-
-    // Negative offsets.
-    GLint viewportOffsets[2] = {-1};
-    glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 1,
-                                                 &viewportOffsets[0]);
-    EXPECT_GL_ERROR(GL_INVALID_VALUE);
-
-    // Negative number of views.
-    viewportOffsets[0] = 0;
-    viewportOffsets[1] = 0;
-    glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, -1,
-                                                 &viewportOffsets[0]);
-    EXPECT_GL_ERROR(GL_INVALID_VALUE);
-}
-
-// Test that the correct errors are generated whenever glFramebufferTextureMultiviewLayeredANGLE is
+// Test that the correct errors are generated whenever glFramebufferTextureMultiviewOVR is
 // called with invalid arguments.
 TEST_P(FramebufferMultiviewTest, InvalidMultiviewLayeredArguments)
 {
@@ -421,18 +229,18 @@
     ASSERT_GL_NO_ERROR();
 
     // Negative base view index.
-    glFramebufferTextureMultiviewLayeredANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, -1, 1);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, -1, 1);
     EXPECT_GL_ERROR(GL_INVALID_VALUE);
 
     // baseViewIndex + numViews is greater than MAX_TEXTURE_LAYERS.
     GLint maxTextureLayers = 0;
     glGetIntegerv(GL_MAX_ARRAY_TEXTURE_LAYERS, &maxTextureLayers);
-    glFramebufferTextureMultiviewLayeredANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0,
-                                              maxTextureLayers, 1);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, maxTextureLayers,
+                                     1);
     EXPECT_GL_ERROR(GL_INVALID_VALUE);
 }
 
-// Test that an INVALID_OPERATION error is generated whenever the ANGLE_multiview extension is not
+// Test that an INVALID_OPERATION error is generated whenever the OVR_multiview2 extension is not
 // available.
 TEST_P(FramebufferMultiviewTest, ExtensionNotAvailableCheck)
 {
@@ -444,199 +252,10 @@
     glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
 
     ASSERT_GL_NO_ERROR();
-    const GLint kViewportOffsets[2] = {0};
-    glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 1,
-                                                 &kViewportOffsets[0]);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 1, 1);
     EXPECT_GL_ERROR(GL_INVALID_OPERATION);
 }
 
-// Test that glFramebufferTextureMultiviewSideBySideANGLE modifies the internal multiview state.
-TEST_P(FramebufferMultiviewTest, ModifySideBySideState)
-{
-    ANGLE_SKIP_TEST_IF(!requestMultiviewExtension());
-
-    GLFramebuffer fbo;
-    glBindFramebuffer(GL_FRAMEBUFFER, fbo);
-
-    GLTexture tex;
-    glBindTexture(GL_TEXTURE_2D, tex);
-    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
-
-    const GLint kViewportOffsets[4] = {0, 0, 1, 2};
-    glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 2,
-                                                 &kViewportOffsets[0]);
-    ASSERT_GL_NO_ERROR();
-
-    GLint numViews = -1;
-    glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_ANGLE,
-                                          &numViews);
-    ASSERT_GL_NO_ERROR();
-    EXPECT_EQ(2, numViews);
-
-    GLint baseViewIndex = -1;
-    glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_ANGLE,
-                                          &baseViewIndex);
-    ASSERT_GL_NO_ERROR();
-    EXPECT_EQ(0, baseViewIndex);
-
-    GLint multiviewLayout = GL_NONE;
-    glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_MULTIVIEW_LAYOUT_ANGLE,
-                                          &multiviewLayout);
-    ASSERT_GL_NO_ERROR();
-    EXPECT_EQ(GL_FRAMEBUFFER_MULTIVIEW_SIDE_BY_SIDE_ANGLE, multiviewLayout);
-
-    GLint internalViewportOffsets[4] = {-1};
-    glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_VIEWPORT_OFFSETS_ANGLE,
-                                          &internalViewportOffsets[0]);
-    ASSERT_GL_NO_ERROR();
-    for (size_t i = 0u; i < 4u; ++i)
-    {
-        EXPECT_EQ(kViewportOffsets[i], internalViewportOffsets[i]);
-    }
-}
-
-// Test framebuffer completeness status of a side-by-side framebuffer with color and depth
-// attachments.
-TEST_P(FramebufferMultiviewTest, IncompleteViewTargetsSideBySide)
-{
-    ANGLE_SKIP_TEST_IF(!requestMultiviewExtension());
-
-    GLFramebuffer fbo;
-    glBindFramebuffer(GL_FRAMEBUFFER, fbo);
-
-    GLTexture tex;
-    glBindTexture(GL_TEXTURE_2D, tex);
-    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
-
-    const GLint kViewportOffsets[4]      = {0, 0, 2, 0};
-    const GLint kOtherViewportOffsets[4] = {2, 0, 4, 0};
-
-    // Set the 0th attachment and keep it as it is till the end of the test. The 1st or depth
-    // attachment will be modified to change the framebuffer's status.
-    glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 2,
-                                                 &kViewportOffsets[0]);
-    ASSERT_GL_NO_ERROR();
-
-    // Color attachment 1.
-    {
-        GLTexture otherTex;
-        glBindTexture(GL_TEXTURE_2D, otherTex);
-        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
-
-        // Test framebuffer completeness when the number of views differ.
-        glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, otherTex,
-                                                     0, 1, &kViewportOffsets[0]);
-        ASSERT_GL_NO_ERROR();
-        EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_ANGLE,
-                         glCheckFramebufferStatus(GL_FRAMEBUFFER));
-
-        // Test framebuffer completeness when the viewport offsets differ.
-        glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, otherTex,
-                                                     0, 2, &kOtherViewportOffsets[0]);
-        ASSERT_GL_NO_ERROR();
-        EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_ANGLE,
-                         glCheckFramebufferStatus(GL_FRAMEBUFFER));
-
-        // Test framebuffer completeness when attachment layouts differ.
-        glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, GL_TEXTURE_2D, otherTex, 0);
-        ASSERT_GL_NO_ERROR();
-        EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_ANGLE,
-                         glCheckFramebufferStatus(GL_FRAMEBUFFER));
-
-        // Test that framebuffer is complete when the number of views, viewport offsets and layouts
-        // are the same.
-        glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, otherTex,
-                                                     0, 2, &kViewportOffsets[0]);
-        ASSERT_GL_NO_ERROR();
-        EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
-
-        // Reset attachment 1
-        glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, 0, 0, 1,
-                                                     &kViewportOffsets[0]);
-    }
-
-    // Depth attachment.
-    {
-        GLTexture depthTex;
-        glBindTexture(GL_TEXTURE_2D, depthTex);
-        glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT32F, 1, 1, 0, GL_DEPTH_COMPONENT, GL_FLOAT,
-                     nullptr);
-
-        // Test framebuffer completeness when the number of views differ.
-        glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, depthTex,
-                                                     0, 1, &kViewportOffsets[0]);
-        ASSERT_GL_NO_ERROR();
-        EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_ANGLE,
-                         glCheckFramebufferStatus(GL_FRAMEBUFFER));
-
-        // Test framebuffer completeness when the viewport offsets differ.
-        glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, depthTex,
-                                                     0, 2, &kOtherViewportOffsets[0]);
-        ASSERT_GL_NO_ERROR();
-        EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_ANGLE,
-                         glCheckFramebufferStatus(GL_FRAMEBUFFER));
-
-        // Test framebuffer completeness when attachment layouts differ.
-        glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, depthTex, 0);
-        ASSERT_GL_NO_ERROR();
-        EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_ANGLE,
-                         glCheckFramebufferStatus(GL_FRAMEBUFFER));
-
-        // Test that framebuffer is complete when the number of views, viewport offsets and layouts
-        // are the same.
-        glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, depthTex,
-                                                     0, 2, &kViewportOffsets[0]);
-        ASSERT_GL_NO_ERROR();
-        EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
-    }
-}
-
-// Test that the active read framebuffer cannot be read from through glCopyTex* if it has multi-view
-// attachments with a side-by-side layout.
-TEST_P(FramebufferMultiviewTest, InvalidCopyTex)
-{
-    ANGLE_SKIP_TEST_IF(!requestMultiviewExtension());
-
-    GLFramebuffer fbo;
-    glBindFramebuffer(GL_FRAMEBUFFER, fbo);
-
-    GLTexture tex;
-    glBindTexture(GL_TEXTURE_2D, tex);
-    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
-
-    const GLint kViewportOffsets[2] = {0};
-    glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 1,
-                                                 &kViewportOffsets[0]);
-    ASSERT_GL_NO_ERROR();
-
-    // Test glCopyTexImage2D and glCopyTexSubImage2D.
-    {
-        GLTexture tex2;
-        glBindTexture(GL_TEXTURE_2D, tex2);
-        glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
-
-        glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 0, 0, 1, 1, 0);
-        EXPECT_GL_ERROR(GL_INVALID_FRAMEBUFFER_OPERATION);
-
-        glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, 1, 1);
-        EXPECT_GL_ERROR(GL_INVALID_FRAMEBUFFER_OPERATION);
-    }
-
-    // Test glCopyTexSubImage3D.
-    {
-        GLTexture tex2;
-        glBindTexture(GL_TEXTURE_3D, tex2);
-        glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA8, 1, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
-
-        glCopyTexSubImage3D(GL_TEXTURE_3D, 0, 0, 0, 0, 0, 0, 1, 1);
-        EXPECT_GL_ERROR(GL_INVALID_FRAMEBUFFER_OPERATION);
-    }
-}
-
 // Test that the active read framebuffer can be read with glCopyTex* if it only has one layered
 // view.
 TEST_P(FramebufferMultiviewTest, CopyTex)
@@ -650,7 +269,7 @@
     glBindTexture(GL_TEXTURE_2D_ARRAY, tex);
     glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA8, 1, 1, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
 
-    glFramebufferTextureMultiviewLayeredANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 0, 1);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 0, 1);
     ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
     ASSERT_GL_NO_ERROR();
 
@@ -702,43 +321,6 @@
     }
 }
 
-// Test that glBlitFramebuffer generates an invalid framebuffer operation when either the current
-// draw framebuffer, or current read framebuffer have multiview attachments with a side-by-side
-// layout.
-TEST_P(FramebufferMultiviewTest, InvalidBlit)
-{
-    ANGLE_SKIP_TEST_IF(!requestMultiviewExtension());
-
-    GLFramebuffer fbo;
-    glBindFramebuffer(GL_FRAMEBUFFER, fbo);
-
-    GLTexture tex;
-    glBindTexture(GL_TEXTURE_2D, tex);
-    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
-
-    const GLint kViewportOffsets[2] = {0};
-    glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 1,
-                                                 &kViewportOffsets[0]);
-    ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
-    ASSERT_GL_NO_ERROR();
-
-    // Blit with the active read framebuffer having multiview attachments.
-    {
-        glBindFramebuffer(GL_READ_FRAMEBUFFER, fbo);
-        glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
-        glBlitFramebuffer(0, 0, 1, 1, 0, 0, 1, 1, GL_COLOR_BUFFER_BIT, GL_NEAREST);
-        EXPECT_GL_ERROR(GL_INVALID_FRAMEBUFFER_OPERATION);
-    }
-
-    // Blit with the active draw framebuffer having multiview attachments.
-    {
-        glBindFramebuffer(GL_READ_FRAMEBUFFER, 0);
-        glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo);
-        glBlitFramebuffer(0, 0, 1, 1, 0, 0, 1, 1, GL_COLOR_BUFFER_BIT, GL_NEAREST);
-        EXPECT_GL_ERROR(GL_INVALID_FRAMEBUFFER_OPERATION);
-    }
-}
-
 // Test that glBlitFramebuffer succeeds if the current read framebuffer has just one layered view.
 TEST_P(FramebufferMultiviewTest, Blit)
 {
@@ -754,7 +336,7 @@
     glBindTexture(GL_TEXTURE_2D_ARRAY, tex);
     glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA8, 1, 1, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
 
-    glFramebufferTextureMultiviewLayeredANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 0, 1);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 0, 1);
     ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
     ASSERT_GL_NO_ERROR();
 
@@ -770,30 +352,6 @@
     EXPECT_PIXEL_COLOR_EQ(0, 0, GLColor::green);
 }
 
-// Test that glReadPixels generates an invalid framebuffer operation error if the current read
-// framebuffer has a side-by-side multi-view layout.
-TEST_P(FramebufferMultiviewTest, InvalidReadPixels)
-{
-    ANGLE_SKIP_TEST_IF(!requestMultiviewExtension());
-
-    GLFramebuffer fbo;
-    glBindFramebuffer(GL_FRAMEBUFFER, fbo);
-
-    GLTexture tex;
-    glBindTexture(GL_TEXTURE_2D, tex);
-    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
-
-    const GLint kViewportOffsets[2] = {0};
-    glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 1,
-                                                 &kViewportOffsets[0]);
-    ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
-    ASSERT_GL_NO_ERROR();
-
-    GLColor pixelColor;
-    glReadPixels(0, 0, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &pixelColor.R);
-    EXPECT_GL_ERROR(GL_INVALID_FRAMEBUFFER_OPERATION);
-}
-
 // Test that glReadPixels succeeds from a layered multiview framebuffer with just one view.
 TEST_P(FramebufferMultiviewTest, ReadPixels)
 {
@@ -806,7 +364,7 @@
     glBindTexture(GL_TEXTURE_2D_ARRAY, tex);
     glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA8, 1, 1, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
 
-    glFramebufferTextureMultiviewLayeredANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 0, 1);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 0, 1);
     ASSERT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
     ASSERT_GL_NO_ERROR();
 
@@ -819,33 +377,7 @@
     EXPECT_COLOR_NEAR(GLColor::green, pixelColor, 2);
 }
 
-// Test that glClear clears only the contents of each view if the scissor test is enabled.
-TEST_P(FramebufferMultiviewSideBySideClearTest, ColorBufferClear)
-{
-    ANGLE_SKIP_TEST_IF(!requestMultiviewExtension());
-
-    initializeFBOs(1, false, false);
-
-    // Clear the contents of the texture.
-    glBindFramebuffer(GL_FRAMEBUFFER, mNonMultiviewFBO);
-    glClearColor(1, 0, 0, 1);
-    glClear(GL_COLOR_BUFFER_BIT);
-
-    // Bind and specify viewport/scissor dimensions for each view.
-    glBindFramebuffer(GL_FRAMEBUFFER, mMultiviewFBO);
-    glViewport(0, 0, 1, 2);
-    glScissor(0, 0, 1, 2);
-    glEnable(GL_SCISSOR_TEST);
-
-    glClearColor(0, 1, 0, 1);
-    glClear(GL_COLOR_BUFFER_BIT);
-
-    glBindFramebuffer(GL_FRAMEBUFFER, mNonMultiviewFBO);
-
-    checkAlternatingColumnsOfRedAndGreenInFBO();
-}
-
-// Test that glFramebufferTextureMultiviewLayeredANGLE modifies the internal multiview state.
+// Test that glFramebufferTextureMultiviewOVR modifies the internal multiview state.
 TEST_P(FramebufferMultiviewTest, ModifyLayeredState)
 {
     ANGLE_SKIP_TEST_IF(!requestMultiviewExtension());
@@ -858,37 +390,22 @@
     glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA8, 1, 1, 4, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
     ASSERT_GL_NO_ERROR();
 
-    glFramebufferTextureMultiviewLayeredANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 1, 2);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 1, 2);
     ASSERT_GL_NO_ERROR();
 
     GLint numViews = -1;
     glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_ANGLE,
+                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR,
                                           &numViews);
     ASSERT_GL_NO_ERROR();
     EXPECT_EQ(2, numViews);
 
     GLint baseViewIndex = -1;
     glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_ANGLE,
+                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR,
                                           &baseViewIndex);
     ASSERT_GL_NO_ERROR();
     EXPECT_EQ(1, baseViewIndex);
-
-    GLint multiviewLayout = GL_NONE;
-    glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_MULTIVIEW_LAYOUT_ANGLE,
-                                          &multiviewLayout);
-    ASSERT_GL_NO_ERROR();
-    EXPECT_EQ(GL_FRAMEBUFFER_MULTIVIEW_LAYERED_ANGLE, multiviewLayout);
-
-    GLint internalViewportOffsets[2] = {-1};
-    glGetFramebufferAttachmentParameteriv(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                          GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_VIEWPORT_OFFSETS_ANGLE,
-                                          &internalViewportOffsets[0]);
-    ASSERT_GL_NO_ERROR();
-    EXPECT_EQ(0, internalViewportOffsets[0]);
-    EXPECT_EQ(0, internalViewportOffsets[1]);
 }
 
 // Test framebuffer completeness status of a layered framebuffer with color attachments.
@@ -905,7 +422,7 @@
 
     // Set the 0th attachment and keep it as it is till the end of the test. The 1st color
     // attachment will be modified to change the framebuffer's status.
-    glFramebufferTextureMultiviewLayeredANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 0, 2);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, tex, 0, 0, 2);
     ASSERT_GL_NO_ERROR();
 
     GLTexture otherTexLayered;
@@ -913,220 +430,26 @@
     glTexImage3D(GL_TEXTURE_2D_ARRAY, 0, GL_RGBA8, 1, 1, 4, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
 
     // Test framebuffer completeness when the base view index differs.
-    glFramebufferTextureMultiviewLayeredANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, otherTexLayered,
-                                              0, 1, 2);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, otherTexLayered, 0, 1,
+                                     2);
     ASSERT_GL_NO_ERROR();
-    EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_ANGLE,
-                     glCheckFramebufferStatus(GL_FRAMEBUFFER));
-
-    // Test framebuffer completeness when the 1st attachment has a side-by-side layout.
-    const int kViewportOffsets[4] = {0, 0, 0, 0};
-    GLTexture otherTex2D;
-    glBindTexture(GL_TEXTURE_2D, otherTex2D);
-    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, 4, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr);
-    glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, otherTex2D,
-                                                 0, 2, kViewportOffsets);
-    ASSERT_GL_NO_ERROR();
-    EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_ANGLE,
+    EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR,
                      glCheckFramebufferStatus(GL_FRAMEBUFFER));
 
     // Test framebuffer completeness when the 1st attachment has a non-multiview layout.
     glFramebufferTextureLayer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, otherTexLayered, 0, 0);
     ASSERT_GL_NO_ERROR();
-    EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_ANGLE,
+    EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR,
                      glCheckFramebufferStatus(GL_FRAMEBUFFER));
 
     // Test that framebuffer is complete when the number of views, base view index and layouts are
     // the same.
-    glFramebufferTextureMultiviewLayeredANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, otherTexLayered,
-                                              0, 0, 2);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, otherTexLayered, 0, 0,
+                                     2);
     ASSERT_GL_NO_ERROR();
     EXPECT_GLENUM_EQ(GL_FRAMEBUFFER_COMPLETE, glCheckFramebufferStatus(GL_FRAMEBUFFER));
 }
 
-// Test that glClear clears all of the contents if the scissor test is disabled.
-TEST_P(FramebufferMultiviewSideBySideClearTest, ClearWithDisabledScissorTest)
-{
-    ANGLE_SKIP_TEST_IF(!requestMultiviewExtension());
-
-    initializeFBOs(1, false, false);
-
-    // Clear the contents of the texture.
-    glBindFramebuffer(GL_FRAMEBUFFER, mNonMultiviewFBO);
-    glClearColor(0, 0, 0, 1);
-    glClear(GL_COLOR_BUFFER_BIT);
-
-    // Bind and specify viewport/scissor dimensions for each view.
-    glBindFramebuffer(GL_FRAMEBUFFER, mMultiviewFBO);
-    glViewport(0, 0, 1, 2);
-    glScissor(0, 0, 1, 2);
-
-    glClearColor(1, 0, 0, 1);
-    glClear(GL_COLOR_BUFFER_BIT);
-
-    glBindFramebuffer(GL_FRAMEBUFFER, mNonMultiviewFBO);
-
-    for (int i = 0; i < 4; ++i)
-    {
-        for (int j = 0; j < 2; ++j)
-        {
-            EXPECT_PIXEL_COLOR_EQ(i, j, GLColor::red);
-        }
-    }
-}
-
-// Test that glClear clears the depth buffer of each view.
-TEST_P(FramebufferMultiviewSideBySideClearTest, DepthBufferClear)
-{
-    ANGLE_SKIP_TEST_IF(!requestMultiviewExtension());
-
-    // Create program to draw a quad.
-    constexpr char kVS[] =
-        "#version 300 es\n"
-        "in vec3 vPos;\n"
-        "void main(){\n"
-        "   gl_Position = vec4(vPos, 1.);\n"
-        "}\n";
-    constexpr char kFS[] =
-        "#version 300 es\n"
-        "precision mediump float;\n"
-        "uniform vec3 uCol;\n"
-        "out vec4 col;\n"
-        "void main(){\n"
-        "   col = vec4(uCol,1.);\n"
-        "}\n";
-    ANGLE_GL_PROGRAM(program, kVS, kFS);
-    glUseProgram(program);
-    GLuint mColorUniformLoc = glGetUniformLocation(program, "uCol");
-
-    initializeFBOs(1, false, true);
-    glEnable(GL_DEPTH_TEST);
-
-    // Clear the contents of the texture.
-    glBindFramebuffer(GL_FRAMEBUFFER, mNonMultiviewFBO);
-    glClearColor(0, 0, 0, 0);
-    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-
-    // Dirty the depth and color buffers.
-    glUniform3f(mColorUniformLoc, 1.0f, 0.0f, 0.0f);
-    drawQuad(program, "vPos", 0.0f, 1.0f, true);
-
-    // Switch to the multi-view framebuffer and clear only the rectangles covered by the views.
-    glBindFramebuffer(GL_FRAMEBUFFER, mMultiviewFBO);
-    glViewport(0, 0, 1, 2);
-    glScissor(0, 0, 1, 2);
-    glEnable(GL_SCISSOR_TEST);
-    glClear(GL_DEPTH_BUFFER_BIT);
-
-    // Draw a fullscreen quad to fill the cleared regions.
-    glBindFramebuffer(GL_FRAMEBUFFER, mNonMultiviewFBO);
-    glViewport(0, 0, 4, 2);
-    glScissor(0, 0, 4, 2);
-    glUniform3f(mColorUniformLoc, 0.0f, 1.0f, 0.0f);
-    drawQuad(program, "vPos", 0.5f, 1.0f, true);
-
-    checkAlternatingColumnsOfRedAndGreenInFBO();
-}
-
-// Test that glClear clears the stencil buffer of each view.
-TEST_P(FramebufferMultiviewSideBySideClearTest, StencilBufferClear)
-{
-    ANGLE_SKIP_TEST_IF(!requestMultiviewExtension());
-
-    // Create program to draw a quad.
-    constexpr char kVS[] =
-        "#version 300 es\n"
-        "in vec3 vPos;\n"
-        "void main(){\n"
-        "   gl_Position = vec4(vPos, 1.);\n"
-        "}\n";
-    constexpr char kFS[] =
-        "#version 300 es\n"
-        "precision mediump float;\n"
-        "uniform vec3 uCol;\n"
-        "out vec4 col;\n"
-        "void main(){\n"
-        "   col = vec4(uCol,1.);\n"
-        "}\n";
-    ANGLE_GL_PROGRAM(program, kVS, kFS);
-    glUseProgram(program);
-    GLuint mColorUniformLoc = glGetUniformLocation(program, "uCol");
-
-    initializeFBOs(1, true, false);
-    glEnable(GL_STENCIL_TEST);
-    glDisable(GL_DEPTH_TEST);
-
-    // Set clear values and clear the whole framebuffer.
-    glBindFramebuffer(GL_FRAMEBUFFER, mNonMultiviewFBO);
-    glClearColor(0, 0, 0, 0);
-    glClearStencil(0);
-    glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
-
-    // Update stencil test to always replace the stencil value with 0xFF.
-    glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
-    glStencilFunc(GL_ALWAYS, 0xFF, 0);
-
-    // Draw a quad which covers the whole texture.
-    glUniform3f(mColorUniformLoc, 1.0f, 0.0f, 0.0f);
-    drawQuad(program, "vPos", 0.0f, 1.0f, true);
-
-    // Switch to multiview framebuffer and clear portions of the texture.
-    glBindFramebuffer(GL_FRAMEBUFFER, mMultiviewFBO);
-    glViewport(0, 0, 1, 2);
-    glScissor(0, 0, 1, 2);
-    glEnable(GL_SCISSOR_TEST);
-    glClear(GL_STENCIL_BUFFER_BIT);
-
-    // Draw a fullscreen quad, but adjust the stencil function so that only the cleared regions pass
-    // the test.
-    glBindFramebuffer(GL_FRAMEBUFFER, mNonMultiviewFBO);
-    glViewport(0, 0, 4, 2);
-    glScissor(0, 0, 4, 2);
-    glStencilFunc(GL_EQUAL, 0x00, 0xFF);
-    glUniform3f(mColorUniformLoc, 0.0f, 1.0f, 0.0f);
-    drawQuad(program, "vPos", 0.0f, 1.0f, true);
-
-    checkAlternatingColumnsOfRedAndGreenInFBO();
-}
-
-// Test that glClearBufferf clears the color buffer of each view.
-TEST_P(FramebufferMultiviewSideBySideClearTest, ClearBufferF)
-{
-    ANGLE_SKIP_TEST_IF(!requestMultiviewExtension());
-
-    initializeFBOs(2, false, false);
-
-    // Clear the contents of the texture.
-    glBindFramebuffer(GL_FRAMEBUFFER, mNonMultiviewFBO);
-    glClearColor(1, 0, 0, 1);
-    glClear(GL_COLOR_BUFFER_BIT);
-
-    // Bind and specify viewport/scissor dimensions for each view.
-    glBindFramebuffer(GL_FRAMEBUFFER, mMultiviewFBO);
-    glViewport(0, 0, 1, 2);
-    glScissor(0, 0, 1, 2);
-    glEnable(GL_SCISSOR_TEST);
-
-    float kClearValues[4] = {0.f, 1.f, 0.f, 1.f};
-    glClearBufferfv(GL_COLOR, 1, kClearValues);
-
-    glBindFramebuffer(GL_FRAMEBUFFER, mNonMultiviewFBO);
-
-    // Check that glClearBufferfv has not modified the 0th color attachment.
-    glReadBuffer(GL_COLOR_ATTACHMENT0);
-    for (int i = 0; i < 4; ++i)
-    {
-        for (int j = 0; j < 2; ++j)
-        {
-            EXPECT_PIXEL_COLOR_EQ(i, j, GLColor::red);
-        }
-    }
-
-    // Check that glClearBufferfv has correctly modified the 1th color attachment.
-    glReadBuffer(GL_COLOR_ATTACHMENT1);
-    checkAlternatingColumnsOfRedAndGreenInFBO();
-}
-
 // Test that glClear clears the contents of the color buffer for only the attached layers to a
 // layered FBO.
 TEST_P(FramebufferMultiviewLayeredClearTest, ColorBufferClear)
@@ -1265,7 +588,7 @@
 
     // Detach and clear again.
     glBindFramebuffer(GL_FRAMEBUFFER, mMultiviewFBO);
-    glFramebufferTextureMultiviewLayeredANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, 0, 0, 1, 2);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT1, 0, 0, 1, 2);
     glClearColor(1, 1, 0, 1);
     glClear(GL_COLOR_BUFFER_BIT);
 
@@ -1387,23 +710,11 @@
     glBindFramebuffer(GL_FRAMEBUFFER, fbo);
 
     // Invalid base view index.
-    glFramebufferTextureMultiviewLayeredANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 0, 0, -1, 1);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 0, 0, -1, 1);
     EXPECT_GL_NO_ERROR();
 
     // Invalid number of views.
-    glFramebufferTextureMultiviewLayeredANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 0, 0, 0, 0);
-    EXPECT_GL_NO_ERROR();
-
-    // Invalid number of views.
-    const GLint kValidViewportOffsets[2] = {0, 0};
-    glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 0, 0, 0,
-                                                 kValidViewportOffsets);
-    EXPECT_GL_NO_ERROR();
-
-    // Invalid viewport offsets.
-    const GLint kInvalidViewportOffsets[2] = {-1, -1};
-    glFramebufferTextureMultiviewSideBySideANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 0, 0, 1,
-                                                 kInvalidViewportOffsets);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 0, 0, 0, 0);
     EXPECT_GL_NO_ERROR();
 }
 
@@ -1431,24 +742,21 @@
 
     ANGLE_SKIP_TEST_IF(!ensureExtensionEnabled("GL_OES_texture_storage_multisample_2d_array"));
 
-    // We don't enable ANGLE_multiview_multisample
+    // We don't enable OVR_multiview2_multisample
 
     GLTexture multisampleTexture;
     glBindTexture(GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES, multisampleTexture);
 
     GLFramebuffer fbo;
     glBindFramebuffer(GL_FRAMEBUFFER, fbo);
-    glFramebufferTextureMultiviewLayeredANGLE(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
-                                              multisampleTexture, 0, 0, 2);
+    glFramebufferTextureMultiviewOVR(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, multisampleTexture, 0, 0,
+                                     2);
     // From the extension spec: "An INVALID_OPERATION error is generated if texture is not zero, and
     // does not name an existing texture object of type TEXTURE_2D_ARRAY."
     EXPECT_GL_ERROR(GL_INVALID_OPERATION);
 }
 
 ANGLE_INSTANTIATE_TEST(FramebufferMultiviewTest, VertexShaderOpenGL(3, 0), GeomShaderD3D11(3, 0));
-ANGLE_INSTANTIATE_TEST(FramebufferMultiviewSideBySideClearTest,
-                       VertexShaderOpenGL(3, 0),
-                       GeomShaderD3D11(3, 0));
 ANGLE_INSTANTIATE_TEST(FramebufferMultiviewLayeredClearTest,
                        VertexShaderOpenGL(3, 0),
                        GeomShaderD3D11(3, 0));