New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 599863 link

Starred by 2 users

Issue metadata

Status: Started
Owner:
Last visit 24 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug

Blocked on:
issue 613812
issue 613814



Sign in to add a comment

Refactor TileTaskRunner and its derived classes.

Project Member Reported by prashan...@samsung.com, Apr 1 2016

Issue description

Refactor task graph runner, tile task runner and it's related classes to exhibit what they do and simplify the interfaces.
 
Status: Started (was: Untriaged)
The description of this bug is very generic. Can you please list specific things that you'd like to accomplish here?
Summary: Refactor TileTaskRunner and its derived classes. (was: Refactor task graph runner.)
Project Member

Comment 4 by bugdroid1@chromium.org, Apr 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a9dd9effc06a05b417255fe97afd92c3f32d963b

commit a9dd9effc06a05b417255fe97afd92c3f32d963b
Author: prashant.n <prashant.n@samsung.com>
Date: Fri Apr 08 19:57:10 2016

cc: Refactor OneCopyTileTaskWorkerPool.

Move the staging buffer pool related functionalities out to its own
file. To isolate the usage of |lock_| from OneCopyTileTaskWorkerPool,
the PlaybackAndCopyOnWorkerThread() is splitted into few other
functions.

  PlaybackAndCopyOnWorkerThread() {
    StagingBufferPool::AcquireStagingBuffer(); // with |lock_|
    PlaybackToStagingBuffer(); // without |lock_|
    CopyOnWorkerThread(); // without |lock_|, with context lock
    StagingBufferPool::ReleaseStagingBuffer(); // with |lock_|
  }

BUG=599863
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1861623003

Cr-Commit-Position: refs/heads/master@{#386170}

[modify] https://crrev.com/a9dd9effc06a05b417255fe97afd92c3f32d963b/cc/BUILD.gn
[modify] https://crrev.com/a9dd9effc06a05b417255fe97afd92c3f32d963b/cc/cc.gyp
[modify] https://crrev.com/a9dd9effc06a05b417255fe97afd92c3f32d963b/cc/raster/one_copy_tile_task_worker_pool.cc
[modify] https://crrev.com/a9dd9effc06a05b417255fe97afd92c3f32d963b/cc/raster/one_copy_tile_task_worker_pool.h
[add] https://crrev.com/a9dd9effc06a05b417255fe97afd92c3f32d963b/cc/raster/staging_buffer_pool.cc
[add] https://crrev.com/a9dd9effc06a05b417255fe97afd92c3f32d963b/cc/raster/staging_buffer_pool.h

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 18 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0bab14526b98f6ef643a5025576c699280028cb5

commit 0bab14526b98f6ef643a5025576c699280028cb5
Author: prashant.n <prashant.n@samsung.com>
Date: Mon Apr 18 07:32:51 2016

cc: Rename TileTaskClient interface to RasterBufferProvider.

Rename TileTaskClient interface to RasterBufferProvider to depict what
it does. This patch moves the interface to raster_buffer.h.

BUG=599863
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1885873002

Cr-Commit-Position: refs/heads/master@{#387866}

[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/bitmap_tile_task_worker_pool.cc
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/bitmap_tile_task_worker_pool.h
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/gpu_tile_task_worker_pool.cc
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/gpu_tile_task_worker_pool.h
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/one_copy_tile_task_worker_pool.cc
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/one_copy_tile_task_worker_pool.h
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/raster_buffer.h
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/tile_task_runner.h
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/tile_task_worker_pool.cc
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/tile_task_worker_pool.h
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/tile_task_worker_pool_perftest.cc
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/tile_task_worker_pool_unittest.cc
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/zero_copy_tile_task_worker_pool.cc
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/raster/zero_copy_tile_task_worker_pool.h
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/test/fake_tile_manager.cc
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/tiles/gpu_image_decode_controller.cc
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/tiles/software_image_decode_controller.cc
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/tiles/tile_manager.cc
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/tiles/tile_manager_perftest.cc
[modify] https://crrev.com/0bab14526b98f6ef643a5025576c699280028cb5/cc/tiles/tile_manager_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 19 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/49b3e6465bc0781cffa00374219e97e0348b51bd

commit 49b3e6465bc0781cffa00374219e97e0348b51bd
Author: prashant.n <prashant.n@samsung.com>
Date: Tue Apr 19 07:04:49 2016

cc: Simplify Task and its derived classes.

This patch merges ImageDecodeTask and RasterTask into TileTask, single
class defining properties specific to tasks used for tiles. Now all
the tile related tasks get derived directly from TileTask.

  RasterTaskImpl : TileTask
  ImageDecodeTaskImpl : TileTask
  ImageUploadTaskImpl : TileTask

This patch also splits (Task + TaskGraph) from TaskGraphRunner and
moves it to its own file which simplifies file include dependencies.

BUG=599863
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1890903002

Cr-Commit-Position: refs/heads/master@{#388152}

[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/BUILD.gn
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/cc.gyp
[rename] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/raster/task.cc
[add] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/raster/task.h
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/raster/task_graph_runner.h
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/raster/task_graph_work_queue.cc
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/raster/tile_task_runner.cc
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/raster/tile_task_runner.h
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/raster/tile_task_worker_pool.h
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/raster/tile_task_worker_pool_perftest.cc
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/raster/tile_task_worker_pool_unittest.cc
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/test/fake_tile_manager.cc
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/tiles/gpu_image_decode_controller.cc
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/tiles/gpu_image_decode_controller.h
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/tiles/gpu_image_decode_controller_unittest.cc
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/tiles/image_decode_controller.h
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/tiles/software_image_decode_controller.cc
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/tiles/software_image_decode_controller.h
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/tiles/software_image_decode_controller_unittest.cc
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/tiles/tile.h
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/tiles/tile_manager.cc
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/tiles/tile_manager.h
[modify] https://crrev.com/49b3e6465bc0781cffa00374219e97e0348b51bd/cc/trees/layer_tree_host_impl.h

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 20 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898

commit 6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898
Author: prashant.n <prashant.n@samsung.com>
Date: Wed Apr 20 05:15:58 2016

cc: Merge TileTaskRunner to TileTaskWorkerPool.

This patches merges all interface functions of TileTaskRunner to
TileTaskWorkerPool.

BUG=599863
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1888713002

Cr-Commit-Position: refs/heads/master@{#388430}

[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/BUILD.gn
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/cc.gyp
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/bitmap_tile_task_worker_pool.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/bitmap_tile_task_worker_pool.h
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/gpu_tile_task_worker_pool.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/gpu_tile_task_worker_pool.h
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/one_copy_tile_task_worker_pool.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/one_copy_tile_task_worker_pool.h
[rename] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/tile_task.cc
[add] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/tile_task.h
[delete] https://crrev.com/3fbc4680695231dc3cc470860cf4d0a2807d6d61/cc/raster/tile_task_runner.h
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/tile_task_worker_pool.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/tile_task_worker_pool.h
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/tile_task_worker_pool_perftest.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/tile_task_worker_pool_unittest.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/zero_copy_tile_task_worker_pool.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/raster/zero_copy_tile_task_worker_pool.h
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/test/fake_tile_manager.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/tiles/gpu_image_decode_controller.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/tiles/gpu_image_decode_controller_unittest.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/tiles/software_image_decode_controller.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/tiles/software_image_decode_controller.h
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/tiles/software_image_decode_controller_unittest.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/tiles/tile.h
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/tiles/tile_draw_info.h
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/tiles/tile_manager.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/tiles/tile_manager.h
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/tiles/tile_manager_perftest.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/tiles/tile_manager_unittest.cc
[modify] https://crrev.com/6cb1bb8c566eedf7c10ee1a367d83c2a6ac6a898/cc/trees/layer_tree_host_impl.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Apr 25 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d67b4b01e6b969df93348eaff249f1d190a72afd

commit d67b4b01e6b969df93348eaff249f1d190a72afd
Author: prashant.n <prashant.n@samsung.com>
Date: Mon Apr 25 19:36:05 2016

cc: Implement states for Task for stricter control.

Implement states for task which gives stricter control for managing
states of a task in single variable vs. multiple variables. The states
are as given below.

  NEW, SCHEDULED, RUNNING, FINISHED, CANCELED

As TaskGraphWorkQueue manages life cycle of task, this patch also moves
state management to TaskGraphWorkQueue from all TaskGraphRunners, i.e.
WillRun() and DidRun() are moved to places where |work_queue_| inserts
task in |running_tasks| and |completed_tasks_| respectively. This
also ensures that task if gets scheduled must end in either FINISHED or
CANCELED state and will help catch any bugs which go out of expected
behavior for task state.

BUG=599863
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1903733003

Cr-Commit-Position: refs/heads/master@{#389538}

[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/single_thread_task_graph_runner.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/synchronous_task_graph_runner.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/task.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/task.h
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/task_graph_runner_perftest.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/task_graph_work_queue.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/tile_task.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/tile_task_worker_pool_perftest.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/tile_task_worker_pool_unittest.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/tiles/gpu_image_decode_controller_unittest.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/tiles/tile_manager.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/content/renderer/raster_worker_pool.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Apr 25 2016

Labels: merge-merged-2716
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d67b4b01e6b969df93348eaff249f1d190a72afd

commit d67b4b01e6b969df93348eaff249f1d190a72afd
Author: prashant.n <prashant.n@samsung.com>
Date: Mon Apr 25 19:36:05 2016

cc: Implement states for Task for stricter control.

Implement states for task which gives stricter control for managing
states of a task in single variable vs. multiple variables. The states
are as given below.

  NEW, SCHEDULED, RUNNING, FINISHED, CANCELED

As TaskGraphWorkQueue manages life cycle of task, this patch also moves
state management to TaskGraphWorkQueue from all TaskGraphRunners, i.e.
WillRun() and DidRun() are moved to places where |work_queue_| inserts
task in |running_tasks| and |completed_tasks_| respectively. This
also ensures that task if gets scheduled must end in either FINISHED or
CANCELED state and will help catch any bugs which go out of expected
behavior for task state.

BUG=599863
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1903733003

Cr-Commit-Position: refs/heads/master@{#389538}

[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/single_thread_task_graph_runner.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/synchronous_task_graph_runner.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/task.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/task.h
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/task_graph_runner_perftest.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/task_graph_work_queue.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/tile_task.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/tile_task_worker_pool_perftest.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/raster/tile_task_worker_pool_unittest.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/tiles/gpu_image_decode_controller_unittest.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/cc/tiles/tile_manager.cc
[modify] https://crrev.com/d67b4b01e6b969df93348eaff249f1d190a72afd/content/renderer/raster_worker_pool.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Apr 29 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b4d4f49c2412fe8a6ddb14b925778726339fc758

commit b4d4f49c2412fe8a6ddb14b925778726339fc758
Author: prashant.n <prashant.n@samsung.com>
Date: Fri Apr 29 12:51:28 2016

cc: Refactor TileTaskWorkerPool.

This patch moves tile task management from all TileTaskWorkerPool
classes to separate class making them thinner.

New class TileTaskManager now handles running tasks using task graph
runner set. This now puts the logic of raster buffer provider and
running task in different classes. This patch also renames all
TileTaskWorkerPools to RasterBufferProviders to depict what they
really do. New test classes FakeRasterBufferProviderImpl,
FakeTileTaskManagerImpl are added to cut the duplicated code.

Fixed duplicate nodes getting added in task graph in raster buffer
provider perftests.

BUG=599863
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/1910213005
Cr-Commit-Position: refs/heads/master@{#390632}

[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/BUILD.gn
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/cc.gyp
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/cc_tests.gyp
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/debug/rasterize_and_record_benchmark_impl.cc
[add] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/bitmap_raster_buffer_provider.cc
[add] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/bitmap_raster_buffer_provider.h
[delete] https://crrev.com/01d8280352825197825e139a60f38ab0cf11b9b8/cc/raster/bitmap_tile_task_worker_pool.cc
[delete] https://crrev.com/01d8280352825197825e139a60f38ab0cf11b9b8/cc/raster/bitmap_tile_task_worker_pool.h
[rename] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/gpu_raster_buffer_provider.cc
[add] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/gpu_raster_buffer_provider.h
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/gpu_rasterizer.h
[delete] https://crrev.com/01d8280352825197825e139a60f38ab0cf11b9b8/cc/raster/gpu_tile_task_worker_pool.h
[rename] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/one_copy_raster_buffer_provider.cc
[rename] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/one_copy_raster_buffer_provider.h
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/raster_buffer.h
[rename] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/raster_buffer_provider.cc
[add] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/raster_buffer_provider.h
[rename] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/raster_buffer_provider_perftest.cc
[rename] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/raster_buffer_provider_unittest.cc
[delete] https://crrev.com/01d8280352825197825e139a60f38ab0cf11b9b8/cc/raster/tile_task_worker_pool.h
[add] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/zero_copy_raster_buffer_provider.cc
[add] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/raster/zero_copy_raster_buffer_provider.h
[delete] https://crrev.com/01d8280352825197825e139a60f38ab0cf11b9b8/cc/raster/zero_copy_tile_task_worker_pool.cc
[delete] https://crrev.com/01d8280352825197825e139a60f38ab0cf11b9b8/cc/raster/zero_copy_tile_task_worker_pool.h
[add] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/test/fake_raster_buffer_provider.cc
[add] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/test/fake_raster_buffer_provider.h
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/test/fake_tile_manager.cc
[add] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/test/fake_tile_task_manager.cc
[add] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/test/fake_tile_task_manager.h
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/test/layer_tree_pixel_resource_test.cc
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/test/layer_tree_pixel_resource_test.h
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/test/layer_tree_test.cc
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/test/pixel_test.cc
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/test/test_hooks.cc
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/test/test_hooks.h
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/tiles/tile_manager.cc
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/tiles/tile_manager.h
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/tiles/tile_manager_perftest.cc
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/tiles/tile_manager_unittest.cc
[add] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/tiles/tile_task_manager.cc
[add] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/tiles/tile_task_manager.h
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/trees/layer_tree_host_impl.cc
[modify] https://crrev.com/b4d4f49c2412fe8a6ddb14b925778726339fc758/cc/trees/layer_tree_host_impl.h

ericrk@/reveman@, Can you pls. point me out how raster worker pool is getting used outside src/cc?
Continuation to comment #11, if it is not getting used directly, I was thinking to move it to cc/raster.

Otherwise I'll just change the name to CategorizedTaskGraphRunner or PrioritizedTaskGraphRunner.
Blockedon: 613812
Blockedon: 613814
Continuation to comment #12, we use RasterWorkerPool as TaskRunner in media (PostDelayedTask). (https://code.google.com/p/chromium/codesearch#chromium/src/media/video/gpu_memory_buffer_video_frame_pool.cc&rcl=1464074483&l=517)

So is it good if we move RasterWorkerPool to cc, so other modules keep referring it as TaskRunner.

Another thought is moving task_graph implementation to base. (src/base/task_graph)

Do let me know your opinions.


Project Member

Comment 16 by bugdroid1@chromium.org, May 26 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/06e1561a832083330a193743a427b1354ab3cd39

commit 06e1561a832083330a193743a427b1354ab3cd39
Author: prashant.n <prashant.n@samsung.com>
Date: Thu May 26 17:35:21 2016

cc: Remove ScheduleOnOriginThread() and CompleteOnOriginThread().

The task's job is performed in RunOnWorkerThread() and schedule or
complete are not needed as a part of task's job. Those are the
responsibilities of task's owner (TileManager - compositor thread).
This patch removes following functions which were basically needed for
async upload. Now raster buffer is provided to task at the time of ctor
and functionality of CompleteOnOriginThread() is moved to task's owner.

  ScheduleOnOriginThread()
  CompleteOnOriginThread()

New OnTaskCompleted() function calls corresponding function of task
owner. This patch implements following life cycle for the task.

  1. Task's owner creates task with all needed info on origin thread.
  2. Task is scheduled and run on worker thread.
  3. Completed task is processed on origin thread by task owner.
  4. Task is destroyed.

This patch also fixes few task related failing cc_perftests (607818).

BUG= 499372 , 599863, 607818,  613529 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/1866043006
Cr-Commit-Position: refs/heads/master@{#396218}

[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/raster/raster_buffer_provider_perftest.cc
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/raster/raster_buffer_provider_unittest.cc
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/raster/task.cc
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/raster/task.h
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/raster/task_graph_runner_perftest.cc
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/raster/tile_task.cc
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/raster/tile_task.h
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/test/fake_tile_task_manager.cc
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/test/fake_tile_task_manager.h
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/test/task_graph_runner_test_template.h
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/tiles/gpu_image_decode_controller.cc
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/tiles/gpu_image_decode_controller.h
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/tiles/gpu_image_decode_controller_unittest.cc
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/tiles/software_image_decode_controller.cc
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/tiles/software_image_decode_controller_unittest.cc
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/tiles/tile_manager.cc
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/tiles/tile_manager.h
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/tiles/tile_manager_unittest.cc
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/tiles/tile_task_manager.cc
[modify] https://crrev.com/06e1561a832083330a193743a427b1354ab3cd39/cc/tiles/tile_task_manager.h

Project Member

Comment 18 by bugdroid1@chromium.org, Jun 1 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fad657e7142a08ebe2f632ae70149f5719c26a58

commit fad657e7142a08ebe2f632ae70149f5719c26a58
Author: prashant.n <prashant.n@samsung.com>
Date: Wed Jun 01 07:52:17 2016

content: Rename RasterWorkerPool -> CategorizedWorkerPool.

When this class was implemented, it was used for only raster work. But
we had started using it for other tasks, along with raster tasks, being
scheduled with different interfaces provided in the class.

BUG=599863

Review-Url: https://codereview.chromium.org/2021323002
Cr-Commit-Position: refs/heads/master@{#397079}

[modify] https://crrev.com/fad657e7142a08ebe2f632ae70149f5719c26a58/base/threading/thread_restrictions.h
[modify] https://crrev.com/fad657e7142a08ebe2f632ae70149f5719c26a58/content/content_renderer.gypi
[modify] https://crrev.com/fad657e7142a08ebe2f632ae70149f5719c26a58/content/content_tests.gypi
[rename] https://crrev.com/fad657e7142a08ebe2f632ae70149f5719c26a58/content/renderer/categorized_worker_pool.cc
[rename] https://crrev.com/fad657e7142a08ebe2f632ae70149f5719c26a58/content/renderer/categorized_worker_pool.h
[add] https://crrev.com/fad657e7142a08ebe2f632ae70149f5719c26a58/content/renderer/categorized_worker_pool_unittest.cc
[delete] https://crrev.com/c3dbab87486a0a9b43e45d0d924bc1c6d131d022/content/renderer/raster_worker_pool_unittest.cc
[modify] https://crrev.com/fad657e7142a08ebe2f632ae70149f5719c26a58/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/fad657e7142a08ebe2f632ae70149f5719c26a58/content/renderer/render_thread_impl.h

Project Member

Comment 19 by bugdroid1@chromium.org, Jun 2 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f5564e64f63b01ae35fa70e9e0a9f71f30d859f1

commit f5564e64f63b01ae35fa70e9e0a9f71f30d859f1
Author: prashant.n <prashant.n@samsung.com>
Date: Thu Jun 02 05:57:58 2016

cc: Rename CompleteOnOriginThread() -> OnTaskCompleted() in tests.

Rename to OnTaskCompleted() in task_graph_runner_test_template.h.

BUG=599863
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/2021023002
Cr-Commit-Position: refs/heads/master@{#397305}

[modify] https://crrev.com/f5564e64f63b01ae35fa70e9e0a9f71f30d859f1/cc/test/task_graph_runner_test_template.cc
[modify] https://crrev.com/f5564e64f63b01ae35fa70e9e0a9f71f30d859f1/cc/test/task_graph_runner_test_template.h

You started fixing this bug over two years ago. Are you still working on it? 

Sign in to add a comment