summaryrefslogtreecommitdiffstats
path: root/libs/hwui
Commit message (Collapse)AuthorAgeFilesLines
* Make DisplayListRenderer inherit from Canvas, merge JNITom Hudson2015-01-058-201/+329
| | | | | | | | | | | | | 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
* Cleanup various clang warnings, use unique_ptrs in several placesChris Craik2014-12-2330-226/+133
| | | | Change-Id: I347904b25e51fcc7de14b1e72f1acd0f6ba26f3f
* Add overrides and switch to nullptr keywordChris Craik2014-12-2232-247/+262
| | | | | | | | Changes generated with clang-modernize. Additionally, fixed some struct-vs-class usage to make clang happy. Change-Id: Ic6ef2427401ff1e794d26f21f7b44868fc75fb72
* CleanupChris Craik2014-12-227-46/+19
| | | | Change-Id: I91ffb9c66697741116fdeaa31abdf6cfd79155df
* am 165fb8f5: am f89dac47: Merge "Tweak RT-animator scheduling" into lmp-mr1-devJohn Reck2014-12-194-15/+22
|\ | | | | | | | | | | | | automerge: ed3c296 * commit 'ed3c2962be1e2966c3b46f20e81d2902a8302d8b': Tweak RT-animator scheduling
| * am 165fb8f5: am f89dac47: Merge "Tweak RT-animator scheduling" into lmp-mr1-devJohn Reck2014-12-194-15/+22
| |\ | | | | | | | | | | | | * commit '165fb8f5aa0709a8dc35f99a9b81f6906452a648': Tweak RT-animator scheduling
| | * Tweak RT-animator schedulingJohn Reck2014-12-194-15/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Stop pretending USE_OPENGL_RENDERER is a thingJohn Reck2014-12-185-17/+7
| | | | | | | | | | | | Change-Id: I732b490431fe90eafa00a00f3b5429f0d3a067e6
* | | Split hwui's makefileJohn Reck2014-12-183-134/+113
| | | | | | | | | | | | Change-Id: I7ad1a692e708cad052e8ca5b412c17e25992862c
* | | resolved conflicts for merge of fd461ede to masterChris Craik2014-12-173-8/+13
|\ \ \ | |/ / | | | | | | Change-Id: I36f263c7e6d96355dd8a2c3565581b9a983ae481
| * | am 93492d1a: am c748832f: Merge "Revert overdraw avoidance visualization ↵Chris Craik2014-12-173-8/+13
| |\ \ | | |/ | | | | | | | | | | | | | | | change" into lmp-mr1-dev * commit '93492d1a478770783abab764855c8d47e0264f71': Revert overdraw avoidance visualization change
| | * Merge "Revert overdraw avoidance visualization change" into lmp-mr1-devChris Craik2014-12-173-8/+13
| | |\
| | | * Revert overdraw avoidance visualization changeChris Craik2014-12-173-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug:18787324 Partial revert of 23d307c8d88f4a3849163b9e5b7cd11d0d4f372c. Change-Id: Ic8b91b046707fc5b8fa53c35ea7b37bb19c3c943
| * | | Fix styleJohn Reck2014-12-1221-175/+175
| | | | | | | | | | | | | | | | Change-Id: I7227b0eac126bf470ed50249a7809b845872983b
* | | | am ec9b598c: am b9a4d15d: Merge "Force-flush state sync on texid change" ↵John Reck2014-12-121-0/+6
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | into lmp-mr1-dev automerge: b21a7ad * commit 'ec9b598c7be65abb5ceb9d82e752c50f7e93deab': Force-flush state sync on texid change
| * | | am b9a4d15d: Merge "Force-flush state sync on texid change" into lmp-mr1-devJohn Reck2014-12-121-0/+6
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | automerge: b21a7ad * commit 'b21a7ad02e43900ea5480e796cb1518bd5829e3f': Force-flush state sync on texid change
| | * | Merge "Force-flush state sync on texid change" into lmp-mr1-devJohn Reck2014-12-111-0/+6
| | |\ \
| | | * | Force-flush state sync on texid changeJohn Reck2014-12-111-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | am 3f454e7d: am 63c7b246: Merge "Correct layer size formatting in trace" ↵Chris Craik2014-12-121-2/+2
|\ \ \ \ \ | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | into lmp-mr1-dev automerge: 00905a9 * commit '3f454e7d1cf7103e312f67f745f01f00fa49df13': Correct layer size formatting in trace
| * | | | am 63c7b246: Merge "Correct layer size formatting in trace" into lmp-mr1-devChris Craik2014-12-121-2/+2
| |\ \ \ \ | | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | automerge: 00905a9 * commit '00905a984c07ffc9960ce83548631c59aae37ec6': Correct layer size formatting in trace
| | * | | Merge "Correct layer size formatting in trace" into lmp-mr1-devChris Craik2014-12-111-2/+2
| | |\ \ \ | | | |/ / | | |/| |
| | | * | Correct layer size formatting in traceChris Craik2014-12-111-2/+2
| | | |/ | | | | | | | | | | | | | | | | bug:18722704 Change-Id: Icef9aaa62633b2d86ad250f43d4c8fa5cc0b6842
* | | | resolved conflicts for merge of d67bb501 to masterYohann Roussel2014-12-1111-73/+76
|\ \ \ \ | |/ / / | | | | | | | | Change-Id: I40698ce1e382cb41eec7af5ea49ac0e2f997d555
| * | | am eb2dcc79: Merge "Don\'t preload textures for AssetAtlas" into lmp-mr1-devJohn Reck2014-12-1111-73/+75
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | automerge: e4a6ed9 * commit 'e4a6ed9d6d8721c9fad018b0d43dfe7daf4b24e7': Don't preload textures for AssetAtlas
| | * | Merge "Don't preload textures for AssetAtlas" into lmp-mr1-devJohn Reck2014-12-1111-73/+75
| | |\ \
| | | * | Don't preload textures for AssetAtlasJohn Reck2014-12-1011-73/+75
| | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 18317479 RenderNode::prepareSubTree calls prefetchAndMarkInUse on every bitmapResoruce in the DisplayList. However, this resulted in textures being uploaded for bitmaps that would be drawn from the AssetAtlas instead. To fix this we teach TextureCache about the AssetAtlas so that calls to TextureCache return the Texture from AssetAtlas if it exists. Thus usage of AssetAtlas is now purely to allow for further optimizations via draw merging instead of a requirement to get any benefit at all. Change-Id: I65282fa05bac46f4e93822b3467ffa0261ccf200
* | | | resolved conflicts for merge of 5369b769 to masterChris Craik2014-12-104-8/+19
|\ \ \ \ | |/ / / | | | | | | | | Change-Id: Iccb2ce948321534e05d67e64dc40a38332adb1a7
| * | | resolve merge conflicts of ed211b9 to lmp-mr1-dev-plus-aosp.Chris Craik2014-12-104-8/+19
| |\ \ \ | | |/ / | | | | | | | | Change-Id: Ib9d6d301282bbaae6b23b9ce07b9e6a4e9075991
| | * | Fix frame-allocated path lifecyclesChris Craik2014-12-104-8/+19
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug:18667472 Previously, we were allocating per-frame temporary paths within the PlaybackStateStruct, but these are not safe as layers allocate these transiently. Instead, move these to the OpenGLRenderer, which has better define lifecycle. Additionally, don't store SkPath objects directly in vector, since they are then subject to relocation. Change-Id: I8187ef542fcd5b030502bb75eb123ee26c0daa96
* | | resolved conflicts for merge of 3bae94d7 to masterNick Kralevich2014-12-101-2/+4
|\ \ \ | |/ / | | | | | | Change-Id: I381539b1494447d62290c492f2550840fe0b559c
| * | resolved conflicts for merge of fe11126d to lmp-mr1-dev-plus-aospJohn Reck2014-12-091-4/+6
| |\ \ | | |/ | | | | | | Change-Id: I60bf82ff71d9af0d80e7da8856efb4641c85885b
| | * Merge "Teach AssetAtlas about more drawables" into lmp-mr1-devJohn Reck2014-12-091-2/+4
| | |\
| | | * Teach AssetAtlas about more drawablesJohn Reck2014-12-091-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | Bug: 18317479 Change-Id: I16868ee204d24af72af9a2efc987f7e9eb1d266b
* | | | am 1f78b336: am 497499b1: am 04c2bf4f: Merge "Remove unnecessary/erroneous ↵Derek Sollenberger2014-12-091-8/+0
|\ \ \ \ | |/ / / | | | | | | | | | | | | | | | | | | | | reference counting" into lmp-mr1-dev * commit '1f78b3364f0e39db912d898187bed0195d9319cd': Remove unnecessary/erroneous reference counting
| * | | am 497499b1: am 04c2bf4f: Merge "Remove unnecessary/erroneous reference ↵Derek Sollenberger2014-12-091-8/+0
| |\ \ \ | | |/ / | | | | | | | | | | | | | | | | | | | | counting" into lmp-mr1-dev * commit '497499b1eb76726090ea46dcfc5b8ab0221cd447': Remove unnecessary/erroneous reference counting
| | * | Remove unnecessary/erroneous reference countingDerek Sollenberger2014-12-091-8/+0
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SkBitmap* used by HWUI holds a reference to the PixelRef (which in turn holds the colorTable) so keeping an additional ref is not only unnecessary, but also potentially problematic. If a bitmap changes its pixelRef after it has been added to a displayList, then we end up with unbalanced ref/unref calls that cause the newly added PixelRef to be unref'd and prematurely deleted, while the original PixelRef is leaked. bug: 18659976 Change-Id: I34a06152e7bb2d733249a207dafd36b9b5dc0712
* | | resolved conflicts for merge of a75b0ad3 to masterJohn Reck2014-12-046-12/+13
|\ \ \ | |/ / | | | | | | Change-Id: I32a2d129c556407727ada909daa6470309d42499
| * | resolved conflicts for merge of a51a0901 to lmp-mr1-dev-plus-aospJohn Reck2014-12-046-12/+13
| |\ \ | | |/ | | | | | | Change-Id: Id7df835f0bd3d5d276b162635ddfb7fe0918dfed
| | * Resume RT-animations after a pauseSurfaceJohn Reck2014-12-036-12/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 18203577 The issue occurs as a result of performTraversals() both doing a window relayout call *and* early-returning because it's not dirty. To fix this pauseSurface() returns whether or not the RT-side is "dirty" to force ViewRootImpl to do a draw even if mDirty is otherwise empty. Change-Id: I534f367e75d18d273ebf14df3927f5c464ef6bef
* | | am a22ab0da: am 9a04480e: am ef124887: Merge "Clip outline to View clip ↵Chris Craik2014-12-021-4/+23
|\ \ \ | |/ / | | | | | | | | | | | | | | | bounds for shadow computation" into lmp-mr1-dev * commit 'a22ab0da6f72b2e52166cc6e11f4c6d44c0fb714': Clip outline to View clip bounds for shadow computation
| * | am 9a04480e: am ef124887: Merge "Clip outline to View clip bounds for shadow ↵Chris Craik2014-12-021-4/+23
| |\ \ | | |/ | | | | | | | | | | | | | | | computation" into lmp-mr1-dev * commit '9a04480e36c42eb63d1d727221ba3ce6a6d533ef': Clip outline to View clip bounds for shadow computation
| | * Merge "Clip outline to View clip bounds for shadow computation" into lmp-mr1-devChris Craik2014-12-021-4/+23
| | |\
| | | * Clip outline to View clip bounds for shadow computationChris Craik2014-12-011-4/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug:18509823 This allows animations of View clipBounds (and other callers of setClipBounds) to affect shadows, instead of leaving them floating. Change-Id: I249fa4b371a170cb0c54001f5b0e0097e109b8b8
| | * | Merge "Prevent calling GL functions with an invalid surface" into lmp-mr1-devJohn Reck2014-12-011-1/+1
| | |\ \
| | | * | Prevent calling GL functions with an invalid surfaceSangkyu Lee2014-12-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug: 18518580 When destroying CanvasContext, the surface can be invalid state. So the surface should be updated to null prior to destroying GL resources to ensure that GL functions are not called with an invalid surface. Some GL implementation makes an error if GL functions are called with an invalid surface. (Adreno 3xx) Cherry picked from AOSP: f76d36f96bf221672e98e440c9df7cbf0e02e84e Change-Id: Ie6f6ea081ec931fc9df30b2c3ed066ec1ae9d294
| | * | | Merge "Enable stencil clipping within clearLayerRegions" into lmp-mr1-devChris Craik2014-12-011-7/+1
| | |\ \ \ | | | |/ / | | |/| |
| | | * | Enable stencil clipping within clearLayerRegionsDohyun Lee2014-11-261-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug:18538502 Cherry-pick of adc0d9da8648abfea1035fb1108eceea9fd9b5b1 from AOSP Previously stencil clipping within clearLayerRegions is disabled by commit 62d307c2402777d5e53b4590af5f32f8c55afd81. However, clearing whole layer regions causes black-colored triangle regions when a TextView has RotateAnimation because the draw within clearLayerRegions does not affected by the current stencil clip. Change-Id: Id32a0b16754b109905f833e063ebfa156bd953f2 Signed-off-by: Dohyun Lee <dohyun.lee@lge.com>
* | | | | am d7af6eaa: am d51205fd: am 6afc5cf3: Merge "Prevent calling GL functions ↵John Reck2014-12-011-1/+1
|\ \ \ \ \ | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | with an invalid surface" * commit 'd7af6eaace4ffdd3635a1cdeff65e9dc1af39f67': Prevent calling GL functions with an invalid surface
| * | | | am d51205fd: am 6afc5cf3: Merge "Prevent calling GL functions with an ↵John Reck2014-12-011-1/+1
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | invalid surface" * commit 'd51205fda7351ca32e54ef34b32e72f6c7c79847': Prevent calling GL functions with an invalid surface
| | * \ \ \ Merge "Prevent calling GL functions with an invalid surface"John Reck2014-12-011-1/+1
| | |\ \ \ \