56 Commits

Author SHA1 Message Date
John Reck
f648108f83 Have RT drive window positioning
Bug: 22802885

Change-Id: I6beed5474d3a943b16e9097f7bd61ce3cbd37505
2016-02-04 11:23:49 -08:00
Chris Craik
f158b49c88 Rename Reorderers to Builders
Change-Id: I9bb5a2e70055e2f6d14912fbd86ab72ac0d6e20c
2016-01-12 14:45:08 -08:00
Chris Craik
5ea1724be4 Rename OpReorderer to FrameReorderer
Also separate LayerReorderer into its own files.

Change-Id: Iafb6a156f760f62f831f6288fd0dadf1db25da24
2016-01-11 15:35:52 -08:00
Chris Craik
8d1f2120fe Support projection in OpReorderer
bug:22480459

Change-Id: Iceb71732dc50957cfb47fa1ba9b8e18e6fc51132
2015-11-25 14:09:24 -08:00
Chris Craik
8ecf41c61a Add temporary layer alpha fallback to OpReorderer
Also adds logic to clip temporary layers to viewport both for
efficiency and to allow large ones (such as the fallback case) to fit
in max texture size.

Change-Id: Iee51495220f5ca1dc7e6f5fd3615db2e896efd74
2015-11-17 14:50:49 -08:00
Chris Craik
161f54b2d4 Add z-reordering support to OpReorderer
Change-Id: I3fa969fe53cf648d145810f69fa7dada376c0b9a
2015-11-05 15:45:59 -08:00
Chris Craik
76caecf421 Add more RenderNode property support in OpReorderer path
Change-Id: I0163fe91d8145e33019739c191bbab0432a5f9aa
2015-11-05 15:25:12 -08:00
Chris Craik
0b7e8245db Initial HW layer support in new reorderer/renderer
Shares vast majority of clipped savelayer code, with only minor
differences in lifecycle.

Doesn't yet handle fill region, resize, or window transform.

Change-Id: Iabdd71811590d2b937eb11e1b01ce556ade54a5a
2015-11-02 12:59:38 -08:00
Chris Craik
003cc3dec8 Rename DisplayListData to DisplayList
Change-Id: I25f6bb88ffdf9baf7e8e4e2a294aa8c9d2a4605b
2015-10-16 10:38:34 -07:00
Chris Craik
b565df13a9 Initial commit of new Canvas operation recording / replay
Done:
- drawRect, drawBitmap, drawColor, drawPaint, drawRenderNode, drawRegion
- Recording with new DisplayList format
- batching & reordering
- Stateless op reorder
- Stateless op rendering
- Frame lifecycle (clear, geterror, cleanup)

Not done:
- SaveLayer (clipped and unclipped)
- HW layers
- Complex clipping
- Ripple projection
- Z reordering
- Z shadows
- onDefer prefetching (text + task kickoff)
- round rect clip
- linear allocation for std collections
- AssetAtlas support

Change-Id: Iaf98c1a3aeab5fa47cc8f9c6d964420abc0e7691
2015-10-14 16:10:40 -07:00
John Reck
e248bd1b2c Serializing display lists
This is a WIP prototype

Change-Id: Id4bfcf2b7bf905221c3734b7b6887c9b2efd37e6
2015-08-26 16:29:15 -07:00
Chris Craik
b9ce116dac Switch several enums to enum classes
Change-Id: I00ecd0b61657196b51704f70ca31a9d1c1ac254e
2015-08-21 23:05:44 +00:00
Derek Sollenberger
f293259c0d Cleanup unused param in RenderNode::computeOrdering
Change-Id: I4012ac7fce446770c5619dc149f6d62741237fc2
2015-08-14 15:11:23 -04:00
John Reck
272a685f17 Replace most usages of utils/Vector.h
Change-Id: I540d1b3523244d6c71fc52d6fb30555271c25644
2015-07-30 09:51:52 -07:00
Chris Craik
5a4690bf26 Clean up unncessary defines
LOG_TAG and TRACE_TAG are already defined in the makefile

Change-Id: I9e53e3dacbe018441edd74cb7c8c90846defee74
2015-07-14 13:25:38 -07:00
Chris Craik
a766cb2bce Put WebViews with on a HW layer if stencil/shader clipping is needed
bug:17322378
Change-Id: I0de574bf116b30e2ad4194366e19d47d49708902
2015-06-12 13:34:58 -07:00
Chris Craik
db663fe83f Rename native DisplayListRenderer to DisplayListCanvas
Change-Id: I33e6f8cc85da1e7da7ff7bf18d4ebde64222067a
2015-04-20 14:20:47 -07:00
John Reck
9481684560 am e05575e9: am a8d83d63: Merge "Layer changes" into lmp-mr1-dev automerge: a51fba0
* commit 'e05575e9c36850d8cfe49396ac9a1372511b12bf':
  Layer changes
2014-10-31 23:30:57 +00:00
John Reck
0e89e2b7bc Layer changes
Bug: 17208461

* Switch Layer to be VirtualLightRefBase instead of
  Caches' side-channel ref-counting
* Include active layers in gfxinfo dump
* Run gfxinfo dump on the correct thread
* Dump gfxinfo on Layer creation failure

Change-Id: I28d195699e2334518e215ab28c7a17355aee9678
2014-10-31 15:30:10 -07:00
Tom Hudson
2dc236b2ba Clean up physical coupling
Narrow the use of #include directives in hwui, replacing with forward
declarations where straightforward. Speeds compiles; doesn't do any
restructuring of code.

Change-Id: Icac2baffb5896f55d8c6718e9bd9d4bfa02d3ca0
2014-10-15 15:51:39 -04:00
John Reck
443a714fa7 Yet more layer tracking logging
Bug: 17208461

Change-Id: I55e7d0921eb565867e966d68b798b7b92c391b55
2014-09-04 17:40:05 -07:00
Chris Craik
bf939b2671 Merge "Update transform isolation to handle command chunks" into lmp-dev 2014-08-28 17:27:24 +00:00
John Reck
119907cd25 Animator stuff
Bug: 17228458

Change-Id: Id884a429a512f9cd2be0ed16dbd0f10e92b4440d
2014-08-27 17:44:25 -07:00
Chris Craik
c3e75f9d54 Update transform isolation to handle command chunks
bug:15570351

Prevent drawing transformations on a ViewGroup's canvas from directly
affecting the transformation of the children through the renderer,
since it's already baked into mTransformFromParent at record time.

Change-Id: I6310a2260dfe4def0bde1fd2c5b93791a645d586
2014-08-27 15:43:42 -07:00
Chris Craik
8afd0f245c Create z reordering boundaries around dispatchDraw
bug:16012254

This means rendernodes with a Z will no longer be drawn at the end of
their parent's DisplayList, but at the end of the associated reorder
region (DisplayListData::Chunk).

Change-Id: Ia033fee9d9a4db567b2a8d5e90fc57a4d0a64544
2014-08-25 15:35:40 -07:00
Chris Craik
69e5adffb1 Define shadow casting behavior within layers
bug:15860114

Savelayers and HW layers both now support shadow casting.

For save layers, the light source should always be correct, for HW
layers, the light source position is set when the layer is created,
and updated when it is resized.

Change-Id: Ie85567dd43c2bb0a0b08fd0bd4db41efa793ac2b
2014-08-15 00:59:44 +00:00
John Reck
a7c2ea20c4 Fix damage for layers for projection receivers
Bug: 16880228

Change-Id: I59ab760a21f49cc2cac0d8936b173cff292e6114
2014-08-08 20:24:34 +00:00
John Reck
0a97330b98 Fix root RenderNode damage calculation
Bug: 15888445

Change-Id: I281ec9271c9889673dcdfcb6d31e341a7b47b7de
2014-07-16 13:55:14 -07:00
John Reck
dcba6725e8 Fix layers lifecycle issues
Bug: 16118540

 Fix an issue where we could have a reference to a Layer after
 the GL context was destroyed

Change-Id: I7bfd909d735ca6b942ebe188fc10099422eb6d95
2014-07-08 14:14:55 -07:00
John Reck
68bfe0a37a Animator refactoring & fixes
Tweaks animators to have less unnecessary refcounting

 Pull animator management out into seperate class

 More control to tweak animator lifecycle, such as doing
 Java-side handling of start delay by attaching but not
 starting the animator

Change-Id: I4ff8207580ca11fb38f45ef0007b406e0097281c
2014-06-26 10:45:43 -07:00
John Reck
3b20251a35 No-fail invokeFunctor
Bug: 15513308
 Bug: 15449247

Change-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c
2014-06-23 15:26:49 -07:00
Chris Craik
a7090e0cfd Update 'DisplayList' vs 'RenderNode' naming in several places
Change-Id: I635c6627d098b661fb9b0ba1bd42fa6d7277d287
2014-06-23 09:57:07 -07:00
Chris Craik
3281442aa7 Merge "Wrap ViewGroup content in save/restore to protect composited children" 2014-06-20 02:09:17 +00:00
Chris Craik
80d4902196 Wrap ViewGroup content in save/restore to protect composited children
bug:15570351

Pos Z composited children are drawn before the primary restore for a
RenderNode. This means that without an additional save/restore (which
wraps the content) they aren't protected from transformations/clips
that happen within the ViewGroup's DisplayList.

Also changes RenderNode to use OpenGLRenderer tag for displaylist
dumping consistency, and simplifies the entry points into RenderNode
drawing, since the distinction between tree root vs tree internal is
no longer important.

Change-Id: I2621eba0592c74d71f85a91a4ab3d0da2d7468d3
2014-06-20 16:18:58 -07:00
John Reck
2218472d23 Re-enable ViewPropAnimRT
Change-Id: I2f30547c4e2212747c479760dff4f3f901d1eaf3
2014-06-20 14:05:51 -07:00
John Reck
25fbb3fa11 Move LayerType to RenderNode
Change-Id: Icb79a5015cb0362b1f3a66d09007450730135a97
2014-06-12 19:25:33 -07:00
John Reck
a447d29c65 Fix DA bugs
* Now aware of transform of DrawDisplayListOp
 * Supports projection

 Bug: 15539677
 Bug: 15506680

Change-Id: Ic16f482cd48c3add12e49eca529281be12b93491
2014-06-12 09:13:45 -07:00
John Reck
e4267ea4f2 Even FASTER damage calculations!
* Now with more native!
 * Less matrix math thanks to bulk-property-update support!
 * Zero JNI on the View.damageInParent() path!
 * Fully aware of RT-driven animators!
 * Likely full of new and exciting bugs!
 * But it also fixes at least 1 existing invalidate bug!

Change-Id: Ie0773f85a60850ff2668370c58defef2e8aa079f
2014-06-04 12:21:26 -07:00
John Reck
fe5e7b7346 Enable debug stuffs
Bug: 14596762
 * dumpsys gfxinfo implemented
 * profile GPU visual_bars implemented

Change-Id: Icb948a9d5af5989b5615504d0d76ade64b93ef5b
2014-05-29 15:00:29 -07:00
John Reck
ff941dcd81 Animator start value...
Change-Id: Ifd35ed95a28c625086d7fa97764fe63ab4a997f1
2014-05-15 08:53:39 -07:00
John Reck
9fa4071c47 Refactor VirtualLightRefBase & JNI
Change-Id: I8e244e7109e59d5be96871b23bb9b1201c7f9eaa
2014-05-09 15:28:54 -07:00
John Reck
52244fff29 Add CanvasProperty for drawCircle
Change-Id: Icbcc030f5033d2094e567d7c519b9d672f2aac1c
2014-05-02 13:43:46 -07:00
John Reck
e45b1fd03b RenderThread animator support
Change-Id: Icf29098edfdaf7ed550bbe9d49e9eaefb4167084
2014-04-29 10:42:11 -07:00
Chris Craik
3f085429fd Clip TouchFeedbackDrawable effect to receiver Outline
Projected RenderNodes are now wrapped with a ClipRect or masked
SaveLayer, so that they are clipped to the outline of the projection
receiver surface.

Change-Id: I1d4afc1bb5d638d650bc0b1dac51a498f216773e
2014-04-23 16:15:11 -07:00
John Reck
860d155f86 Fix issue with bitmap uploading
Bug: 13912749

Change-Id: Ic23fa1d280118dc93dc2716a4a24cc0bbbdca595
2014-04-14 13:17:25 -07:00
Chris Craik
143912fef8 Remove use-after-free signal in RenderNode
bug:9321162

mDestroyed is no longer useful, as RenderNode is ref counted (not to
mention having its lifecycle significantly redesigned).

Change-Id: I429b9dd7740362c85d6416fbae567f0d47098e4e
2014-04-11 13:48:46 -07:00
John Reck
f4198b713e Merge hasFunctors & pushStaging into prepareTree
Bug: 13902607
 Fixes synchronous mode for WebView in HardwareLayers

Change-Id: I90de1e26dcfd9b75cc2f03bac72705fc23237b68
2014-04-09 17:00:04 -07:00
John Reck
8e1f918738 Merge "Switch DisplayListData to a staging model" 2014-04-09 23:01:02 +00:00
John Reck
8de65a8e05 Switch DisplayListData to a staging model
Bug: 13912977

Change-Id: I5b2f664e797be22a58300964f57ceb4fab60528c
2014-04-09 15:48:00 -07:00
Chris Craik
defb7f37fe When recording a child node into a parent, read staging projection property
bug:13770920

The other properties should not be read from the UI thread.

Change-Id: I61d13774553d46a8963623727d8e8eeeb3385cc9
2014-04-08 18:17:07 -07:00