2097 Commits

Author SHA1 Message Date
John Reck
fe5ac4fc31 am 5f3e21ce: am 6efc3ac6: Merge "Allow ~Layer() to happen after onGLContextDestroyed" into lmp-mr1-dev
* commit '5f3e21cebeecf042e8e18a5021b3965415d9ff60':
  Allow ~Layer() to happen after onGLContextDestroyed
2015-01-29 20:28:08 +00:00
John Reck
57998017ff Allow ~Layer() to happen after onGLContextDestroyed
Bug: 19146354
Change-Id: I9e885936168bd541bfbed4064ad67ab524f58e32
2015-01-29 10:17:57 -08:00
Derek Sollenberger
b3d50e0075 Rename Canvas::getSkCanvas to Canvas::asSkCanvas
Change-Id: I967a45698d382e54eaa5ff64fa8909ff00908650
2015-01-29 11:25:55 -05:00
Chris Craik
96a5c4c7ba Move more GL state management to RenderState and its directory
Change-Id: Ic68584e1c08dc64be2ad43450cb6caa1de834fdc
2015-01-28 16:32:39 -08:00
Chris Craik
65fe5eeb19 Move scissor state to RenderState
Change-Id: I1227a3886fb24e4d9fad79fca469794f06cfb15e
2015-01-27 17:12:39 -08:00
Yabin Cui
026111bc56 am f7049289: am 3812e68e: Merge "kill HAVE_PTHREADS."
automerge: 3a10a67

* commit '3a10a672f05735be46256617b8a61cdb1e589008':
  kill HAVE_PTHREADS.
2015-01-27 23:27:37 +00:00
Yabin Cui
3a10a672f0 am f7049289: am 3812e68e: Merge "kill HAVE_PTHREADS."
* commit 'f70492898b3efa3c5f480f195062fa6f293bc764':
  kill HAVE_PTHREADS.
2015-01-27 07:04:55 +00:00
Yabin Cui
1610486d37 kill HAVE_PTHREADS.
Bug: 19083585
Change-Id: Ib466949bb6cd6d1bbc4680e989f0f9fae62ca564
2015-01-26 22:32:38 -08:00
Rob Tsuk
b9307823dd Merge "Ensure compatible layout for vertices" 2015-01-22 22:04:56 +00:00
Rob Tsuk
a9fc9b20da Ensure compatible layout for vertices
Require that these structs have standard layout, which is what we need
to pass them to OpenGL. Inheritence with data members violates the
rules for standard layout so I re-implemented them using templates to
share the code and putting all the data members in each struct.

Change-Id: I19cd0e5518728f2d3e0993b17d15fce7be7e0edb
2015-01-22 13:53:42 -08:00
Chris Craik
2ae0733982 Remove DisplayListLogBuffer
Change-Id: I001832fc444b6d532f4a382e0a31cc1d8956dbd8
2015-01-21 14:22:39 -08:00
Chris Craik
8076b5a8df Merge "Simplify and correct texture upload unpack alignment parameter" 2015-01-20 22:39:07 +00:00
Chris Craik
37424b3d55 Simplify and correct texture upload unpack alignment parameter
bug:18928352
Change-Id: I484dd225ef495394d5e4283345387647345c2a07
2015-01-20 14:15:51 -08:00
John Reck
849911a9c4 Move Canvas
Change-Id: I83d557af30fc2d5c69d06eedc0f4d52ac41c4210
2015-01-20 12:39:05 -08:00
Chris Craik
98f6bf4c1c am a2e1630b: am 996d3974: am ed35f5c7: Merge "Fast loadInverse() implementation for the common case"
* commit 'a2e1630b1e82f19c8e58882ab484ed21c3508692':
  Fast loadInverse() implementation for the common case
2015-01-16 18:14:01 +00:00
Chris Craik
a2e1630b1e am 996d3974: am ed35f5c7: Merge "Fast loadInverse() implementation for the common case"
* commit '996d39743a73cc37fb888779d52323743f50c666':
  Fast loadInverse() implementation for the common case
2015-01-16 18:07:23 +00:00
Romain Guy
e4998e1ea9 Fast loadInverse() implementation for the common case
Most matrices used by the UI toolkit are translation matrices, whose
inverses can be quickly computed by using the negated translation
vector.

Change-Id: I54a28a634a586085779bfc26f3a4160cd5ab2b22
2015-01-15 16:49:18 -08:00
Rob Tsuk
f28f5cec56 Merge "Clipping performance improvements" 2015-01-15 18:21:35 +00:00
John Reck
f78ff7d49a am cefeb34e: am 2c9f86aa: am 53af1cd3: Merge "Vsyncs are hard" into lmp-mr1-dev
* commit 'cefeb34e4866209e2ccf4c520919fe31a3f1aeb5':
  Vsyncs are hard
2015-01-15 04:57:43 +00:00
John Reck
cefeb34e48 am 2c9f86aa: am 53af1cd3: Merge "Vsyncs are hard" into lmp-mr1-dev
* commit '2c9f86aa21b8d7ea6a77eaca9a49ccdb31245129':
  Vsyncs are hard
2015-01-15 01:39:50 +00:00
Rob Tsuk
487a92caef Clipping performance improvements
Create a ClipArea class to handle tracking clip regions. This class can
select the most efficient implementation depending on the types of
clipping presented.

ClipArea re-used the rectangle and region-based clipping
implementations as well as adding a "list of rotated rectangles"
approach that is more efficient for rotated views with children.

Change-Id: I2133761a2462ebc0852b394220e265974b3086f0
2015-01-14 17:24:58 -08:00
John Reck
a22c9b2cd1 Vsyncs are hard
Bug: 18866485
Change-Id: I7d304df0f20a3296956cb6887a72adba9243f117
2015-01-14 10:40:15 -08:00
Sangkyu Lee
c3c58e015f 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
2015-01-12 13:10:52 +09:00
Derek Sollenberger
3d4eed7f1a Update HWUI to store its own SkBitmap objects
This enables us to...

1) simplify the lifecycle/ownership between Java and HWUI
2) remove DisplayListRenderer::drawBitmapData and associated logic
3) track pixel lifecycle using standard SkPixelRef refcounting
4) Remove uncessary calls to ref/unref the bitmap's pixels and colorTable

Change-Id: I3c95078da20995444f6388a029414280fd654318
2015-01-09 13:56:56 -05:00
John Reck
25bd5d6b04 Merge "Replace sleep() hack with vsync listening" 2015-01-08 19:15:31 +00:00
John Reck
84e390cc90 Replace sleep() hack with vsync listening
Change-Id: I4eb744d9a5abe40cf4f8bbaafa03e59b7360608a
2015-01-06 13:50:43 -08:00
Mike Reed
71487eb0ce Merge frameworks/base changes from master-skia to master.
Adaptations to changes in Skia upstream since Oct 2014.
(https://code.google.com/p/skia/issues/detail?id=2377)

cbb922d use new roundOut signature
77082de Call SkColorTable::readColors().
5456ab1 Handle the result of SkMatrix::asAffine.
25cfc78 Remove dependence on SK_LEGACY_PICTURE_SIZE_API.

BUG:18468293

Change-Id: I5a4d274e854298843891410b1ffd5e24f038b88a
2015-01-06 21:41:35 +00:00
Chris Craik
d41c4d8c73 Add overrides and switch to nullptr keyword for all files
Adds remaining missing overrides and nullptr usages, missed due to
an extreme failure in tool usage.

Change-Id: I56abd72975a3999ad13330003c348db40f59aebf
2015-01-05 16:49:13 -08:00
Tom Hudson
8dfaa49042 Make DisplayListRenderer inherit from Canvas, merge JNI
Incrementally unify the upper layers for Skia and HWUI.
Remove redundant code from GLES20Canvas.java; instead
use inherited mNativeCanvasWrapper and superclass method
definitions.

Moves some unrelated SkPaint utility functions from Renderer
to new utils/PaintUtils.

bug: 15672762
Change-Id: I4ddd4214b8e9eeb95289d054ef423f2542bb5fa5
2015-01-05 15:25:41 -08:00
Chris Craik
51d6a3db97 Cleanup various clang warnings, use unique_ptrs in several places
Change-Id: I347904b25e51fcc7de14b1e72f1acd0f6ba26f3f
2014-12-23 16:53:56 -08:00
Chris Craik
e84a208317 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
2014-12-22 14:56:08 -08:00
Chris Craik
07adacf499 Cleanup
Change-Id: I91ffb9c66697741116fdeaa31abdf6cfd79155df
2014-12-22 11:20:57 -08:00
John Reck
a285e9ed82 am 165fb8f5: am f89dac47: Merge "Tweak RT-animator scheduling" into lmp-mr1-dev
automerge: ed3c296

* commit 'ed3c2962be1e2966c3b46f20e81d2902a8302d8b':
  Tweak RT-animator scheduling
2014-12-19 23:22:58 +00:00
John Reck
ed3c2962be am 165fb8f5: am f89dac47: Merge "Tweak RT-animator scheduling" into lmp-mr1-dev
* commit '165fb8f5aa0709a8dc35f99a9b81f6906452a648':
  Tweak RT-animator scheduling
2014-12-19 23:21:44 +00:00
John Reck
a733f89c05 Tweak RT-animator scheduling
Bug: 18226391

The issue occurs as a result of a dispatchFrame itself
taking longer than 12ms, the alloted budget. The result
is that a vsync request (which occured at the end) would
miss the vsync that occured 1ms prior to the end of the frame.
As a result it would end up waiting for the following vsync,
essentially dropping to 30fps even though 60 could have been
sustained.

Fix this with a few tweaks.
First, adjust the UI thread's delay bias from (now + 4ms) to
(vsync + 4ms), this prevents RT animators from slowly drifting
if the vsync occurs mid-task.
Second, request a vsync preemptively prior to running callbacks.
This way if any callbacks needs the next vsync and it takes
"too long", we will catch that vsync.
Finally, fix an issue where the display event queue was always
drained & rejected at the end of a task loop. Instead, drain
and reject all stale vsyncs. This still prevents the issue of
both UI thread & RT thread trying to drive 2 frames in a single
pulse, but also allows RT to notice that it missed a vsync
pulse it needed and that it should speed-up a bit in response

Change-Id: I9d6be037737e9283297898cac2e3563453e797cd
2014-12-19 11:37:21 -08:00
John Reck
a2732a2bf9 Stop pretending USE_OPENGL_RENDERER is a thing
Change-Id: I732b490431fe90eafa00a00f3b5429f0d3a067e6
2014-12-18 14:12:27 -08:00
John Reck
35cf58ab28 Split hwui's makefile
Change-Id: I7ad1a692e708cad052e8ca5b412c17e25992862c
2014-12-18 13:14:40 -08:00
Chris Craik
a5f0918ec1 resolved conflicts for merge of fd461ede to master
Change-Id: I36f263c7e6d96355dd8a2c3565581b9a983ae481
2014-12-17 15:11:30 -08:00
Chris Craik
fd461edee0 am 93492d1a: am c748832f: Merge "Revert overdraw avoidance visualization change" into lmp-mr1-dev
* commit '93492d1a478770783abab764855c8d47e0264f71':
  Revert overdraw avoidance visualization change
2014-12-17 22:17:21 +00:00
Chris Craik
c748832f75 Merge "Revert overdraw avoidance visualization change" into lmp-mr1-dev 2014-12-17 22:07:04 +00:00
Chris Craik
ef8d6f272a Revert overdraw avoidance visualization change
bug:18787324

Partial revert of 23d307c8d88f4a3849163b9e5b7cd11d0d4f372c.

Change-Id: Ic8b91b046707fc5b8fa53c35ea7b37bb19c3c943
2014-12-17 11:21:02 -08:00
John Reck
f088c349df Fix style
Change-Id: I7227b0eac126bf470ed50249a7809b845872983b
2014-12-12 09:49:29 -08:00
John Reck
30839ce439 am ec9b598c: am b9a4d15d: Merge "Force-flush state sync on texid change" into lmp-mr1-dev automerge: b21a7ad
* commit 'ec9b598c7be65abb5ceb9d82e752c50f7e93deab':
  Force-flush state sync on texid change
2014-12-12 04:34:55 +00:00
Chris Craik
a1c3fdfbc7 am 3f454e7d: am 63c7b246: Merge "Correct layer size formatting in trace" into lmp-mr1-dev automerge: 00905a9
* commit '3f454e7d1cf7103e312f67f745f01f00fa49df13':
  Correct layer size formatting in trace
2014-12-12 04:30:44 +00:00
John Reck
ec9b598c7b am b9a4d15d: Merge "Force-flush state sync on texid change" into lmp-mr1-dev
automerge: b21a7ad

* commit 'b21a7ad02e43900ea5480e796cb1518bd5829e3f':
  Force-flush state sync on texid change
2014-12-12 04:27:14 +00:00
Chris Craik
3f454e7d1c am 63c7b246: Merge "Correct layer size formatting in trace" into lmp-mr1-dev
automerge: 00905a9

* commit '00905a984c07ffc9960ce83548631c59aae37ec6':
  Correct layer size formatting in trace
2014-12-12 04:25:43 +00:00
John Reck
b9a4d15d09 Merge "Force-flush state sync on texid change" into lmp-mr1-dev 2014-12-11 22:44:19 +00:00
Chris Craik
63c7b24645 Merge "Correct layer size formatting in trace" into lmp-mr1-dev 2014-12-11 22:43:18 +00:00
Chris Craik
c2379070a4 Correct layer size formatting in trace
bug:18722704
Change-Id: Icef9aaa62633b2d86ad250f43d4c8fa5cc0b6842
2014-12-11 14:29:51 -08:00
John Reck
9a7fe1a034 Force-flush state sync on texid change
Bug: 18718646

Caused because the Texture object thought the GLES texture
was in a different state than it was as it persists across
EGL/GL contexts. Fix this by force-flushing the default
values when the texid has changed.

Change-Id: I264bac9a2beb08df8e2ba8a85ad15f0dd1fce22a
2014-12-11 14:27:39 -08:00