diff options
Diffstat (limited to 'cc/raster/task_graph_runner.h')
-rw-r--r-- | cc/raster/task_graph_runner.h | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/cc/raster/task_graph_runner.h b/cc/raster/task_graph_runner.h index b5ffade..181a455 100644 --- a/cc/raster/task_graph_runner.h +++ b/cc/raster/task_graph_runner.h @@ -46,19 +46,29 @@ class CC_EXPORT Task : public base::RefCountedThreadSafe<Task> { // A task dependency graph describes the order in which to execute a set // of tasks. Dependencies are represented as edges. Each node is assigned -// a priority and a run count that matches the number of dependencies. -// Priority range from 0 (most favorable scheduling) to UINT_MAX -// (least favorable). +// a category, a priority and a run count that matches the number of +// dependencies. Priority range from 0 (most favorable scheduling) to UINT16_MAX +// (least favorable). Categories range from 0 to UINT16_MAX. It is up to the +// implementation and its consumer to determine the meaning (if any) of a +// category. A TaskGraphRunner implementation may chose to prioritize certain +// categories over others, regardless of the individual priorities of tasks. struct CC_EXPORT TaskGraph { struct Node { typedef std::vector<Node> Vector; - Node(Task* task, size_t priority, size_t dependencies) - : task(task), priority(priority), dependencies(dependencies) {} + Node(Task* task, + uint16_t category, + uint16_t priority, + uint32_t dependencies) + : task(task), + category(category), + priority(priority), + dependencies(dependencies) {} Task* task; - size_t priority; - size_t dependencies; + uint16_t category; + uint16_t priority; + uint32_t dependencies; }; struct Edge { |