OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/tiles/tile_manager.h" | 5 #include "cc/tiles/tile_manager.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 508 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
519 void TileManager::Flush() { | 519 void TileManager::Flush() { |
520 TRACE_EVENT0("cc", "TileManager::Flush"); | 520 TRACE_EVENT0("cc", "TileManager::Flush"); |
521 | 521 |
522 if (!tile_task_manager_) { | 522 if (!tile_task_manager_) { |
523 TRACE_EVENT_INSTANT0("cc", "Flush aborted", TRACE_EVENT_SCOPE_THREAD); | 523 TRACE_EVENT_INSTANT0("cc", "Flush aborted", TRACE_EVENT_SCOPE_THREAD); |
524 return; | 524 return; |
525 } | 525 } |
526 | 526 |
527 tile_task_manager_->CheckForCompletedTasks(); | 527 tile_task_manager_->CheckForCompletedTasks(); |
528 did_check_for_completed_tasks_since_last_schedule_tasks_ = true; | 528 did_check_for_completed_tasks_since_last_schedule_tasks_ = true; |
| 529 |
| 530 // Actually flush. |
| 531 raster_buffer_provider_->Flush(); |
| 532 |
529 CheckPendingGpuWorkTiles(true /* issue_signals */); | 533 CheckPendingGpuWorkTiles(true /* issue_signals */); |
530 | 534 |
531 TRACE_EVENT_INSTANT1("cc", "DidFlush", TRACE_EVENT_SCOPE_THREAD, "stats", | 535 TRACE_EVENT_INSTANT1("cc", "DidFlush", TRACE_EVENT_SCOPE_THREAD, "stats", |
532 RasterTaskCompletionStatsAsValue(flush_stats_)); | 536 RasterTaskCompletionStatsAsValue(flush_stats_)); |
533 flush_stats_ = RasterTaskCompletionStats(); | 537 flush_stats_ = RasterTaskCompletionStats(); |
534 } | 538 } |
535 | 539 |
536 void TileManager::DidModifyTilePriorities() { | 540 void TileManager::DidModifyTilePriorities() { |
537 pending_tile_requirements_dirty_ = true; | 541 pending_tile_requirements_dirty_ = true; |
538 } | 542 } |
(...skipping 880 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1419 state->EndDictionary(); | 1423 state->EndDictionary(); |
1420 return std::move(state); | 1424 return std::move(state); |
1421 } | 1425 } |
1422 | 1426 |
1423 bool TileManager::UsePartialRaster() const { | 1427 bool TileManager::UsePartialRaster() const { |
1424 return tile_manager_settings_.use_partial_raster && | 1428 return tile_manager_settings_.use_partial_raster && |
1425 raster_buffer_provider_->CanPartialRasterIntoProvidedResource(); | 1429 raster_buffer_provider_->CanPartialRasterIntoProvidedResource(); |
1426 } | 1430 } |
1427 | 1431 |
1428 void TileManager::CheckPendingGpuWorkTiles(bool issue_signals) { | 1432 void TileManager::CheckPendingGpuWorkTiles(bool issue_signals) { |
| 1433 TRACE_EVENT2("cc", "TileManager::CheckPendingGpuWorkTiles", |
| 1434 "pending_gpu_work_tiles", pending_gpu_work_tiles_.size(), |
| 1435 "tree_priority", |
| 1436 TreePriorityToString(global_state_.tree_priority)); |
| 1437 |
1429 ResourceProvider::ResourceIdArray required_for_activation_ids; | 1438 ResourceProvider::ResourceIdArray required_for_activation_ids; |
1430 ResourceProvider::ResourceIdArray required_for_draw_ids; | 1439 ResourceProvider::ResourceIdArray required_for_draw_ids; |
1431 | 1440 |
1432 for (auto it = pending_gpu_work_tiles_.begin(); | 1441 for (auto it = pending_gpu_work_tiles_.begin(); |
1433 it != pending_gpu_work_tiles_.end();) { | 1442 it != pending_gpu_work_tiles_.end();) { |
1434 Tile* tile = *it; | 1443 Tile* tile = *it; |
1435 const Resource* resource = tile->draw_info().resource(); | 1444 const Resource* resource = tile->draw_info().resource(); |
1436 DCHECK(resource); | 1445 DCHECK(resource); |
1437 | 1446 |
1438 if (global_state_.tree_priority != SMOOTHNESS_TAKES_PRIORITY || | 1447 if (global_state_.tree_priority != SMOOTHNESS_TAKES_PRIORITY || |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1641 all_tile_tasks_completed = false; | 1650 all_tile_tasks_completed = false; |
1642 did_notify_all_tile_tasks_completed = false; | 1651 did_notify_all_tile_tasks_completed = false; |
1643 } | 1652 } |
1644 | 1653 |
1645 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule() = default; | 1654 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule() = default; |
1646 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule( | 1655 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule( |
1647 PrioritizedWorkToSchedule&& other) = default; | 1656 PrioritizedWorkToSchedule&& other) = default; |
1648 TileManager::PrioritizedWorkToSchedule::~PrioritizedWorkToSchedule() = default; | 1657 TileManager::PrioritizedWorkToSchedule::~PrioritizedWorkToSchedule() = default; |
1649 | 1658 |
1650 } // namespace cc | 1659 } // namespace cc |
OLD | NEW |