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

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

Issue 1063493002: cc: Remove all traces of synchronous GPU rasterization (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more deleted code Created 5 years, 8 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/gpu_tile_task_worker_pool.h" 5 #include "cc/resources/gpu_tile_task_worker_pool.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/trace_event/trace_event.h" 9 #include "base/trace_event/trace_event.h"
10 #include "cc/resources/gpu_rasterizer.h" 10 #include "cc/resources/gpu_rasterizer.h"
(...skipping 27 matching lines...) Expand all
38 ->worker_context_provider(); 38 ->worker_context_provider();
39 39
40 // The context lock must be held while accessing the context on a 40 // The context lock must be held while accessing the context on a
41 // worker thread. 41 // worker thread.
42 base::AutoLock context_lock(*context_provider->GetLock()); 42 base::AutoLock context_lock(*context_provider->GetLock());
43 43
44 // Allow this worker thread to bind to context_provider. 44 // Allow this worker thread to bind to context_provider.
45 context_provider->DetachFromThread(); 45 context_provider->DetachFromThread();
46 46
47 // Rasterize source into resource. 47 // Rasterize source into resource.
48 rasterizer_->RasterizeSource(true, &lock_, raster_source, rect, scale); 48 rasterizer_->RasterizeSource(&lock_, raster_source, rect, scale);
49 49
50 // Barrier to sync worker context output to cc context. 50 // Barrier to sync worker context output to cc context.
51 context_provider->ContextGL()->OrderingBarrierCHROMIUM(); 51 context_provider->ContextGL()->OrderingBarrierCHROMIUM();
52 52
53 // Allow compositor thread to bind to context_provider. 53 // Allow compositor thread to bind to context_provider.
54 context_provider->DetachFromThread(); 54 context_provider->DetachFromThread();
55 } 55 }
56 56
57 private: 57 private:
58 GpuRasterizer* rasterizer_; 58 GpuRasterizer* rasterizer_;
59 ResourceProvider::ScopedWriteLockGr lock_; 59 ResourceProvider::ScopedWriteLockGr lock_;
60 const Resource* resource_; 60 const Resource* resource_;
61 61
62 DISALLOW_COPY_AND_ASSIGN(RasterBufferImpl); 62 DISALLOW_COPY_AND_ASSIGN(RasterBufferImpl);
63 }; 63 };
64 64
65 } // namespace 65 } // namespace
66 66
67 // static 67 // static
68 scoped_ptr<TileTaskWorkerPool> GpuTileTaskWorkerPool::Create( 68 scoped_ptr<TileTaskWorkerPool> GpuTileTaskWorkerPool::Create(
69 base::SequencedTaskRunner* task_runner, 69 base::SequencedTaskRunner* task_runner,
70 TaskGraphRunner* task_graph_runner, 70 TaskGraphRunner* task_graph_runner,
71 GpuRasterizer* rasterizer) { 71 ContextProvider* context_provider,
72 return make_scoped_ptr<TileTaskWorkerPool>( 72 ResourceProvider* resource_provider,
73 new GpuTileTaskWorkerPool(task_runner, task_graph_runner, rasterizer)); 73 bool use_distance_field_text,
74 int gpu_rasterization_msaa_sample_count) {
75 return make_scoped_ptr<TileTaskWorkerPool>(new GpuTileTaskWorkerPool(
76 task_runner, task_graph_runner, context_provider, resource_provider,
77 use_distance_field_text, gpu_rasterization_msaa_sample_count));
74 } 78 }
75 79
76 GpuTileTaskWorkerPool::GpuTileTaskWorkerPool( 80 GpuTileTaskWorkerPool::GpuTileTaskWorkerPool(
77 base::SequencedTaskRunner* task_runner, 81 base::SequencedTaskRunner* task_runner,
78 TaskGraphRunner* task_graph_runner, 82 TaskGraphRunner* task_graph_runner,
79 GpuRasterizer* rasterizer) 83 ContextProvider* context_provider,
84 ResourceProvider* resource_provider,
85 bool use_distance_field_text,
86 int gpu_rasterization_msaa_sample_count)
80 : task_runner_(task_runner), 87 : task_runner_(task_runner),
81 task_graph_runner_(task_graph_runner), 88 task_graph_runner_(task_graph_runner),
82 namespace_token_(task_graph_runner_->GetNamespaceToken()), 89 namespace_token_(task_graph_runner_->GetNamespaceToken()),
83 rasterizer_(rasterizer), 90 rasterizer_(new GpuRasterizer(context_provider,
91 resource_provider,
92 use_distance_field_text,
93 gpu_rasterization_msaa_sample_count)),
84 task_set_finished_weak_ptr_factory_(this), 94 task_set_finished_weak_ptr_factory_(this),
85 weak_ptr_factory_(this) { 95 weak_ptr_factory_(this) {
86 } 96 }
87 97
88 GpuTileTaskWorkerPool::~GpuTileTaskWorkerPool() { 98 GpuTileTaskWorkerPool::~GpuTileTaskWorkerPool() {
89 DCHECK_EQ(0u, completed_tasks_.size()); 99 DCHECK_EQ(0u, completed_tasks_.size());
90 } 100 }
91 101
92 TileTaskRunner* GpuTileTaskWorkerPool::AsTileTaskRunner() { 102 TileTaskRunner* GpuTileTaskWorkerPool::AsTileTaskRunner() {
93 return this; 103 return this;
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 raster_task->DidComplete(); 202 raster_task->DidComplete();
193 203
194 raster_task->RunReplyOnOriginThread(); 204 raster_task->RunReplyOnOriginThread();
195 } 205 }
196 completed_tasks_.clear(); 206 completed_tasks_.clear();
197 } 207 }
198 208
199 scoped_ptr<RasterBuffer> GpuTileTaskWorkerPool::AcquireBufferForRaster( 209 scoped_ptr<RasterBuffer> GpuTileTaskWorkerPool::AcquireBufferForRaster(
200 const Resource* resource) { 210 const Resource* resource) {
201 return make_scoped_ptr<RasterBuffer>( 211 return make_scoped_ptr<RasterBuffer>(
202 new RasterBufferImpl(rasterizer_, resource)); 212 new RasterBufferImpl(rasterizer_.get(), resource));
hendrikw 2015/04/03 22:00:09 This was my only concern with this cl, since the l
203 } 213 }
204 214
205 void GpuTileTaskWorkerPool::ReleaseBufferForRaster( 215 void GpuTileTaskWorkerPool::ReleaseBufferForRaster(
206 scoped_ptr<RasterBuffer> buffer) { 216 scoped_ptr<RasterBuffer> buffer) {
207 // Nothing to do here. RasterBufferImpl destructor cleans up after itself. 217 // Nothing to do here. RasterBufferImpl destructor cleans up after itself.
208 } 218 }
209 219
210 void GpuTileTaskWorkerPool::OnTaskSetFinished(TaskSet task_set) { 220 void GpuTileTaskWorkerPool::OnTaskSetFinished(TaskSet task_set) {
211 TRACE_EVENT1("cc", "GpuTileTaskWorkerPool::OnTaskSetFinished", "task_set", 221 TRACE_EVENT1("cc", "GpuTileTaskWorkerPool::OnTaskSetFinished", "task_set",
212 task_set); 222 task_set);
213 223
214 DCHECK(tasks_pending_[task_set]); 224 DCHECK(tasks_pending_[task_set]);
215 tasks_pending_[task_set] = false; 225 tasks_pending_[task_set] = false;
216 client_->DidFinishRunningTileTasks(task_set); 226 client_->DidFinishRunningTileTasks(task_set);
217 } 227 }
218 228
219 } // namespace cc 229 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698