Rename and reorganize MultiviewRenderTestBase

MultiviewRenderTestBase is renamed to MultiviewFramebufferTestBase
since the functionality it has is mostly to set up a framebuffer.

This cleans up the test class without including functional changes to
ease diagnosis of issues with resource init/teardown.

BUG=angleproject:2765
TEST=angle_end2end_tests

Change-Id: I0debd6a7a53a2e6bff7100d07b29313d66a79cb5
Reviewed-on: https://chromium-review.googlesource.com/1181052
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
diff --git a/src/tests/gl_tests/MultiviewDrawTest.cpp b/src/tests/gl_tests/MultiviewDrawTest.cpp
index c5717c4..9cc52ec 100644
--- a/src/tests/gl_tests/MultiviewDrawTest.cpp
+++ b/src/tests/gl_tests/MultiviewDrawTest.cpp
@@ -65,19 +65,19 @@
     return os;
 }
 
-class MultiviewRenderTestBase : public MultiviewTestBase
+class MultiviewFramebufferTestBase : public MultiviewTestBase
 {
   protected:
-    MultiviewRenderTestBase(const PlatformParameters &params, GLenum multiviewLayout)
+    MultiviewFramebufferTestBase(const PlatformParameters &params, GLenum multiviewLayout)
         : MultiviewTestBase(params),
-          mMultiviewLayout(multiviewLayout),
           mViewWidth(0),
           mViewHeight(0),
-          mNumViews(0)
+          mNumViews(0),
+          mMultiviewLayout(multiviewLayout)
     {
     }
-    void RenderTestSetUp() { MultiviewTestBase::MultiviewTestBaseSetUp(); }
-    void createFBO(int viewWidth, int height, int numViews, int numLayers, int baseViewIndex)
+    void FramebufferTestSetUp() { MultiviewTestBase::MultiviewTestBaseSetUp(); }
+    void updateFBOs(int viewWidth, int height, int numViews, int numLayers, int baseViewIndex)
     {
         ASSERT(numViews + baseViewIndex <= numLayers);
 
@@ -204,11 +204,13 @@
         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     }
 
-    void createFBO(int viewWidth, int height, int numViews)
+    void updateFBOs(int viewWidth, int height, int numViews)
     {
-        createFBO(viewWidth, height, numViews, numViews, 0);
+        updateFBOs(viewWidth, height, numViews, numViews, 0);
     }
 
+    void bindMemberDrawFramebuffer() { glBindFramebuffer(GL_DRAW_FRAMEBUFFER, mDrawFramebuffer); }
+
     GLColor GetViewColor(int x, int y, int view)
     {
         switch (mMultiviewLayout)
@@ -227,20 +229,22 @@
 
     GLTexture mColorTexture;
     GLTexture mDepthTexture;
-    GLFramebuffer mDrawFramebuffer;
-    std::vector<GLFramebuffer> mReadFramebuffer;
-    GLenum mMultiviewLayout;
     int mViewWidth;
     int mViewHeight;
     int mNumViews;
+
+  private:
+    GLFramebuffer mDrawFramebuffer;
+    std::vector<GLFramebuffer> mReadFramebuffer;
+    GLenum mMultiviewLayout;
 };
 
-class MultiviewRenderTest : public MultiviewRenderTestBase,
+class MultiviewRenderTest : public MultiviewFramebufferTestBase,
                             public ::testing::TestWithParam<MultiviewRenderTestParams>
 {
   protected:
-    MultiviewRenderTest() : MultiviewRenderTestBase(GetParam(), GetParam().mMultiviewLayout) {}
-    void SetUp() override { MultiviewRenderTestBase::RenderTestSetUp(); }
+    MultiviewRenderTest() : MultiviewFramebufferTestBase(GetParam(), GetParam().mMultiviewLayout) {}
+    void SetUp() override { MultiviewFramebufferTestBase::FramebufferTestSetUp(); }
 
     void overrideWorkaroundsD3D(WorkaroundsD3D *workarounds) override
     {
@@ -288,7 +292,7 @@
             return;
         }
 
-        createFBO(2, 1, 2);
+        updateFBOs(2, 1, 2);
         mProgram = CompileProgram(kDualViewVSSource, kDualViewFSSource);
         ASSERT_NE(mProgram, 0u);
         glUseProgram(mProgram);
@@ -412,30 +416,30 @@
     GLBuffer mVBO;
 };
 
-class MultiviewSideBySideRenderTest : public MultiviewRenderTestBase,
+class MultiviewSideBySideRenderTest : public MultiviewFramebufferTestBase,
                                       public ::testing::TestWithParam<MultiviewImplementationParams>
 {
   protected:
     MultiviewSideBySideRenderTest()
-        : MultiviewRenderTestBase(GetParam(), GL_FRAMEBUFFER_MULTIVIEW_SIDE_BY_SIDE_ANGLE)
+        : MultiviewFramebufferTestBase(GetParam(), GL_FRAMEBUFFER_MULTIVIEW_SIDE_BY_SIDE_ANGLE)
     {
     }
-    void SetUp() override { MultiviewRenderTestBase::RenderTestSetUp(); }
+    void SetUp() override { MultiviewFramebufferTestBase::FramebufferTestSetUp(); }
     void overrideWorkaroundsD3D(WorkaroundsD3D *workarounds) override
     {
         workarounds->selectViewInGeometryShader = GetParam().mForceUseGeometryShaderOnD3D;
     }
 };
 
-class MultiviewLayeredRenderTest : public MultiviewRenderTestBase,
+class MultiviewLayeredRenderTest : public MultiviewFramebufferTestBase,
                                    public ::testing::TestWithParam<MultiviewImplementationParams>
 {
   protected:
     MultiviewLayeredRenderTest()
-        : MultiviewRenderTestBase(GetParam(), GL_FRAMEBUFFER_MULTIVIEW_LAYERED_ANGLE)
+        : MultiviewFramebufferTestBase(GetParam(), GL_FRAMEBUFFER_MULTIVIEW_LAYERED_ANGLE)
     {
     }
-    void SetUp() override { MultiviewRenderTestBase::RenderTestSetUp(); }
+    void SetUp() override { MultiviewFramebufferTestBase::FramebufferTestSetUp(); }
     void overrideWorkaroundsD3D(WorkaroundsD3D *workarounds) override
     {
         workarounds->selectViewInGeometryShader = GetParam().mForceUseGeometryShaderOnD3D;
@@ -859,7 +863,7 @@
         "    col = vec4(0,1,0,1);\n"
         "}\n";
 
-    createFBO(4, 1, 4);
+    updateFBOs(4, 1, 4);
     ANGLE_GL_PROGRAM(program, vsSource, fsSource);
 
     drawQuad(program, "vPosition", 0.0f, 1.0f, true);
@@ -920,7 +924,7 @@
     const int kViewWidth  = 2;
     const int kViewHeight = 2;
     const int kNumViews   = 2;
-    createFBO(kViewWidth, kViewHeight, kNumViews);
+    updateFBOs(kViewWidth, kViewHeight, kNumViews);
     ANGLE_GL_PROGRAM(program, vsSource, fsSource);
 
     drawQuadInstanced(program, "vPosition", 0.0f, 1.0f, true, 2u);
@@ -984,7 +988,7 @@
     const int kViewWidth  = 4;
     const int kViewHeight = 4;
     const int kNumViews   = 2;
-    createFBO(kViewWidth, kViewHeight, kNumViews);
+    updateFBOs(kViewWidth, kViewHeight, kNumViews);
     ANGLE_GL_PROGRAM(program, vsSource, fsSource);
 
     GLBuffer xOffsetVBO;
@@ -1033,7 +1037,7 @@
         return;
     }
 
-    createFBO(1, 1, 2);
+    updateFBOs(1, 1, 2);
 
     // Create multiview program.
     const std::string &vs =
@@ -1126,7 +1130,7 @@
     ASSERT_GL_NO_ERROR();
 
     // Check that vertexAttribDivisor uses the number of views to update the divisor.
-    glBindFramebuffer(GL_DRAW_FRAMEBUFFER, mDrawFramebuffer);
+    bindMemberDrawFramebuffer();
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     glUseProgram(program);
     glVertexAttribDivisor(1, 1);
@@ -1146,7 +1150,7 @@
     ASSERT_GL_NO_ERROR();
 
     // Check that useProgram uses the number of views to update the divisor.
-    glBindFramebuffer(GL_DRAW_FRAMEBUFFER, mDrawFramebuffer);
+    bindMemberDrawFramebuffer();
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
     glUseProgram(program);
     glDrawArraysInstanced(GL_TRIANGLES, 0, 6, 1);
@@ -1166,7 +1170,7 @@
     {
         // Call useProgram with vao[1] being active to guarantee that useProgram will adjust the
         // divisor for vao[1] only.
-        glBindFramebuffer(GL_DRAW_FRAMEBUFFER, mDrawFramebuffer);
+        bindMemberDrawFramebuffer();
         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
         glBindVertexArray(vao[1]);
         glUseProgram(program);
@@ -1211,7 +1215,7 @@
         "    col = vec4(1,0,0,0);\n"
         "}\n";
     ANGLE_GL_PROGRAM(program, vsSource, fsSource);
-    createFBO(1, 1, 2);
+    updateFBOs(1, 1, 2);
 
     GLuint result = drawAndRetrieveOcclusionQueryResult(program);
     ASSERT_GL_NO_ERROR();
@@ -1246,7 +1250,7 @@
         "    col = vec4(1,0,0,0);\n"
         "}\n";
     ANGLE_GL_PROGRAM(program, vsSource, fsSource);
-    createFBO(1, 1, 2);
+    updateFBOs(1, 1, 2);
 
     GLuint result = drawAndRetrieveOcclusionQueryResult(program);
     ASSERT_GL_NO_ERROR();
@@ -1281,7 +1285,7 @@
         "    col = vec4(1,0,0,0);\n"
         "}\n";
     ANGLE_GL_PROGRAM(program, vsSource, fsSource);
-    createFBO(1, 1, 2);
+    updateFBOs(1, 1, 2);
 
     GLuint result = drawAndRetrieveOcclusionQueryResult(program);
     ASSERT_GL_NO_ERROR();
@@ -1429,7 +1433,7 @@
     const int kViewWidth  = 4;
     const int kViewHeight = 2;
     const int kNumViews   = 2;
-    createFBO(kViewWidth, kViewHeight, kNumViews);
+    updateFBOs(kViewWidth, kViewHeight, kNumViews);
 
     std::vector<Vector2I> windowCoordinates = {Vector2I(0, 0), Vector2I(3, 1)};
     std::vector<Vector2> vertexDataInClipSpace =
@@ -1464,7 +1468,7 @@
     const int kViewWidth  = 4;
     const int kViewHeight = 2;
     const int kNumViews   = 2;
-    createFBO(kViewWidth, kViewHeight, kNumViews);
+    updateFBOs(kViewWidth, kViewHeight, kNumViews);
 
     std::vector<Vector2I> windowCoordinates = {Vector2I(0, 0), Vector2I(4, 0)};
     std::vector<Vector2> vertexDataInClipSpace =
@@ -1501,7 +1505,7 @@
     const int kViewWidth  = 4;
     const int kViewHeight = 2;
     const int kNumViews   = 2;
-    createFBO(kViewWidth, kViewHeight, kNumViews);
+    updateFBOs(kViewWidth, kViewHeight, kNumViews);
 
     std::vector<Vector2I> windowCoordinates = {Vector2I(0, 0), Vector2I(3, 0), Vector2I(3, 2)};
     std::vector<Vector2> vertexDataInClipSpace =
@@ -1538,7 +1542,7 @@
     const int kViewWidth  = 4;
     const int kViewHeight = 4;
     const int kNumViews   = 2;
-    createFBO(kViewWidth, kViewHeight, kNumViews);
+    updateFBOs(kViewWidth, kViewHeight, kNumViews);
 
     std::vector<Vector2I> windowCoordinates = {Vector2I(0, 0), Vector2I(3, 0), Vector2I(3, 3),
                                                Vector2I(0, 3)};
@@ -1576,7 +1580,7 @@
     const int kViewWidth  = 2;
     const int kViewHeight = 2;
     const int kNumViews   = 2;
-    createFBO(kViewWidth, kViewHeight, kNumViews);
+    updateFBOs(kViewWidth, kViewHeight, kNumViews);
 
     glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
 
@@ -1607,7 +1611,7 @@
     const int kViewWidth  = 2;
     const int kViewHeight = 2;
     const int kNumViews   = 2;
-    createFBO(kViewWidth, kViewHeight, kNumViews);
+    updateFBOs(kViewWidth, kViewHeight, kNumViews);
 
     glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
 
@@ -1630,7 +1634,7 @@
         return;
     }
 
-    createFBO(2, 1, 2);
+    updateFBOs(2, 1, 2);
 
     GLint viewportOffsets[4] = {1, 0, 3, 0};
     glFramebufferTextureMultiviewSideBySideANGLE(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
@@ -1780,7 +1784,7 @@
     }
 
     {
-        createFBO(kViewWidth, kViewHeight, kNumViews);
+        updateFBOs(kViewWidth, kViewHeight, kNumViews);
 
         drawQuadInstanced(program, "vPosition", 0.0f, 1.0f, true, 4u);
         ASSERT_GL_NO_ERROR();
@@ -1794,7 +1798,7 @@
     {
         const int kNewNumViews = 3;
         vsSource               = generateVertexShaderSource(kNewNumViews);
-        createFBO(kViewWidth, kViewHeight, kNewNumViews);
+        updateFBOs(kViewWidth, kViewHeight, kNewNumViews);
 
         GLuint vs = CompileShader(GL_VERTEX_SHADER, vsSource);
         ASSERT_NE(0u, vs);
@@ -1867,7 +1871,7 @@
     // Create a program and fbo with N views and draw N instances of a point horizontally.
     for (int numViews = 2; numViews <= 4; ++numViews)
     {
-        createFBO(4, 1, numViews);
+        updateFBOs(4, 1, numViews);
         ASSERT_GL_NO_ERROR();
 
         GLuint program = CreateSimplePassthroughProgram(numViews);
@@ -1929,7 +1933,7 @@
         "    }\n"
         "}\n";
 
-    createFBO(1, 1, 3);
+    updateFBOs(1, 1, 3);
     ANGLE_GL_PROGRAM(program, vsSource, fsSource);
 
     drawQuad(program, "vPosition", 0.0f, 1.0f, true);
@@ -1969,7 +1973,7 @@
         "     col = vec4(0,1,0,1);\n"
         "}\n";
 
-    createFBO(1, 1, 2, 4, 1);
+    updateFBOs(1, 1, 2, 4, 1);
     ANGLE_GL_PROGRAM(program, vsSource, fsSource);
 
     drawQuad(program, "vPosition", 0.0f, 1.0f, true);
@@ -2024,7 +2028,7 @@
         "    }\n"
         "}\n";
 
-    createFBO(1, 1, 2);
+    updateFBOs(1, 1, 2);
     ANGLE_GL_PROGRAM(program, vsSource, fsSource);
 
     drawQuad(program, "vPosition", 0.0f, 1.0f, true);
@@ -2070,7 +2074,7 @@
         "    }\n"
         "}\n";
 
-    createFBO(1, 1, 2);
+    updateFBOs(1, 1, 2);
     ANGLE_GL_PROGRAM(program, vsSource, fsSource);
 
     drawQuad(program, "vPosition", 0.0f, 1.0f, true);
@@ -2089,7 +2093,7 @@
         return;
     }
 
-    createFBO(1, 1, 2);
+    updateFBOs(1, 1, 2);
 
     // Create multiview program.
     const std::string &vs =
@@ -2125,7 +2129,7 @@
     ASSERT_GL_NO_ERROR();
 
     // Draw and check that both views are rendered to.
-    glBindFramebuffer(GL_DRAW_FRAMEBUFFER, mDrawFramebuffer);
+    bindMemberDrawFramebuffer();
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
     drawQuad(program, "vPosition", 0.0f, 1.0f, true);