Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: cc/resources/raster_worker_pool_perftest.cc

Issue 645853008: Standardize usage of virtual/override/final in cc/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Formatted Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/resources/raster_worker_pool.cc ('k') | cc/resources/raster_worker_pool_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/resources/raster_worker_pool.h" 5 #include "cc/resources/raster_worker_pool.h"
6 6
7 #include "base/test/test_simple_task_runner.h" 7 #include "base/test/test_simple_task_runner.h"
8 #include "base/time/time.h" 8 #include "base/time/time.h"
9 #include "cc/debug/lap_timer.h" 9 #include "cc/debug/lap_timer.h"
10 #include "cc/output/context_provider.h" 10 #include "cc/output/context_provider.h"
(...skipping 15 matching lines...) Expand all
26 #include "cc/test/test_web_graphics_context_3d.h" 26 #include "cc/test/test_web_graphics_context_3d.h"
27 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
28 #include "testing/perf/perf_test.h" 28 #include "testing/perf/perf_test.h"
29 #include "third_party/khronos/GLES2/gl2.h" 29 #include "third_party/khronos/GLES2/gl2.h"
30 30
31 namespace cc { 31 namespace cc {
32 namespace { 32 namespace {
33 33
34 class PerfGLES2Interface : public gpu::gles2::GLES2InterfaceStub { 34 class PerfGLES2Interface : public gpu::gles2::GLES2InterfaceStub {
35 // Overridden from gpu::gles2::GLES2Interface: 35 // Overridden from gpu::gles2::GLES2Interface:
36 virtual GLuint CreateImageCHROMIUM(ClientBuffer buffer, 36 GLuint CreateImageCHROMIUM(ClientBuffer buffer,
37 GLsizei width, 37 GLsizei width,
38 GLsizei height, 38 GLsizei height,
39 GLenum internalformat) override { 39 GLenum internalformat) override {
40 return 1u; 40 return 1u;
41 } 41 }
42 virtual void GenBuffers(GLsizei n, GLuint* buffers) override { 42 void GenBuffers(GLsizei n, GLuint* buffers) override {
43 for (GLsizei i = 0; i < n; ++i) 43 for (GLsizei i = 0; i < n; ++i)
44 buffers[i] = 1u; 44 buffers[i] = 1u;
45 } 45 }
46 virtual void GenTextures(GLsizei n, GLuint* textures) override { 46 void GenTextures(GLsizei n, GLuint* textures) override {
47 for (GLsizei i = 0; i < n; ++i) 47 for (GLsizei i = 0; i < n; ++i)
48 textures[i] = 1u; 48 textures[i] = 1u;
49 } 49 }
50 virtual void GetIntegerv(GLenum pname, GLint* params) override { 50 void GetIntegerv(GLenum pname, GLint* params) override {
51 if (pname == GL_MAX_TEXTURE_SIZE) 51 if (pname == GL_MAX_TEXTURE_SIZE)
52 *params = INT_MAX; 52 *params = INT_MAX;
53 } 53 }
54 virtual void GenQueriesEXT(GLsizei n, GLuint* queries) override { 54 void GenQueriesEXT(GLsizei n, GLuint* queries) override {
55 for (GLsizei i = 0; i < n; ++i) 55 for (GLsizei i = 0; i < n; ++i)
56 queries[i] = 1u; 56 queries[i] = 1u;
57 } 57 }
58 virtual void GetQueryObjectuivEXT(GLuint query, 58 void GetQueryObjectuivEXT(GLuint query,
59 GLenum pname, 59 GLenum pname,
60 GLuint* params) override { 60 GLuint* params) override {
61 if (pname == GL_QUERY_RESULT_AVAILABLE_EXT) 61 if (pname == GL_QUERY_RESULT_AVAILABLE_EXT)
62 *params = 1; 62 *params = 1;
63 } 63 }
64 }; 64 };
65 65
66 class PerfContextProvider : public ContextProvider { 66 class PerfContextProvider : public ContextProvider {
67 public: 67 public:
68 PerfContextProvider() : context_gl_(new PerfGLES2Interface) {} 68 PerfContextProvider() : context_gl_(new PerfGLES2Interface) {}
69 69
70 virtual bool BindToCurrentThread() override { return true; } 70 bool BindToCurrentThread() override { return true; }
71 virtual Capabilities ContextCapabilities() override { 71 Capabilities ContextCapabilities() override {
72 Capabilities capabilities; 72 Capabilities capabilities;
73 capabilities.gpu.image = true; 73 capabilities.gpu.image = true;
74 capabilities.gpu.sync_query = true; 74 capabilities.gpu.sync_query = true;
75 return capabilities; 75 return capabilities;
76 } 76 }
77 virtual gpu::gles2::GLES2Interface* ContextGL() override { 77 gpu::gles2::GLES2Interface* ContextGL() override { return context_gl_.get(); }
78 return context_gl_.get(); 78 gpu::ContextSupport* ContextSupport() override { return &support_; }
79 class GrContext* GrContext() override {
80 return NULL;
79 } 81 }
80 virtual gpu::ContextSupport* ContextSupport() override { return &support_; } 82 bool IsContextLost() override { return false; }
81 virtual class GrContext* GrContext() override { return NULL; } 83 void VerifyContexts() override {}
82 virtual bool IsContextLost() override { return false; } 84 void DeleteCachedResources() override {}
83 virtual void VerifyContexts() override {} 85 bool DestroyedOnMainThread() override { return false; }
84 virtual void DeleteCachedResources() override {} 86 void SetLostContextCallback(const LostContextCallback& cb) override {}
85 virtual bool DestroyedOnMainThread() override { return false; } 87 void SetMemoryPolicyChangedCallback(
86 virtual void SetLostContextCallback(const LostContextCallback& cb) override {}
87 virtual void SetMemoryPolicyChangedCallback(
88 const MemoryPolicyChangedCallback& cb) override {} 88 const MemoryPolicyChangedCallback& cb) override {}
89 89
90 private: 90 private:
91 virtual ~PerfContextProvider() {} 91 ~PerfContextProvider() override {}
92 92
93 scoped_ptr<PerfGLES2Interface> context_gl_; 93 scoped_ptr<PerfGLES2Interface> context_gl_;
94 TestContextSupport support_; 94 TestContextSupport support_;
95 }; 95 };
96 96
97 enum RasterWorkerPoolType { 97 enum RasterWorkerPoolType {
98 RASTER_WORKER_POOL_TYPE_PIXEL_BUFFER, 98 RASTER_WORKER_POOL_TYPE_PIXEL_BUFFER,
99 RASTER_WORKER_POOL_TYPE_ZERO_COPY, 99 RASTER_WORKER_POOL_TYPE_ZERO_COPY,
100 RASTER_WORKER_POOL_TYPE_ONE_COPY, 100 RASTER_WORKER_POOL_TYPE_ONE_COPY,
101 RASTER_WORKER_POOL_TYPE_GPU, 101 RASTER_WORKER_POOL_TYPE_GPU,
102 RASTER_WORKER_POOL_TYPE_BITMAP 102 RASTER_WORKER_POOL_TYPE_BITMAP
103 }; 103 };
104 104
105 static const int kTimeLimitMillis = 2000; 105 static const int kTimeLimitMillis = 2000;
106 static const int kWarmupRuns = 5; 106 static const int kWarmupRuns = 5;
107 static const int kTimeCheckInterval = 10; 107 static const int kTimeCheckInterval = 10;
108 108
109 class PerfImageDecodeTaskImpl : public ImageDecodeTask { 109 class PerfImageDecodeTaskImpl : public ImageDecodeTask {
110 public: 110 public:
111 PerfImageDecodeTaskImpl() {} 111 PerfImageDecodeTaskImpl() {}
112 112
113 // Overridden from Task: 113 // Overridden from Task:
114 virtual void RunOnWorkerThread() override {} 114 void RunOnWorkerThread() override {}
115 115
116 // Overridden from RasterizerTask: 116 // Overridden from RasterizerTask:
117 virtual void ScheduleOnOriginThread(RasterizerTaskClient* client) override {} 117 void ScheduleOnOriginThread(RasterizerTaskClient* client) override {}
118 virtual void CompleteOnOriginThread(RasterizerTaskClient* client) override {} 118 void CompleteOnOriginThread(RasterizerTaskClient* client) override {}
119 virtual void RunReplyOnOriginThread() override { Reset(); } 119 void RunReplyOnOriginThread() override { Reset(); }
120 120
121 void Reset() { 121 void Reset() {
122 did_run_ = false; 122 did_run_ = false;
123 did_complete_ = false; 123 did_complete_ = false;
124 } 124 }
125 125
126 protected: 126 protected:
127 virtual ~PerfImageDecodeTaskImpl() {} 127 ~PerfImageDecodeTaskImpl() override {}
128 128
129 private: 129 private:
130 DISALLOW_COPY_AND_ASSIGN(PerfImageDecodeTaskImpl); 130 DISALLOW_COPY_AND_ASSIGN(PerfImageDecodeTaskImpl);
131 }; 131 };
132 132
133 class PerfRasterTaskImpl : public RasterTask { 133 class PerfRasterTaskImpl : public RasterTask {
134 public: 134 public:
135 PerfRasterTaskImpl(scoped_ptr<ScopedResource> resource, 135 PerfRasterTaskImpl(scoped_ptr<ScopedResource> resource,
136 ImageDecodeTask::Vector* dependencies) 136 ImageDecodeTask::Vector* dependencies)
137 : RasterTask(resource.get(), dependencies), resource_(resource.Pass()) {} 137 : RasterTask(resource.get(), dependencies), resource_(resource.Pass()) {}
138 138
139 // Overridden from Task: 139 // Overridden from Task:
140 virtual void RunOnWorkerThread() override {} 140 void RunOnWorkerThread() override {}
141 141
142 // Overridden from RasterizerTask: 142 // Overridden from RasterizerTask:
143 virtual void ScheduleOnOriginThread(RasterizerTaskClient* client) override { 143 void ScheduleOnOriginThread(RasterizerTaskClient* client) override {
144 raster_buffer_ = client->AcquireBufferForRaster(resource()); 144 raster_buffer_ = client->AcquireBufferForRaster(resource());
145 } 145 }
146 virtual void CompleteOnOriginThread(RasterizerTaskClient* client) override { 146 void CompleteOnOriginThread(RasterizerTaskClient* client) override {
147 client->ReleaseBufferForRaster(raster_buffer_.Pass()); 147 client->ReleaseBufferForRaster(raster_buffer_.Pass());
148 } 148 }
149 virtual void RunReplyOnOriginThread() override { Reset(); } 149 void RunReplyOnOriginThread() override { Reset(); }
150 150
151 void Reset() { 151 void Reset() {
152 did_run_ = false; 152 did_run_ = false;
153 did_complete_ = false; 153 did_complete_ = false;
154 } 154 }
155 155
156 protected: 156 protected:
157 virtual ~PerfRasterTaskImpl() {} 157 ~PerfRasterTaskImpl() override {}
158 158
159 private: 159 private:
160 scoped_ptr<ScopedResource> resource_; 160 scoped_ptr<ScopedResource> resource_;
161 scoped_ptr<RasterBuffer> raster_buffer_; 161 scoped_ptr<RasterBuffer> raster_buffer_;
162 162
163 DISALLOW_COPY_AND_ASSIGN(PerfRasterTaskImpl); 163 DISALLOW_COPY_AND_ASSIGN(PerfRasterTaskImpl);
164 }; 164 };
165 165
166 class RasterWorkerPoolPerfTestBase { 166 class RasterWorkerPoolPerfTestBase {
167 public: 167 public:
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 275
276 DCHECK(raster_worker_pool_); 276 DCHECK(raster_worker_pool_);
277 raster_worker_pool_->AsRasterizer()->SetClient(this); 277 raster_worker_pool_->AsRasterizer()->SetClient(this);
278 } 278 }
279 virtual void TearDown() override { 279 virtual void TearDown() override {
280 raster_worker_pool_->AsRasterizer()->Shutdown(); 280 raster_worker_pool_->AsRasterizer()->Shutdown();
281 raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks(); 281 raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks();
282 } 282 }
283 283
284 // Overriden from RasterizerClient: 284 // Overriden from RasterizerClient:
285 virtual void DidFinishRunningTasks(TaskSet task_set) override { 285 void DidFinishRunningTasks(TaskSet task_set) override {
286 raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks(); 286 raster_worker_pool_->AsRasterizer()->CheckForCompletedTasks();
287 } 287 }
288 virtual TaskSetCollection TasksThatShouldBeForcedToComplete() const override { 288 TaskSetCollection TasksThatShouldBeForcedToComplete() const override {
289 return TaskSetCollection(); 289 return TaskSetCollection();
290 } 290 }
291 291
292 void RunMessageLoopUntilAllTasksHaveCompleted() { 292 void RunMessageLoopUntilAllTasksHaveCompleted() {
293 task_graph_runner_->RunUntilIdle(); 293 task_graph_runner_->RunUntilIdle();
294 task_runner_->RunUntilIdle(); 294 task_runner_->RunUntilIdle();
295 } 295 }
296 296
297 void RunScheduleTasksTest(const std::string& test_name, 297 void RunScheduleTasksTest(const std::string& test_name,
298 unsigned num_raster_tasks, 298 unsigned num_raster_tasks,
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 RunBuildRasterTaskQueueTest("1_0", 1, 0); 525 RunBuildRasterTaskQueueTest("1_0", 1, 0);
526 RunBuildRasterTaskQueueTest("32_0", 32, 0); 526 RunBuildRasterTaskQueueTest("32_0", 32, 0);
527 RunBuildRasterTaskQueueTest("1_1", 1, 1); 527 RunBuildRasterTaskQueueTest("1_1", 1, 1);
528 RunBuildRasterTaskQueueTest("32_1", 32, 1); 528 RunBuildRasterTaskQueueTest("32_1", 32, 1);
529 RunBuildRasterTaskQueueTest("1_4", 1, 4); 529 RunBuildRasterTaskQueueTest("1_4", 1, 4);
530 RunBuildRasterTaskQueueTest("32_4", 32, 4); 530 RunBuildRasterTaskQueueTest("32_4", 32, 4);
531 } 531 }
532 532
533 } // namespace 533 } // namespace
534 } // namespace cc 534 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/raster_worker_pool.cc ('k') | cc/resources/raster_worker_pool_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698