• Home
  • History
  • Annotate
  • only in /frameworks/base/libs/hwui/thread/
History log of /frameworks/base/libs/hwui/thread/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
49796451cb9d1dae580618eb320ef3c5e6d90cd4 10-Aug-2016 Chih-Hung Hsieh <chh@google.com> Fix clang-tidy warnings in libs/hwui.

* Add explicit keyword to conversion constructors.
Bug: 28341362
* Use const reference type for read-only parameters.
Bug: 30407689
Test: build with WITH_TIDY=1

Change-Id: Iab3e6636f60a70cb124f29dc19f20f842fa8dfda
askManager.h
05160d70d14180fef3782a63dff2e822b51c3cf5 22-Jul-2016 Chih-Hung Hsieh <chh@google.com> resolve merge conflicts of 5152fd9 to stage-aosp-master

Change-Id: I2066125eb4076dbc9e8996bb1fa87735aa6040d3
faecb78a6b11c780db47bc940ca7662899ab5d5e 21-Jul-2016 Chih-Hung Hsieh <chh@google.com> Fix google-explicit-constructor warnings in frameworks/base

* Add explicit keyword to conversion constructors.
* Add NOLINT to implicit conversion constructors.

Bug: 28341362
Test: build with clang-tidy
Change-Id: Ie4d37072ab57d1662d18db4de1c8577247f43337
arrier.h
uture.h
ignal.h
askManager.h
askProcessor.h
ded1d3c45be0307b175bd0cace12749e39814b84 03-May-2016 John Reck <jreck@google.com> Remove high-overhead low-signal trace section

Bug: 28519669

This trace tag makes shadows look way more expensive
than they actually are, particularly troublesome
when tracing things with large number of shadows.

Change-Id: Ib6558b1388edd4b006ec15127470cb9ab563f954
ask.h
38f6c034d153bb648d45bce09d80a69ba3e03360 17-Mar-2016 John Reck <jreck@google.com> Move updating window position off RT

Bug: 27385141
Change-Id: I6c75b5f1d9ef55ef64dde050f71d0e28fb8714bf
arrier.h
b251a2f51e636d036598ad27473b9cc55fdac1d7 08-Feb-2016 Chris Craik <ccraik@google.com> Revert "Revert "TaskManager bench""

This reverts commit 9640477e3cc075b0f303e817a3ebcc72d7bc878b.

Change-Id: I3aa8f2830b43b9c7b211c5792a311d0bc698c51a
askManager.cpp
askManager.h
9640477e3cc075b0f303e817a3ebcc72d7bc878b 05-Feb-2016 Daniel Chapin <chapin@google.com> Revert "TaskManager bench"

This reverts commit 02db03ca0584371504fd29ced77c00d601cb0971.

Change-Id: I86bdf5e6774e99f9add59a657bfc50d45ebfda1d
askManager.cpp
askManager.h
02db03ca0584371504fd29ced77c00d601cb0971 04-Feb-2016 Chris Craik <ccraik@google.com> TaskManager bench

bug:26964750

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

Change-Id: I540d1b3523244d6c71fc52d6fb30555271c25644
askManager.cpp
askManager.h
c452654a4571ef010a00cef79f82b6b2179704f6 07-Jul-2015 John Reck <jreck@google.com> Restrict number of hwuiTask threads

Bug: 22324907
Change-Id: I0013557ede15949a5bd6f3f75bc5dd023a9f945b
askManager.cpp
dee66b6d99dec8bc97843542d5388e50ebd0f6ee 20-Apr-2015 Chris Craik <ccraik@google.com> Simplify TaskManager fallback path

Change-Id: Ie3833449f7fe6aa69b9f71eb8bab1bef0fe434aa
askProcessor.h
bf29ee2a49cfa6e87e535dcb1476ff1336f8bdf9 24-Mar-2015 John Reck <jreck@google.com> Shave another 10us off of hwuitask

pthread_cond_signal does not need the mutex
to be held to signal. This results in the thread
waking up trying to grab the lock, failing, the signaling
thread to wake up, release the lock, immediately get preempted
for the signaled thread which can now proceed.

Release the mutex before signaling to avoid the ping-pong
scheduling issue, which shaves another 10us off of this

Change-Id: Ie6bccca031ba6528f357eae8352b74626a6318c7
ignal.h
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
askManager.cpp
3f5175fccd39c341064e8bd86cb03dba4bc6881c 04-Feb-2015 John Reck <jreck@google.com> resolved conflicts for merge of c7e6b93a to master

Change-Id: I4b791f37193727a0306214645f2f98cdf218cad0
5ad36d4591e7b3b1b74f0a213d18384f53734ab2 04-Feb-2015 John Reck <jreck@google.com> Merge "Fix ANR caused by hwuiTask thread"
026111bc56498d6ac463b335d91e2ee5e06901be 28-Jan-2015 Yabin Cui <yabinc@google.com> am f7049289: am 3812e68e: Merge "kill HAVE_PTHREADS."
automerge: 3a10a67

* commit '3a10a672f05735be46256617b8a61cdb1e589008':
kill HAVE_PTHREADS.
1610486d371b867c0a842ede38e64774c18ba5d9 27-Jan-2015 Yabin Cui <yabinc@google.com> kill HAVE_PTHREADS.

Bug: 19083585
Change-Id: Ib466949bb6cd6d1bbc4680e989f0f9fae62ca564
askManager.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
askManager.cpp
askProcessor.h
e84a208317e0ed388fcdad1e6743c7849acb51b0 22-Dec-2014 Chris Craik <ccraik@google.com> Add overrides and switch to nullptr keyword

Changes generated with clang-modernize.

Additionally, fixed some struct-vs-class usage to make clang happy.

Change-Id: Ic6ef2427401ff1e794d26f21f7b44868fc75fb72
askManager.h
askProcessor.h
21be43e142a6fcb3283d7b2da14eb39b690cf643 14-Aug-2014 John Reck <jreck@google.com> Fix hwuitask & RT priorities

Bug: 15993695

Change-Id: Ib6f07237cb834e8d10f3074f8fb206d27f91859a
askManager.cpp
askManager.h
6ac174b97246ed40fe780b29561603b61770fa17 17-Jun-2014 Chris Craik <ccraik@google.com> Clean up tessellation cache in prep for other tesselation types

bug:15536396

Also fixes compilation warning, avoids SkPaint deep copy

Change-Id: I74334f08b1d34c6789aabf968ff62db5bacbed1b
ask.h
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
askManager.cpp
0a8c51b1d0d66d6060afcec1eab33091d49332ae 22-Aug-2013 Romain Guy <romainguy@google.com> Properly account for created paths in the cache

Change-Id: I47b89b3085cefab6daac9194e7bfd3c140b37fa2
askManager.cpp
78dd96d5af20f489f0e8b288617d57774ec284f7 03-May-2013 Romain Guy <romainguy@google.com> Add an on-screen overdraw counter

The counter can be enabled by setting the system property called
debug.hwui.overdraw to the string "count". If the string is set
to "show", overdraw will be highlighted on screen instead of
printing out a simple counter.

Change-Id: I9a9c970d54bffab43138bbb7682f6c04bc2c40bd
askManager.h
c5cbee7d78513527e89450e6369a30a04b2d5e7a 21-Mar-2013 Romain Guy <romainguy@google.com> Stop worker threads on memory trim & fix bad pointer access

Change-Id: I6fe7e31aeb6dd41fa65ab952caed97bc2da510d7
askManager.cpp
askManager.h
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
uture.h
ask.h
askManager.cpp
askManager.h
askProcessor.h
ca89e2a68703bd428e8b66547d033a6ed35b3595 09-Mar-2013 Romain Guy <romainguy@google.com> Precache paths from a worker thread

Change-Id: I3e7b53d67e0e03e403beaf55c39350ead7f1e309
arrier.h
uture.h
ignal.h