OLD | NEW |
---|---|
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/raster/gpu_tile_task_worker_pool.h" | 5 #include "cc/raster/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/playback/raster_source.h" | 10 #include "cc/playback/raster_source.h" |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
201 void GpuTileTaskWorkerPool::CheckForCompletedTasks() { | 201 void GpuTileTaskWorkerPool::CheckForCompletedTasks() { |
202 TRACE_EVENT0("cc", "GpuTileTaskWorkerPool::CheckForCompletedTasks"); | 202 TRACE_EVENT0("cc", "GpuTileTaskWorkerPool::CheckForCompletedTasks"); |
203 | 203 |
204 task_graph_runner_->CollectCompletedTasks(namespace_token_, | 204 task_graph_runner_->CollectCompletedTasks(namespace_token_, |
205 &completed_tasks_); | 205 &completed_tasks_); |
206 CompleteTasks(completed_tasks_); | 206 CompleteTasks(completed_tasks_); |
207 completed_tasks_.clear(); | 207 completed_tasks_.clear(); |
208 } | 208 } |
209 | 209 |
210 ResourceFormat GpuTileTaskWorkerPool::GetResourceFormat() { | 210 ResourceFormat GpuTileTaskWorkerPool::GetResourceFormat() { |
211 return rasterizer_->resource_provider()->best_texture_format(); | 211 ResourceFormat format = |
vmiura
2015/06/09 23:05:11
We call this per-tile. I think it'd be good to pr
| |
212 rasterizer_->resource_provider()->best_texture_format(); | |
213 if (rasterizer_->msaa_sample_count()) { | |
214 const ContextProvider::Capabilities& caps = rasterizer_->resource_provider() | |
215 ->output_surface() | |
216 ->context_provider() | |
217 ->ContextCapabilities(); | |
218 if (!caps.gpu.render_buffer_format_bgra8888) | |
219 return ResourceFormat::RGBA_8888; | |
220 } | |
221 return format; | |
212 } | 222 } |
213 | 223 |
214 void GpuTileTaskWorkerPool::CompleteTasks(const Task::Vector& tasks) { | 224 void GpuTileTaskWorkerPool::CompleteTasks(const Task::Vector& tasks) { |
215 for (auto& task : tasks) { | 225 for (auto& task : tasks) { |
216 RasterTask* raster_task = static_cast<RasterTask*>(task.get()); | 226 RasterTask* raster_task = static_cast<RasterTask*>(task.get()); |
217 | 227 |
218 raster_task->WillComplete(); | 228 raster_task->WillComplete(); |
219 raster_task->CompleteOnOriginThread(this); | 229 raster_task->CompleteOnOriginThread(this); |
220 raster_task->DidComplete(); | 230 raster_task->DidComplete(); |
221 | 231 |
(...skipping 18 matching lines...) Expand all Loading... | |
240 void GpuTileTaskWorkerPool::OnTaskSetFinished(TaskSet task_set) { | 250 void GpuTileTaskWorkerPool::OnTaskSetFinished(TaskSet task_set) { |
241 TRACE_EVENT1("cc", "GpuTileTaskWorkerPool::OnTaskSetFinished", "task_set", | 251 TRACE_EVENT1("cc", "GpuTileTaskWorkerPool::OnTaskSetFinished", "task_set", |
242 task_set); | 252 task_set); |
243 | 253 |
244 DCHECK(tasks_pending_[task_set]); | 254 DCHECK(tasks_pending_[task_set]); |
245 tasks_pending_[task_set] = false; | 255 tasks_pending_[task_set] = false; |
246 client_->DidFinishRunningTileTasks(task_set); | 256 client_->DidFinishRunningTileTasks(task_set); |
247 } | 257 } |
248 | 258 |
249 } // namespace cc | 259 } // namespace cc |
OLD | NEW |