6429 Commits

Author SHA1 Message Date
John Reck
c74e289a65 Merge "Add GraphicsStatsService" 2015-03-30 19:39:27 +00:00
Christopher Tate
6e6af0d34e Merge "Add payload-size preflight stage to full transport backup" 2015-03-27 23:50:58 +00:00
John Reck
edc524c905 Add GraphicsStatsService
More S's for More Speed

Split JankTracker's backing data from the
class to allow for data relocation to/from ashmem regions

Pack the jank tracking data to fit in 256 bytes

Change-Id: Ife86a64b71a328fbd0c8075fe6a0404e081f725b
2015-03-27 11:50:56 -07:00
Christopher Tate
11ae768cf1 Add payload-size preflight stage to full transport backup
We now peform a total-size preflight pass before committing data to the
wire.  This is to eliminate the large superfluous network traffic that
would otherwise happen if the transport enforces internal quotas: we
now instead ask the transport up front whether it's prepared to accept
a given payload size for the package.

From the app's perspective this preflight operation is indistinguishable
from a full-data backup pass.  If the app has provided its own full-data
handling in a subclassed backup agent, their usual file-providing code
path will be executed.  However, the files named for backup during this
pass are not opened and read; just measured for their total size.  As
far as component lifecycles, this measurement pass is simply another
call to the agent, immediately after it is bound, with identical
timeout semantics to the existing full-data backup invocation.

Once the app's file set has been measured the preflight operation
invokes a new method on BackupTransport, called checkFullBackupSize().
This method is called after performFullBackup() (which applies any
overall whitelist/blacklist policy) but before any data is delivered
to the transport via sendBackupData().  The return code from
checkFullBackupSize() is similar to the other transport methods:
TRANSPORT_OK to permit the full backup to proceed; or
TRANSPORT_REJECT_PACKAGE to indicate that the requested payload is
unacceptable; or TRANSPORT_ERROR to report a more serious overall
transport-level problem that prevents a full-data backup operation
from occurring right now.

The estimated payload currently does not include the size of the
source-package metadata (technically, the manifest entry in its
archive payload) or the size of any widget metadata associated with
the package's install.  In practice this means the preflighted size
underestimates by 3 to 5 KB.  In addition, the preflight API currently
cannot distinguish between payload sizes larger than 2 gigabytes;
any payload estimate larger than that is passed as Integer.MAX_VALUE
to the checkFullBackupSize() query.

Bug 19846750

Change-Id: I44498201e2d4b07482dcb3ca8fa6935dddc467ca
2015-03-26 18:57:36 -07:00
Chris Craik
39c2750221 am 485c25ba: am e3abfef6: am 82f6b16e: Merge "hwui : fix memory leak due to duplicate in shadow cache"
* commit '485c25ba46b02393245c4c766ad059644afa7cd9':
  hwui : fix memory leak due to duplicate in shadow cache
2015-03-25 20:58:56 +00:00
Chris Craik
82f6b16e10 Merge "hwui : fix memory leak due to duplicate in shadow cache" 2015-03-25 16:15:12 +00:00
Derek Sollenberger
289e1b8716 Update ShadowTesslator to support conics
bug:19732872
Change-Id: I8b539ab3677219fa5bb7de7caf0aad9fc47ef7e9
2015-03-25 11:39:40 -04:00
Derek Sollenberger
240d52cb96 Merge "Fix DrawFilter's usage in HWUI." 2015-03-25 14:30:51 +00:00
Derek Sollenberger
0b8606266c Fix DrawFilter's usage in HWUI.
Also add additional compile time checks to ensure that the Java
and Skia APIs remain in sync.

bug:19890753
Change-Id: I8503cacf2859307e3f480a78603f9f05901b58cc
2015-03-25 10:08:30 -04:00
John Reck
2f6fb3d1b7 Merge "Shave another 10us off of hwuitask" 2015-03-24 19:35:21 +00:00
John Reck
bf29ee2a49 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
2015-03-24 12:31:44 -07:00
John Reck
125104f66c Merge "Shave 10us off of hwuitask" 2015-03-24 19:22:00 +00:00
John Reck
815f2a093a 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
2015-03-24 12:16:37 -07:00
John Reck
111928fa32 resolved conflicts for merge of 4142f026 to master
Change-Id: Iabe3aa0ac6911a26d2ba7219f18332897276ed6f
2015-03-24 08:34:23 -07:00
Adam Lesinski
47fe60a643 Merge "Output modified bcp47 tag in ResTable_config::toString()" 2015-03-20 20:46:40 +00:00
youngmin0822.lee
c80c9ad188 Don't create unnecessary RenderThread's instance when executing 'dumpsys gfxinfo'
To obtain the gfxinfo for each process, the static method of RenderProxy is used, which is named outputLogBuffer().
In there,
1. RenderTask is created for getting DisplayList Commands in RenderNode.
2. staticPostAndWait() is called
3. RenderThread's instance is created by 'RenderThread::getInstance()' in staticPostAndWait()

In case of the service, they don't use HW Acceleration, so don't need RenderThread.
But, by the process of No.3, RenderThread is created for all process.
As we know, RenderThread never be destroyed while the process is alive.
This patch checks RenderThread instance before the creation of RenderTask.
And, there is no one, just return to prevent the unnecessay creation of it.

Change-Id: I4fe29d83c9ced3e8b67177c0874c5d8ee62e1870
2015-03-20 21:22:32 +09:00
Chris Craik
c6128bae43 Fix clang build
Change-Id: I5336ac347123671a18401121c5f001c8f7caf54d
2015-03-19 10:00:56 -07:00
Chris Craik
e2bb380bc2 Use glops for text rendering
Change-Id: I5e155c8baf3149f0ff231ec3c89dbff6bb8eae92
2015-03-18 16:10:24 -07:00
Mykola Kondratenko
b159633aa3 hwui : fix memory leak due to duplicate in shadow cache
New ShadowTask with the ShadowDescription key that already
exists in the shadow LruCache will leak as it is not being
added.

Fix adds check for the existing key that is common in the hwui
code but missing for the TessellationCache::precacheShadow
function.

Change-Id: I37fd5ec82f8b8da5d1ec0f2ab9fd04c5f8534367
2015-03-17 08:57:41 +01:00
Adam Lesinski
8a9355a98e Output modified bcp47 tag in ResTable_config::toString()
We expect to be able to parse the output of ResTable_config::toString(),
so it should use modified bcp47 (b+en+Latn+US).

Change-Id: I597a1779a1fa5cff171c473e6a0368d93b9c7722
2015-03-16 22:25:26 +00:00
Derek Sollenberger
dc16e24afc Merge "Add conic support to HWUI path tessellator." 2015-03-16 19:40:08 +00:00
Derek Sollenberger
b0772a6cc5 Add conic support to HWUI path tessellator.
bug: 19732872
Change-Id: Ic3ae46f746325468ab972c9daf829099165eb596
2015-03-16 15:28:16 -04:00
Mike Reed
2a1ce8a4e5 use SkFilterQuality instead of SkPaint::FilterLevel
Change-Id: I5d26869de746107b8a35a7a662236f993a824b0d
2015-03-16 11:31:38 -04:00
Derek Sollenberger
ee248599d4 Refactor DisplayList path caching.
This removes dependence on SkPath ptrs that HWUI does not control
the lifecycle of. This clears up some errors where the paths are
not generated from Java, but rather the Skia test suites.

Cherry-pick of a change that originally landed in master-skia and is
dependent on a skia merge (ag/655422).

Change-Id: I41b9797a2b0af5d6b4ea51891565469d4f1d832d
2015-03-13 08:05:55 -04:00
Vishwath Mohan
1808d437e6 Merge "Enforce null-termination in ResStringPool::stringAt" 2015-03-12 21:17:50 +00:00
Vishwath Mohan
6521a1b743 Enforce null-termination in ResStringPool::stringAt
Rejects any non null-terminated string that a caller asks
ResStringPool::stringAt for, returning NULL instead.

The rationale for returning NULL rather than amending the string to add
a null-terminator is that conformant APK files will have all their
strings null-terminated anyway, and that this is a possible signal of a
malformed package.

Bug: 15288069
Change-Id: I370937b92f2cadf67fbd54203cbc7d1494be969f
2015-03-11 16:36:53 -07:00
John Reck
b36016c65f Cleanups & simplifications
Change-Id: I5ad5e3b8fe55b1528f2e20c63e5abe51d9e40ff1
2015-03-11 11:29:13 -07:00
Vishwath Mohan
4e9e0047a2 Merge "Prevent integer overflow in ResourceTypes" 2015-03-11 00:41:38 +00:00
Chris Craik
48f650cb24 Track down unsupported texture target
bug:19641517

Change-Id: Idc2e413abef5bb1438ffb3f52efb001504d3e89f
2015-03-10 14:02:06 -07:00
Vishwath Mohan
6a2c23dc1b Prevent integer overflow in ResourceTypes
Adds checks to 2 malloc() calls to ensure that the finally allocated
buffer size is not vulnerable to integer overflows. Also includes a
sanity check on the upper bound for type_info.numEntries before each
call.

Bug: 15171384
Change-Id: Ifdf0276bcca7e3d93da7c3577b9486d3c03a9d03
2015-03-10 12:34:08 -07:00
Chris Craik
edacf22ca1 Merge "Glop based composeLayerRegion/Rect" 2015-03-10 16:29:14 +00:00
Chris Craik
182952f5ee Glop based composeLayerRegion/Rect
Change-Id: I69440cabca84948e8aaead9479d616ebc2496517
2015-03-09 18:06:32 -07:00
Chris Craik
0a75d4e96c Merge "Rewrite glop texture asserts" 2015-03-09 20:40:08 +00:00
Chris Craik
eb911c2b0e Rewrite glop texture asserts
bug:19641517

Also switch Glop VertexAttribFlags to use int for group of flags.

Change-Id: Ib7b1934197a62206a55baa6ab484ac59f5bec816
2015-03-09 13:36:35 -07:00
Chih-Hung Hsieh
7830c81cd2 Merge "Fix unused local variale warning from clang/llvm." 2015-03-07 01:13:50 +00:00
Chih-Hung Hsieh
9ad6ac08a9 Fix unused local variale warning from clang/llvm.
Change-Id: Ib9b5d06313e5bf933edfb38a4522929104c7917a
2015-03-06 17:07:57 -08:00
John Reck
aa35d91905 Merge "Add percentiles" 2015-03-06 23:47:26 +00:00
John Reck
e70c5754d0 Add percentiles
Change-Id: Ieb6badd177bb6f67dda199dfcb3e0f483c8c4e59
2015-03-06 15:40:03 -08:00
Derek Sollenberger
c0bf700441 SkPorterDuff Multiply mode maps to SkXfermode modulate.
bug:19627342
Change-Id: I97f26ca1bc8abe2768f4a12cc70fb0fa5d905098
2015-03-06 13:51:04 -05:00
Chris Craik
97a351a329 Merge "Avoid invalid shader creation for certain blend modes" 2015-03-06 18:44:17 +00:00
Chris Craik
1c1c3fe9eb Avoid invalid shader creation for certain blend modes
bug:19627342

Change-Id: I41e3c1ce8e6fa52f046ec492d19de7cab92b9ec5
2015-03-06 10:05:15 -08:00
Derek Sollenberger
0313f2680c Remove uncessary include for SkPorterDuff.h
Change-Id: Ibcbed5dd2dc327821fc26e87191185f0069c9911
2015-03-05 16:22:17 -05:00
Tom Hudson
8124e6a98c Merge "Fix bug, change crashes to warnings" 2015-03-05 15:40:46 +00:00
Tom Hudson
b1476ae7d5 Fix bug, change crashes to warnings
Improve behavior when we get a call to draw 0 points.
Replace one ALWAYS_FATAL statements with noop.

Change-Id: I864b7a9633dfa3dc6eefa403beca4cc7ae14074f
2015-03-05 10:31:52 -05:00
Chris Craik
8820fd1d82 Patch cleanup, reenable Patch Glops
bug:19597454

Change-Id: If12b95e83588b81a553210cd8c2437c6c771073a
2015-03-04 15:32:47 -08:00
Chris Craik
a9761e698e Temporarily disable Patch glops
bug:19597454

Change-Id: I9dbe781a714582717a5585113b9a56821265b36e
2015-03-04 14:25:10 -08:00
Chris Craik
9b98afca76 Merge "Glop DrawPatch support" 2015-03-03 18:12:27 +00:00
Chris Craik
e2e0073e88 Merge "Glop drawBitmaps, drawPatches" 2015-03-03 18:02:01 +00:00
Chris Craik
0556d90253 Glop DrawPatch support
Change-Id: Icaa78bdb2cf52c1fc2194ec4016634967d17fb6a
2015-03-03 09:54:14 -08:00
Chris Craik
a6b52198b9 Glop drawBitmaps, drawPatches
Change-Id: I3f1cd3f47f97d2e0c9b9d153732e26ee0b1c58c2
2015-03-03 08:58:14 -08:00