• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "main.h"
6 #include "testbase.h"
7 
8 
9 namespace glbench {
10 
11 
12 class ClearTest : public TestBase {
13  public:
ClearTest()14   ClearTest() : mask_(0) {}
~ClearTest()15   virtual ~ClearTest() {}
16   virtual bool TestFunc(uint64_t iterations);
17   virtual bool Run();
Name() const18   virtual const char* Name() const { return "clear"; }
IsDrawTest() const19   virtual bool IsDrawTest() const { return true; }
Unit() const20   virtual const char* Unit() const { return "mpixels_sec"; }
21 
22  private:
23   GLbitfield mask_;
24   DISALLOW_COPY_AND_ASSIGN(ClearTest);
25 };
26 
27 
TestFunc(uint64_t iterations)28 bool ClearTest::TestFunc(uint64_t iterations) {
29   GLbitfield mask = mask_;
30   glClear(mask);
31   glFlush();  // Kick GPU as soon as possible
32   for (uint64_t i = 0; i < iterations - 1; ++i) {
33     glClear(mask);
34   }
35   return true;
36 }
37 
38 
Run()39 bool ClearTest::Run() {
40   mask_ = GL_COLOR_BUFFER_BIT;
41   RunTest(this, "clear_color", g_width * g_height, g_width, g_height, true);
42 
43   mask_ = GL_DEPTH_BUFFER_BIT;
44   RunTest(this, "clear_depth", g_width * g_height, g_width, g_height, true);
45 
46   mask_ = GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT;
47   RunTest(this, "clear_colordepth",
48           g_width * g_height, g_width, g_height, true);
49 
50   mask_ = GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT;
51   RunTest(this, "clear_depthstencil",
52           g_width * g_height, g_width, g_height, true);
53 
54   mask_ = GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT;
55   RunTest(this, "clear_colordepthstencil",
56           g_width * g_height, g_width, g_height, true);
57   return true;
58 }
59 
60 
GetClearTest()61 TestBase* GetClearTest() {
62   return new ClearTest;
63 }
64 
65 } // namespace glbench
66