Refactor task graph runner, tile task runner and it's related classes to exhibit what they do and simplify the interfaces.
The description of this bug is very generic. Can you please list specific things that you'd like to accomplish here?
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
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
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
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
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
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.
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.
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
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7c7060263d42c1b95874150f54635113e4b5f3e4 commit 7c7060263d42c1b95874150f54635113e4b5f3e4 Author: prashant.n <prashant.n@samsung.com> Date: Thu May 26 19:00:09 2016 cc: Implement test task runner for tests. This patch implements simple task runner which handles single task. The functions provided in the class can be used for operating over task. BUG=599863 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review-Url: https://codereview.chromium.org/1997743002 Cr-Commit-Position: refs/heads/master@{#396246} [modify] https://crrev.com/7c7060263d42c1b95874150f54635113e4b5f3e4/cc/BUILD.gn [modify] https://crrev.com/7c7060263d42c1b95874150f54635113e4b5f3e4/cc/cc_tests.gyp [add] https://crrev.com/7c7060263d42c1b95874150f54635113e4b5f3e4/cc/test/test_tile_task_runner.cc [add] https://crrev.com/7c7060263d42c1b95874150f54635113e4b5f3e4/cc/test/test_tile_task_runner.h [modify] https://crrev.com/7c7060263d42c1b95874150f54635113e4b5f3e4/cc/tiles/gpu_image_decode_controller_unittest.cc [modify] https://crrev.com/7c7060263d42c1b95874150f54635113e4b5f3e4/cc/tiles/software_image_decode_controller_unittest.cc
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
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
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/60e135b0bdadbf1ee5e51e7d912977580a4e83ce commit 60e135b0bdadbf1ee5e51e7d912977580a4e83ce Author: prashant.n <prashant.n@samsung.com> Date: Wed Jun 08 04:12:23 2016 cc: Add traces for identification of raster buffer. This patch adds traces in Playback() function depicting which raster buffer provider is used. BUG=599863 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Review-Url: https://codereview.chromium.org/2045743003 Cr-Commit-Position: refs/heads/master@{#398477} [modify] https://crrev.com/60e135b0bdadbf1ee5e51e7d912977580a4e83ce/cc/raster/bitmap_raster_buffer_provider.cc [modify] https://crrev.com/60e135b0bdadbf1ee5e51e7d912977580a4e83ce/cc/raster/gpu_raster_buffer_provider.cc [modify] https://crrev.com/60e135b0bdadbf1ee5e51e7d912977580a4e83ce/cc/raster/one_copy_raster_buffer_provider.cc [modify] https://crrev.com/60e135b0bdadbf1ee5e51e7d912977580a4e83ce/cc/raster/raster_buffer_provider.cc [modify] https://crrev.com/60e135b0bdadbf1ee5e51e7d912977580a4e83ce/cc/raster/zero_copy_raster_buffer_provider.cc
You started fixing this bug over two years ago. Are you still working on it?
Comment 1 by prashan...@samsung.com
, Apr 1 2016