History log of /frameworks/base/libs/hwui/thread/TaskManager.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b251a2f51e636d036598ad27473b9cc55fdac1d7 08-Feb-2016 Chris Craik <ccraik@google.com> Revert "Revert "TaskManager bench""

This reverts commit 9640477e3cc075b0f303e817a3ebcc72d7bc878b.

Change-Id: I3aa8f2830b43b9c7b211c5792a311d0bc698c51a
/frameworks/base/libs/hwui/thread/TaskManager.cpp
9640477e3cc075b0f303e817a3ebcc72d7bc878b 05-Feb-2016 Daniel Chapin <chapin@google.com> Revert "TaskManager bench"

This reverts commit 02db03ca0584371504fd29ced77c00d601cb0971.

Change-Id: I86bdf5e6774e99f9add59a657bfc50d45ebfda1d
/frameworks/base/libs/hwui/thread/TaskManager.cpp
02db03ca0584371504fd29ced77c00d601cb0971 04-Feb-2016 Chris Craik <ccraik@google.com> TaskManager bench

bug:26964750

Change-Id: Ibda0cd2e5e64331a4367d4985d6acfd6f3baeda1
/frameworks/base/libs/hwui/thread/TaskManager.cpp
272a685f17cc4828257e521a6f62b7b17870f75e 30-Jul-2015 John Reck <jreck@google.com> Replace most usages of utils/Vector.h

Change-Id: I540d1b3523244d6c71fc52d6fb30555271c25644
/frameworks/base/libs/hwui/thread/TaskManager.cpp
c452654a4571ef010a00cef79f82b6b2179704f6 07-Jul-2015 John Reck <jreck@google.com> Restrict number of hwuiTask threads

Bug: 22324907
Change-Id: I0013557ede15949a5bd6f3f75bc5dd023a9f945b
/frameworks/base/libs/hwui/thread/TaskManager.cpp
815f2a093a4b44863fe9ffdb1986a2d5425ffef8 24-Mar-2015 John Reck <jreck@google.com> Shave 10us off of hwuitask

This prevents an issue where if the signal schedules
hwuiTask it will immediately block and go back to sleep due
to mLock still being held.

This costs 10us in thread scheduling ping-ponging bouncing
between hwuiTask and RenderThread

Change-Id: I47595c1bf5736576483a6aa7aada0b1be1e04268
/frameworks/base/libs/hwui/thread/TaskManager.cpp
5ad36d4591e7b3b1b74f0a213d18384f53734ab2 04-Feb-2015 John Reck <jreck@google.com> Merge "Fix ANR caused by hwuiTask thread"
1610486d371b867c0a842ede38e64774c18ba5d9 27-Jan-2015 Yabin Cui <yabinc@google.com> kill HAVE_PTHREADS.

Bug: 19083585
Change-Id: Ib466949bb6cd6d1bbc4680e989f0f9fae62ca564
/frameworks/base/libs/hwui/thread/TaskManager.cpp
c3c58e015fa30a0ad87d4af2b95b7071baa8ffe4 12-Jan-2015 Sangkyu Lee <sk82.lee@lge.com> Fix ANR caused by hwuiTask thread

If hwuiTask thread is exited while HWUI renders something,
some tasks can remain unfinished forever.
This can make ANR problem if RenderThread waits this kind of tasks.

According to the current implementation, hwuiTask threads are
exited when HWUI receives trimMemory() callback with level >= 20
and some applications such as SystemUI can receive trimMemory()
with level >= 20 even though they renders something yet.
(For instance, when RecentsActivity in SystemUI is finished,
HWUI receives trimMemory() callback with level >= 20
but SystemUI should still render the status bar and navigation bar.)

This patch prevents the tasks from remaining unfinished and
make the tasks executed immediately if they cannot be added
to their TaskProcessors.

Change-Id: I5bd26439aa5f183b1a7c1ce466362e27554b4d16
/frameworks/base/libs/hwui/thread/TaskManager.cpp
21be43e142a6fcb3283d7b2da14eb39b690cf643 14-Aug-2014 John Reck <jreck@google.com> Fix hwuitask & RT priorities

Bug: 15993695

Change-Id: Ib6f07237cb834e8d10f3074f8fb206d27f91859a
/frameworks/base/libs/hwui/thread/TaskManager.cpp
05f3d6e5111fd08df5cd9aae2c3d28399dc0e7f5 03-Jun-2014 Chris Craik <ccraik@google.com> Tessellate on worker threads

Tessellate and cache (where possible) shadow and round rect
tessellation tasks.

Change-Id: I2cfda8e11d83d51ea74af871235cf26e8f831d40
/frameworks/base/libs/hwui/thread/TaskManager.cpp
0a8c51b1d0d66d6060afcec1eab33091d49332ae 22-Aug-2013 Romain Guy <romainguy@google.com> Properly account for created paths in the cache

Change-Id: I47b89b3085cefab6daac9194e7bfd3c140b37fa2
/frameworks/base/libs/hwui/thread/TaskManager.cpp
c5cbee7d78513527e89450e6369a30a04b2d5e7a 21-Mar-2013 Romain Guy <romainguy@google.com> Stop worker threads on memory trim & fix bad pointer access

Change-Id: I6fe7e31aeb6dd41fa65ab952caed97bc2da510d7
/frameworks/base/libs/hwui/thread/TaskManager.cpp
5dc7fa709646799a5207a5d217f70aa02bf4a3aa 12-Mar-2013 Romain Guy <romainguy@google.com> Add TaskManager API

This API can be used to run arbitrary tasks on a pool of worker
threads. The number of threads is calculated based on the number
of CPU cores available.

The API is made of 3 classes:

TaskManager
Creates and manages the worker threads.

Task
Describes the work to be done and the type of the output.
A task contains a future used to wait for the worker thread
to be done computing the result of the task.

TaskProcessor
The processor dispatches tasks to the TaskManager and is
responsible for performing the computation required by
each task. A processor will only be asked to process tasks
sent to the manager through the processor.

A typical use case:

class MyTask: Task<MyType>

class MyProcessor: TaskProcessor<MyType>

TaskManager m = new TaskManager();
MyProcessor p = new MyProcessor(m);
MyTask t = new MyTask();
p.add(t);

// Waits until the result is available
MyType result = t->getResult();

Change-Id: I1fe845ba4c49bb0e1b0627ab147f9a861c8e0749
/frameworks/base/libs/hwui/thread/TaskManager.cpp