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

Side by Side Diff: cc/raster/tile_task_worker_pool_unittest.cc

Issue 1139063002: cc: Partial tile update for one-copy raster. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: monocle: slightlylessstruct Created 5 years, 7 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
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/raster/tile_task_worker_pool.h" 5 #include "cc/raster/tile_task_worker_pool.h"
6 6
7 #include <limits> 7 #include <limits>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/cancelable_callback.h" 10 #include "base/cancelable_callback.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 TestRasterTaskImpl(const Resource* resource, 62 TestRasterTaskImpl(const Resource* resource,
63 const Reply& reply, 63 const Reply& reply,
64 ImageDecodeTask::Vector* dependencies) 64 ImageDecodeTask::Vector* dependencies)
65 : RasterTask(resource, dependencies), 65 : RasterTask(resource, dependencies),
66 reply_(reply), 66 reply_(reply),
67 picture_pile_(FakePicturePileImpl::CreateEmptyPile(gfx::Size(1, 1), 67 picture_pile_(FakePicturePileImpl::CreateEmptyPile(gfx::Size(1, 1),
68 gfx::Size(1, 1))) {} 68 gfx::Size(1, 1))) {}
69 69
70 // Overridden from Task: 70 // Overridden from Task:
71 void RunOnWorkerThread() override { 71 void RunOnWorkerThread() override {
72 raster_buffer_->Playback(picture_pile_.get(), gfx::Rect(0, 0, 1, 1), 1.0); 72 raster_buffer_->Playback(picture_pile_.get(), gfx::Rect(1, 1),
73 gfx::Rect(1, 1), 1.0);
73 } 74 }
74 75
75 // Overridden from TileTask: 76 // Overridden from TileTask:
76 void ScheduleOnOriginThread(TileTaskClient* client) override { 77 void ScheduleOnOriginThread(TileTaskClient* client) override {
77 raster_buffer_ = client->AcquireBufferForRaster(resource()); 78 // The raster buffer has no tile ids associated with it for partial update,
79 // so doesn't need to provide a valid dirty rect.
80 TileTaskData data(resource(), 0, 0);
81 raster_buffer_ = client->AcquireBufferForRaster(data);
78 } 82 }
79 void CompleteOnOriginThread(TileTaskClient* client) override { 83 void CompleteOnOriginThread(TileTaskClient* client) override {
80 client->ReleaseBufferForRaster(raster_buffer_.Pass()); 84 client->ReleaseBufferForRaster(raster_buffer_.Pass());
81 } 85 }
82 void RunReplyOnOriginThread() override { 86 void RunReplyOnOriginThread() override {
83 reply_.Run(RasterSource::SolidColorAnalysis(), !HasFinishedRunning()); 87 reply_.Run(RasterSource::SolidColorAnalysis(), !HasFinishedRunning());
84 } 88 }
85 89
86 protected: 90 protected:
87 ~TestRasterTaskImpl() override {} 91 ~TestRasterTaskImpl() override {}
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 base::ThreadTaskRunnerHandle::Get().get(), &task_graph_runner_, 163 base::ThreadTaskRunnerHandle::Get().get(), &task_graph_runner_,
160 resource_provider_.get()); 164 resource_provider_.get());
161 break; 165 break;
162 case TILE_TASK_WORKER_POOL_TYPE_ONE_COPY: 166 case TILE_TASK_WORKER_POOL_TYPE_ONE_COPY:
163 Create3dOutputSurfaceAndResourceProvider(); 167 Create3dOutputSurfaceAndResourceProvider();
164 staging_resource_pool_ = ResourcePool::Create(resource_provider_.get(), 168 staging_resource_pool_ = ResourcePool::Create(resource_provider_.get(),
165 GL_TEXTURE_2D); 169 GL_TEXTURE_2D);
166 tile_task_worker_pool_ = OneCopyTileTaskWorkerPool::Create( 170 tile_task_worker_pool_ = OneCopyTileTaskWorkerPool::Create(
167 base::ThreadTaskRunnerHandle::Get().get(), &task_graph_runner_, 171 base::ThreadTaskRunnerHandle::Get().get(), &task_graph_runner_,
168 context_provider_.get(), resource_provider_.get(), 172 context_provider_.get(), resource_provider_.get(),
169 staging_resource_pool_.get(), kMaxBytesPerCopyOperation); 173 staging_resource_pool_.get(), kMaxBytesPerCopyOperation, false);
170 break; 174 break;
171 case TILE_TASK_WORKER_POOL_TYPE_GPU: 175 case TILE_TASK_WORKER_POOL_TYPE_GPU:
172 Create3dOutputSurfaceAndResourceProvider(); 176 Create3dOutputSurfaceAndResourceProvider();
173 tile_task_worker_pool_ = GpuTileTaskWorkerPool::Create( 177 tile_task_worker_pool_ = GpuTileTaskWorkerPool::Create(
174 base::ThreadTaskRunnerHandle::Get().get(), &task_graph_runner_, 178 base::ThreadTaskRunnerHandle::Get().get(), &task_graph_runner_,
175 context_provider_.get(), resource_provider_.get(), false, 0); 179 context_provider_.get(), resource_provider_.get(), false, 0);
176 break; 180 break;
177 case TILE_TASK_WORKER_POOL_TYPE_BITMAP: 181 case TILE_TASK_WORKER_POOL_TYPE_BITMAP:
178 CreateSoftwareOutputSurfaceAndResourceProvider(); 182 CreateSoftwareOutputSurfaceAndResourceProvider();
179 tile_task_worker_pool_ = BitmapTileTaskWorkerPool::Create( 183 tile_task_worker_pool_ = BitmapTileTaskWorkerPool::Create(
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 void LoseContext(ContextProvider* context_provider) { 287 void LoseContext(ContextProvider* context_provider) {
284 if (!context_provider) 288 if (!context_provider)
285 return; 289 return;
286 context_provider->ContextGL()->LoseContextCHROMIUM( 290 context_provider->ContextGL()->LoseContextCHROMIUM(
287 GL_GUILTY_CONTEXT_RESET_ARB, GL_INNOCENT_CONTEXT_RESET_ARB); 291 GL_GUILTY_CONTEXT_RESET_ARB, GL_INNOCENT_CONTEXT_RESET_ARB);
288 context_provider->ContextGL()->Flush(); 292 context_provider->ContextGL()->Flush();
289 } 293 }
290 294
291 private: 295 private:
292 void Create3dOutputSurfaceAndResourceProvider() { 296 void Create3dOutputSurfaceAndResourceProvider() {
293 output_surface_ = FakeOutputSurface::Create3d( 297 output_surface_ = FakeOutputSurface::Create3d(context_provider_,
294 context_provider_, worker_context_provider_).Pass(); 298 worker_context_provider_);
295 CHECK(output_surface_->BindToClient(&output_surface_client_)); 299 CHECK(output_surface_->BindToClient(&output_surface_client_));
296 TestWebGraphicsContext3D* context3d = context_provider_->TestContext3d(); 300 TestWebGraphicsContext3D* context3d = context_provider_->TestContext3d();
297 context3d->set_support_sync_query(true); 301 context3d->set_support_sync_query(true);
298 resource_provider_ = FakeResourceProvider::Create( 302 resource_provider_ = FakeResourceProvider::Create(
299 output_surface_.get(), nullptr, &gpu_memory_buffer_manager_); 303 output_surface_.get(), nullptr, &gpu_memory_buffer_manager_);
300 } 304 }
301 305
302 void CreateSoftwareOutputSurfaceAndResourceProvider() { 306 void CreateSoftwareOutputSurfaceAndResourceProvider() {
303 output_surface_ = FakeOutputSurface::CreateSoftware( 307 output_surface_ = FakeOutputSurface::CreateSoftware(
304 make_scoped_ptr(new SoftwareOutputDevice)); 308 make_scoped_ptr(new SoftwareOutputDevice));
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 TileTaskWorkerPoolTests, 438 TileTaskWorkerPoolTests,
435 TileTaskWorkerPoolTest, 439 TileTaskWorkerPoolTest,
436 ::testing::Values(TILE_TASK_WORKER_POOL_TYPE_PIXEL_BUFFER, 440 ::testing::Values(TILE_TASK_WORKER_POOL_TYPE_PIXEL_BUFFER,
437 TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY, 441 TILE_TASK_WORKER_POOL_TYPE_ZERO_COPY,
438 TILE_TASK_WORKER_POOL_TYPE_ONE_COPY, 442 TILE_TASK_WORKER_POOL_TYPE_ONE_COPY,
439 TILE_TASK_WORKER_POOL_TYPE_GPU, 443 TILE_TASK_WORKER_POOL_TYPE_GPU,
440 TILE_TASK_WORKER_POOL_TYPE_BITMAP)); 444 TILE_TASK_WORKER_POOL_TYPE_BITMAP));
441 445
442 } // namespace 446 } // namespace
443 } // namespace cc 447 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698