[Piglit] [PATCH 06/19] glean: Remove benchmarking from PBO test.

Kenneth Graunke kenneth at whitecape.org
Mon Dec 31 18:40:55 PST 2012


This allows some further simplifications as well: there's no need for
separate testFunctionality, runSubTests, and runOne functions.
---
 tests/glean/tpbo.cpp | 159 +++------------------------------------------------
 tests/glean/tpbo.h   |   4 --
 2 files changed, 7 insertions(+), 156 deletions(-)

diff --git a/tests/glean/tpbo.cpp b/tests/glean/tpbo.cpp
index 85a7dba..e93d6a2 100644
--- a/tests/glean/tpbo.cpp
+++ b/tests/glean/tpbo.cpp
@@ -40,7 +40,6 @@
 #include <cassert>
 #include <math.h>
 #include "tpbo.h"
-#include "timer.h"
 
 
 namespace GLEAN
@@ -1089,7 +1088,8 @@ bool PBOTest::testErrorHandling(void)
    return true;
 }
 
-bool PBOTest::testFunctionality(MultiTestResult & r)
+void
+PBOTest::runOne(MultiTestResult & r, Window & w)
 {
    static SubTestFunc
       funcs[] = {
@@ -1104,154 +1104,6 @@ bool PBOTest::testFunctionality(MultiTestResult & r)
       NULL
    };
 
-   for (int i = 0; funcs[i]; i++)
-      if ((this->*funcs[i]) ())
-         r.numPassed++;
-      else
-         r.numFailed++;
-   return true;
-}
-
-enum {
-   BLACK,
-   RED,
-   GREEN,
-   BLUE,
-   WHITE
-};
-
-GLfloat colors1[][4] = {
-   {0.0, 0.0, 0.0, 0.0},
-   {1.0, 0.0, 0.0, 1.0},
-   {0.0, 1.0, 0.0, 1.0},
-   {0.0, 0.0, 1.0, 1.0},
-   {1.0, 1.0, 1.0, 1.0}
-};
-
-#define TEXSIZE1 64
-bool PBOTest::testPerformance(MultiTestResult & r)
-{
-   GLuint pbs[1];
-   GLuint textures[1];
-   GLubyte data[TEXSIZE1 * TEXSIZE1 * 4];
-   int mode;
-   int i, j;
-   Timer t;
-   double t0, t1, perf[2];
-   GLubyte *pboMem = NULL;
-
-   (void) r;
-
-   for (mode = 0; mode < usePBO + 1; mode++) {
-      t0 = t.getClock();
-
-      glClearColor(0.0, 0.0, 0.0, 1.0);
-      glClear(GL_COLOR_BUFFER_BIT);
-      if (mode) {
-         glGenBuffersARB_func(1, pbs);
-         glBindBufferARB_func(GL_PIXEL_UNPACK_BUFFER, pbs[0]);
-         glBufferDataARB_func(GL_PIXEL_UNPACK_BUFFER,
-                      TEXSIZE1 * TEXSIZE1 * 4 * sizeof(GLubyte), NULL,
-                      GL_STREAM_DRAW);
-      }
-      glGenTextures(1, textures);
-      glBindTexture(GL_TEXTURE_2D, textures[0]);
-      glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, TEXSIZE1,
-                   TEXSIZE1, 0, GL_BGRA, GL_UNSIGNED_BYTE, NULL);
-
-      glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-      glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-
-      for (i = 0; i < 1024; i++) {
-         if (mode) {
-            glBindBufferARB_func(GL_PIXEL_UNPACK_BUFFER, pbs[0]);
-            pboMem =
-               (GLubyte *) glMapBufferARB_func(GL_PIXEL_UNPACK_BUFFER_ARB,
-                                       GL_WRITE_ONLY);
-         }
-         else {
-            pboMem = data;
-         }
-
-         for (j = 0; j < TEXSIZE1 * TEXSIZE1; j++) {
-            pboMem[4 * j] = 255;
-            pboMem[4 * j + 1] = 255;
-            pboMem[4 * j + 2] = 0;
-            pboMem[4 * j + 3] = 0;
-         }
-
-         if (mode) {
-            glUnmapBufferARB_func(GL_PIXEL_UNPACK_BUFFER_ARB);
-            glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, TEXSIZE1,
-                            TEXSIZE1, GL_BGRA, GL_UNSIGNED_BYTE, NULL);
-            glBindBufferARB_func(GL_PIXEL_UNPACK_BUFFER, 0);
-         }
-         else {
-            glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, TEXSIZE1,
-                            TEXSIZE1, GL_BGRA, GL_UNSIGNED_BYTE, data);
-         }
-
-
-         // Actually apply the texture
-         glEnable(GL_TEXTURE_2D);
-         glColor4fv(colors1[WHITE]);
-
-         glBegin(GL_POLYGON);
-         glTexCoord2f(0.0, 0.0);
-         glVertex2f(0, 0);
-         glTexCoord2f(1.0, 0.0);
-         glVertex2f(1, 0);
-         glTexCoord2f(1.0, 1.0);
-         glVertex2f(1, 1);
-         glTexCoord2f(0.0, 1.0);
-         glVertex2f(0, 1);
-         glEnd();
-         glFlush();
-         glDisable(GL_TEXTURE_2D);
-      }
-      t1 = t.getClock();
-      glDeleteTextures(1, textures);
-      if (mode)
-         glDeleteBuffersARB_func(1, pbs);
-
-      perf[mode] = (double) TEXSIZE1 * TEXSIZE1 * 3 * sizeof(GLfloat) / 1024 / (t1 - t0);
-
-   }
-
-   if (perf[1] < perf[0] && usePBO) {
-      env->log << name << ":  NOTE "
-         << "perf[0] = " << perf[0] <<
-         " MB/s, which is in normal mode" << endl;
-      env->log << name << ":  NOTE " << "perf[1] = " <<
-         perf[1] << " MB/s, which is using PBO" << endl;
-   }
-
-   return true;
-}
-
-
-
-// Run all the subtests, incrementing numPassed, numFailed
-void
-PBOTest::runSubTests(MultiTestResult & r)
-{
-   static TestFunc funcs[] = {
-      &GLEAN::PBOTest::testFunctionality,
-      &GLEAN::PBOTest::testPerformance,
-      NULL
-   };
-
-   for (int i = 0; funcs[i]; i++)
-      if ((this->*funcs[i]) (r))
-         r.numPassed++;
-      else
-         r.numFailed++;
-}
-
-
-void
-PBOTest::runOne(MultiTestResult & r, Window & w)
-{
    (void) w;
 
    if (!setup()) {
@@ -1259,12 +1111,15 @@ PBOTest::runOne(MultiTestResult & r, Window & w)
       return;
    }
 
-   runSubTests(r);
+   for (int i = 0; funcs[i]; i++)
+      if ((this->*funcs[i]) ())
+         r.numPassed++;
+      else
+         r.numFailed++;
 
    r.pass = (r.numFailed == 0);
 }
 
-
 // The test object itself:
 PBOTest pboTest("pbo", "window, rgb, z", "",    // no extension filter 
                 "pbo test: Test OpenGL Extension GL_ARB_pixel_buffer_object\n");
diff --git a/tests/glean/tpbo.h b/tests/glean/tpbo.h
index cda1a49..040cd96 100644
--- a/tests/glean/tpbo.h
+++ b/tests/glean/tpbo.h
@@ -59,8 +59,6 @@ private:
 
 	GLfloat tolerance[5];
 
-        bool testFunctionality(MultiTestResult &r);
-	bool testPerformance(MultiTestResult &r);
         bool testSanity(void);
 	bool testErrorHandling(void);
 	bool testDrawPixels(void);
@@ -70,8 +68,6 @@ private:
 	bool testTexSubImage(void);
 	bool testPolygonStip(void);
 
-        void runSubTests(MultiTestResult &r);
-
 	bool setup(void);
 	bool checkResult(const GLfloat exp[4], const int depth, const int stencil) const;
 	bool equalColors(const GLfloat a[4], const GLfloat b[4]) const;
-- 
1.8.0.3



More information about the Piglit mailing list