102 Commits

Author SHA1 Message Date
Doris Liu
804618d086 VectorDrawable native rendering - Step 2 of MANY
Introduced PathData in Java, which is effectively a thin layer around the
native instance. PathData holds the verbs and points which is being used
in path morphing/interpolation. The verbs and points can be interpreted
into skia path commands, which is now done in native and therefore saves
a handful of JNI calls during path creation.

Removed the old PathDataNode mechanism and changed the PathEvaluator
to use PathData instead.

Also added tests and a microbench. Also ran CTS tests for VectorDrawable
and AnimatedVectorDrawable, and passed all of the existing tests.

Change-Id: Ia166f5172ff031fe18b154327967f911a62caec1
2015-11-18 13:38:23 -08:00
Chris Craik
9fded232a9 Recycle OffscreenBuffers
Change-Id: Ia2e219026f211a5308ecf8209c5f986bb888aadd
2015-11-12 13:05:35 -08:00
Doris Liu
30bcf69df9 VectorDrawable native rendering - Step 1 of MANY
Implement path parsing from string to skia path in native. The parsing
contains two main stages:
1) Parse string into a list of nodes that contains one operation (such
   as move) and a vector of floats as params for that operation.
2) Interpret the operations defined in the nodes into SkPath operations,
   and create a skia path

Also provided unit test for parsing a string path into a list of nodes,
and then to a skia path.

Change-Id: I0ce13df5e3bb90987dcdc80fe8b039af175ad2e2
2015-11-10 15:46:06 -08:00
John Reck
704bed0da7 add DeviceInfo
This reverts commit 096895550b9d5430d7a001d491566decf4f9791b.

Change-Id: Ib2ed1e96d8f7f88302f5e27fe735687194553104
2015-11-05 10:13:23 -08:00
John Reck
096895550b Revert "add DeviceInfo"
This reverts commit b2442896e3a226c7ebe9d47fa80b257e98a6a34d.

Change-Id: I50f6555451f71067505245333c8e558b5e3b2b3b
2015-11-05 01:38:25 +00:00
John Reck
b2442896e3 add DeviceInfo
Change-Id: I4c122278a7e88b6f47c4dd3c5fc553df7d3c900d
2015-11-04 13:46:49 -08:00
Chris Craik
8d2cf943d9 Add region-tracking to OffscreenBuffers
Change-Id: I024c7219c080b9a89888517f5a89d49dfe8065ba
2015-11-02 17:34:06 -08:00
Chris Craik
41b10518d0 Merge "Add FatVector" 2015-10-29 20:56:40 +00:00
Chris Craik
76ace115f7 Add FatVector
FatVector uses an inlined allocation to avoid malloc costs for small
vectors, especially those which are constructed/destructed frequently.

Change-Id: I9809dfd1255cfe98b4ce2b1124ca0fd6ca33dfe0
2015-10-29 13:22:06 -07:00
Leon Scroggins III
f35b989d26 Merge six commits from master-skia to master
Also corrects some code under development behind the HWUI_NEW_OPS flags
to match the updated Skia API.

Include external/skia/include/private
use SrcConstraint for drawBitmapRect
clean up to allow removal of flags for SCALAR_DIV and IMAGEINFO_FIELDS
don't call DEPRECATED getDevice()
update to newer API for drawBitmapRect
asABitmap is deprecated, used isABitmap

previous-Change-Id: I12208855a95948897077b1c1549eb35416cc801e
previous-Change-Id: I5044f0f61315fe48c60d7af5e261a7d0ed574f56
previous-Change-Id: Ic34a3ba77b3f9e091fa7aaba75018a307abacdab
previous-Change-Id: I79f8dd779920565d1204f7fe67b3286b1bbf4e9b
previous-Change-Id: Ic04d1f8274f6a862ea00f8d241363cf31f5ec1ec
previous-Change-Id: I9e4ae257a1976c74302b6a73f17405174ae58cec
previous-Change-Id: I85de3462ad1e4877784df38edc4bcd0acbd24e5e
Change-Id: Ide8e2f669e91a13c32521af3a16efdaa085c81d0
2015-10-29 12:29:03 -04:00
Tom Hudson
1de39f1563 Merge "Revert "Merge six commits from master-skia to master"" 2015-10-28 20:48:05 +00:00
Tom Hudson
d8f904f256 Revert "Merge six commits from master-skia to master"
This reverts commit 550780745fa28ae9a87d02331841ca5ce4f9c763.

Change-Id: Ic71eccea454b26261fe6e9a9a7a24eff56396989
2015-10-28 20:35:36 +00:00
John Reck
97c92659fa Merge "Tune scheduling a bit, avoid a binder ipc" 2015-10-28 19:24:45 +00:00
John Reck
e486d932ca Tune scheduling a bit, avoid a binder ipc
Don't query running behind if it's not possible to be behind such
as having received a vsync since the last call to swap buffers.

This also avoids an accidental-starvation issue where if surface
flinger was a bit sluggish to dequeue then renderthread would drop
thinking the queue was full.

Also be a bit smarter about tracking if we've already drawn for this
vsync target to avoid producing two frames for the same vsync

Change-Id: Ib266500a693c27000b2e8ea578f111229d75147a
2015-10-28 12:24:13 -07:00
Leon Scroggins III
550780745f Merge six commits from master-skia to master
Include external/skia/include/private
use SrcConstraint for drawBitmapRect
clean up to allow removal of flags for SCALAR_DIV and IMAGEINFO_FIELDS
don't call DEPRECATED getDevice()
update to newer API for drawBitmapRect
asABitmap is deprecated, used isABitmap

Change-Id: I519f54f97321a7a365ea81a3b78cb03b9bdca021
previous-Change-Id: I12208855a95948897077b1c1549eb35416cc801e
previous-Change-Id: I5044f0f61315fe48c60d7af5e261a7d0ed574f56
previous-Change-Id: Ic34a3ba77b3f9e091fa7aaba75018a307abacdab
previous-Change-Id: I79f8dd779920565d1204f7fe67b3286b1bbf4e9b
previous-Change-Id: Ic04d1f8274f6a862ea00f8d241363cf31f5ec1ec
previous-Change-Id: I9e4ae257a1976c74302b6a73f17405174ae58cec
2015-10-28 13:41:38 -04:00
Tom Hudson
64bb63f0ee Merge "Remove direct dependency of external/skia on frameworks/native" 2015-10-23 14:17:11 +00:00
Tom Hudson
b2f5bd2d60 Remove direct dependency of external/skia on frameworks/native
Moves all code that needs to link with libgui or libui into
frameworks/native/hwui/utils/TestWindowContext. This allows us to
run Skia automated tests against a HWUI backend to watch for
performance or correctness regressions on Android.

BUG=23556017
TEST=After this change, we can remove libui and frameworks/native/include
from external/skia/Android.mk
R=djsollen@google.com

Change-Id: I6f02a5ff98101e448606a1e892686e2c648b6c8a
2015-10-23 10:07:03 -04:00
Chris Craik
b36af87f82 Use LinearStdAllocator in DisplayList
bug:24300128

This removes most of the remaining calls to malloc when
recording DisplayLists.

Change-Id: If928bd53dac0f145aadc436a62759086b67da0ed
2015-10-19 11:32:28 -07:00
Chris Craik
81a1d2a159 Add LinearStdAllocator
Also fixes microbench DisplayListData leak.

Change-Id: I1c46f6d0d38650327f3df90e7b278fa7765083dc
2015-10-15 17:14:45 -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
Tom Hudson
ea508588e9 Merge "Include what you use" 2015-10-05 13:03:07 +00:00
Tom Hudson
ca4f0b5a43 Include what you use
utils/PaintUtils.h was relying on a transitive include which was
changed to a forward declaration; this change adds the SkDrawLooper
include where we need it.

R=djsollen@google.com

Change-Id: I6b034c47ddc277224c7deb007c9934004c037b8c
2015-10-05 13:02:05 +00:00
Chris Craik
f6049a5c55 Merge "Move more utils into paintutils" 2015-10-02 17:28:36 +00:00
Chris Craik
bf6f0f2608 Move more utils into paintutils
Change-Id: I1eb3fd52386bc61a592da235533e40b509eeec24
2015-10-01 15:26:06 -07:00
Sergio Giro
f236d7ffad resolved conflicts for 31e5ded6 to master
Change-Id: Iae4e1abe697f1c00a82b54c17afa7d4edddc006b
2015-10-01 11:19:34 +00:00
Sergio Giro
6706b71d7c am 86e67d70: Merge "frameworks/base: delete TinyHashMap"
* commit '86e67d708d738807c843850a3b6c9170e514ff8f':
  frameworks/base: delete TinyHashMap
2015-10-01 10:16:44 +00:00
Sene Gales
1673035f05 frameworks/base: delete TinyHashMap
In DeferredDisplayList use std::unordered_map instead of TinyHashMap

Towards deprecation of BasicHashTable

Change-Id: I91b8d5dc80444c88fecff9c362fa610cca253973
2015-09-30 20:37:01 +01:00
Chris Craik
6e6646c037 Unify extensions parsing behavior
Removes remnants of EGL extension support, and persistence of
GL extension list.

Change-Id: I35aec12d900bdb33549ea47654bb8146f350ef48
2015-09-21 13:14:20 -07:00
Chris Craik
25c8d5b1c2 Fix pointer math in page start calculation
Change-Id: I1582e52f358fece647e35b13e93e56fd96b9a227
2015-09-02 16:20:56 -07:00
Chris Craik
9db58c031f Remove MathUtils::min/max
bug:22202895

Change-Id: Ia115d86871314e3819f684ea7307356aed13a28e
2015-08-19 15:53:01 -07:00
Derek Sollenberger
4c5efe9290 Add ninePatch support to Canvas.h
Change-Id: Ic095291fe55911c6501c1bdefa4b8da973c77319
2015-08-18 15:32:57 -04:00
John Reck
773bbe0357 Revert "Add ninePatch support to Canvas.h"
This reverts commit edca320a2b42011f98c308fdf25fc0494c6a5454.

Change-Id: I30ee93cfc1cac391ce152f03e9e13a1ad24dc91b
2015-08-17 15:24:09 -07:00
Derek Sollenberger
deead00082 Merge "Add ninePatch support to Canvas.h" 2015-08-17 17:20:55 +00:00
huanhuan.x.wang
a46ca5ec73 Make the value for shadowRadius less than 1.0 work
bug:22806069

Shadow effect is not visible if the shadowRadius is set
between 0.1 and 1.0.

Cherry-pick of 8d9b5fbd from AOSP

Change-Id: Ifff71f44d66ba604bd751bb1df96a9904ae7998e
2015-08-14 22:47:47 +00:00
Derek Sollenberger
edca320a2b Add ninePatch support to Canvas.h
Change-Id: Ib3202fd7c5b9f35853f286abe84b3ed009df1a81
2015-08-14 14:59:37 -04:00
John Reck
49286e8540 Merge "Tune LA's initial size better" 2015-07-30 21:29:03 +00:00
John Reck
afb052142a Tune LA's initial size better
Reduces wasted memory from ~80% to ~40% on a
handful of apps.

Change-Id: Idd5fb6477341925156d5f1f0ce2a535ec4e1aa4f
2015-07-30 14:22:32 -07:00
John Reck
bef837dc57 Remove the rest of utils/Vector.h usage
Change-Id: I90ab2c17ba1903a8241cba7f623b74ed136dd845
2015-07-30 09:51:57 -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
5686bae289 Dump GL errors and crash on failure to allocate texture for layer
bug:22029728

Change-Id: Ib6f778975225b36567b12e30967955640ec185b3
2015-06-23 10:34:54 -07:00
John Reck
41300274cf Iterate step of launch & iterate
Bug: 18052916

Tweaked colors, merged some categories
Reduced significance of fast frames
Increased visual weight of janky frames

Change-Id: I5b4e86164c4d51debad7de0e0f8715dda34c7a60
2015-06-04 10:49:08 -07:00
Chris Craik
1b54fb27ac Delete MAKE_ENUM_FLAGS
bug:21595702

Settle on namespace-enum for consistency. Also removes k prefix.

Change-Id: Ib89f94cb9263de40b6e4636577dca4860867d0d8
2015-06-03 13:42:21 -07:00
Chris Craik
ff29b5a5b9 Fix round cap approximation to understand scale
bug:19772120
Change-Id: I7b944faed1d1e8d5f55453802da57679217d9d9a
2015-05-27 18:17:55 -07:00
Chih-Hung Hsieh
2f1e21d995 Add missing const qualifier to compile with clang/llvm.
BUG: 21298442
Change-Id: Iad211237fdb0128d8f4490419687bf1da1cd261c
2015-05-19 10:44:53 -07:00
Chris Craik
6b4ace298e Merge "Add back alpha atrace log" into mnc-dev 2015-05-13 23:53:48 +00:00
Chris Craik
1a0808e64c Add back alpha atrace log
bug:20922838

Change-Id: I70ccbffdd5f140cd1dd71fbf456fb5b085e74a4a
2015-05-13 16:47:19 -07:00
John Reck
4c9e59d03c Unify DrawProfiler/JankStats
Bug: 20822400

Change-Id: I24345c3120440bfce14e8cbe7e880b39f10b744a
2015-05-12 11:02:07 -07:00
John Reck
b5bc454870 Teach LA how to destroy
Change-Id: I57ab30b6d56370dade6987f442136ea5e5546c9b
2015-04-23 16:04:50 -07:00
John Reck
1ed723723d Move LinearAlloc to libhuwi
Change-Id: I1d8c99bdeef22ca569e1743cff6108f478737bc8
2015-04-23 15:46:28 -07:00
huanhuan.x.wang
8d9b5fbdf0 Make the value for shadowRadius less than 1.0 work
Shadow effect is not visible if the shadowRadius is set
between 0.1 and 1.0.

Change-Id: Ifff71f44d66ba604bd751bb1df96a9904ae7998e
2015-04-14 16:25:46 +02:00