Commit Graph

8387 Commits

Author SHA1 Message Date
TreeHugger Robot
1198e13594 Merge "libandroidfw: Revert null check in ApplyStyle" 2017-01-07 02:20:17 +00:00
Adam Lesinski
06d3e8fec7 libandroidfw: Revert null check in ApplyStyle
The out parameter `out_indices` is expected to be non-null
and so the extra null check adds a cost to performance
and opens the door to misusing the API by not supplying
`out_indices`.

Test: make libandroidfw_tests
Change-Id: Ie66fd837c5e24ec2838156e7b67f54c15cd27933
2017-01-06 16:51:48 -08:00
Stan Iliev
770e0b5007 Implement image draw functions in SkiaCanvasProxy
Implement onDrawImage, onDrawImageRect and onDrawImageLattice in
SkiaCanvasProxy. This allows to replay SkPicture with HWUI pipeline.
This CL is needed to keep up with other changes in SkiaRecordingCanvas,
because Canvas::drawBitmap is translated to SkCanvas::drawImage.

Test: Built and ran angler-userdebug, ran HWUI unit tests.
Change-Id: Icd6cfd3bc51628a2c336faf4c95dfd5366a949a9
2017-01-05 16:53:14 -05:00
Sergei Vasilinetc
8b6fe1d894 Merge "Support Bitmap.copy for hardware bitmaps" 2016-12-19 18:41:21 +00:00
sergeyv
05126d151e Support Bitmap.copy for hardware bitmaps
Test: android.uirendering.cts.testclasses.HardwareBitmapTests#testBitmapConfig*
bug:30999911
Change-Id: I2e80dff914bfa0666290701072ac93d30d218e8d
2016-12-16 17:46:10 -08:00
Stan Iliev
b66b8bb4a0 Ensure root render node clip cannot expand beyond dirty area
Use new Skia API to enfore clip restriction for root render node.
This brings Skia pipeline in line with HWUI. Unit test is
updated to reflect the new behaviour.

Test: Built and ran angler-eng, ran HWUI unit tests.

Change-Id: Iffce70fd37b6aff45eb6a23c8b1a64f45b5f1463
2016-12-16 14:42:33 -05:00
TreeHugger Robot
6df179cd73 Merge "Revert "try to stop using exotic clipps"" 2016-12-16 19:28:49 +00:00
TreeHugger Robot
cf4d807481 Merge "Add new RGBA_F16 bitmap config" 2016-12-16 19:02:06 +00:00
Joe Onorato
10e237e5c8 Merge changes from topic 'incident_1'
* changes:
  First checkin of incident reporting.
  Add a native class to interact with DropBoxManager.
2016-12-16 18:19:50 +00:00
Chris Craik
66b9d4486a Revert "try to stop using exotic clipps"
This reverts commit 834653bcf8.

Change-Id: Ie8cb787490832a0be154ec1263313982157faa81
2016-12-16 17:49:48 +00:00
Romain Guy
9505a65527 Add new RGBA_F16 bitmap config
This configuration uses 64 bits per pixel. Heach component is stored as a
half precision float value (16 bits). Half floats can be decoded/encoded
using android.util.Half.

RGBA_F16 bitmaps are used to decode wide-gamut images stored in 16 bit
formats (PNG 16 bit for instance). aapt is currently not aware of PNG
16 bits so such files must be placed in raw/ resource directories.

This first pass provides only partial drawing support with hardware
acceleration. RGBA_F16 bitmaps are stored in linear space and need
to be encoded to gamma space with the appropriate OETF to be rendered
properly on Android's current surfaces. They are however suitable for
linear blending. Full rendering support will be provided in a future
CL (BitmapShaders might be a bit tricky to handle properly during
shader generation).

Bug: 32984164
Test: bit CtsGraphicsTestCases:android.graphics.cts.BitmapRGBAF16Test

Change-Id: I328e6b567441a1b9d152a3e7be944a2cf63193bd
2016-12-16 09:15:07 -08:00
TreeHugger Robot
e59dc4124a Merge "try to stop using exotic clipps" 2016-12-16 15:49:47 +00:00
TreeHugger Robot
984c73ba73 Merge "Modify savelayer to save matrix and clip for Skia pipeline" 2016-12-16 00:01:06 +00:00
John Reck
4c80f87820 Merge "HWUI: prepare script for marlin & sailfish Test: this is a bench infrastucture" 2016-12-15 23:37:22 +00:00
TreeHugger Robot
711911bb95 Merge "Actually fix pixelcopy for 90/180/270 rotation" 2016-12-15 21:47:58 +00:00
Stan Iliev
68885e38b8 Modify savelayer to save matrix and clip for Skia pipeline
Modify SkiaCanvas::saveLayer to always save matrix and clip and
match HWUI behaviour. Also ensure android state tracking
behavior matches that of the Skia API (partial saves not
supported). This change is fixing SaveLayerAnimation
macrobench when buffer age is disabled.
Add a HWUI unit test that verifies clip and matrix are restored.

Test: built and ran angler-eng, ran hwui unit tests
bug:33429678
Change-Id: I62e429f9746518fef67663b0dd99ac499bf31af3
2016-12-15 16:47:34 -05:00
Mike Reed
834653bcf8 try to stop using exotic clipps
Change-Id: Id11d7744daa69c19fdc9b7723862b3d71ad21384
2016-12-15 16:01:42 -05:00
Joe Onorato
1754d744a7 First checkin of incident reporting.
There are a few major pieces here:

incidentd
---------
This daemon (started by init) runs and accepts incoming requests to take
incident reports.  When prompted, it calls into various system services
and fills in an IncidentProto data structure, and then writes the report
into dropbox.

The next steps for incidentd:
    - Security review of SELinux policies. These will be a subset of
      the dumpstate permissions.  Until this is done, incidentd is
      not started at boot time.

incident
--------
This shell command calls into incidentd, and can initiate an incident
report and either capture the output or leave for dropbox.

incident_report
---------------
This host side tool can call adb shell with the correct parameters
and also format the incident report as text.  This formatting code
was left of the device on purpose.  Right now it's pretty small, but
as the number of fields increases, the metadata and code to do the
formatting will start to grow.

The incident_report command also contains a workaround to let it
work before incidentd is turned on by default.  Right now, it is
implemented to call adb shell dumpsys <service> --proto directly,
whereas in the future it will go through the full incidentd flow.

incident_section_gen
--------------------
A build-time tool that generates a stripped down set of information
about the fields that are available.

libincident
-----------
This library contains the code to connect to incidentd, and the
meta proto definitions that are used by the framework protos.
The basics are here now, but they are not fully fleshed out yet.
The privacy.proto file contains annotations that can go in the
proto file that we will later use to filter which fields are
uploaded, and which are used by local sources.  For example, a
device in a test lab is safe to upload much much more information
than a real user.  These will share the same mechanism, but the
user's output will be filtered according to these annotations.

frameworks/core/proto
---------------------
These .proto files contain the definitions of the system's
output.  There is one master android.os.IncidentProto file that
is the top level of an incident report, but some other services
(notification, fingerprint, batterystats, etc) will have others
that are used directly by the logging mechanism.

Other files which are shared by several of the services also go
here, such as ComponentName, Locale, Configuration, etc.  There
will be many more.

There is also a first iplementation of a dump method handling
--proto in the fingerprint service.

IncidentManager
---------------
The java API to trigger an incident report.

Test: Not written yet
Change-Id: I59568b115ac7fcf73af70c946c95752bf33ae67f
2016-12-15 11:23:05 -08:00
Joe Onorato
de5b027d2c Add a native class to interact with DropBoxManager.
Test: Not written yet
Change-Id: I63ed888bd76f75c78a244a1bffae2d26f3b5f055
2016-12-15 11:23:05 -08:00
John Reck
eb418edae4 Actually fix pixelcopy for 90/180/270 rotation
Bug: 33421965
Test: PixelCopyTest testWindow* CTS tests
Change-Id: I1b49b3643c5d030c3d2de95de4a0ce3a4ff0111d
2016-12-15 10:26:33 -08:00
Stan Iliev
ed4d58cc33 Fix failing SkiaPipeline unit tests
Fix SkiaPipeline unit tests failure, caused by double deallocation
of SkCanvas in DeferLayer.

Test: build and ran angler-eng, ran HWUI unit tests.
Change-Id: I4a0a0113588e40a8ed32093d57efc6af3c0d7745
2016-12-15 09:52:15 -05:00
Colin Cross
0a2afc5061 Move hwui private headers to frameworks/base/libs/hwui/private am: 19def9943a am: 174d150673 am: 6b629b7f38
am: 904b4077ca

Change-Id: I2de0fa2990aab71b1afdc46bce63830c8b3ec904
2016-12-15 07:45:37 +00:00
Colin Cross
a515f11cc5 Convert libstorage to Android.bp am: 3ac2be93a9 am: f12ae4bed7 am: 791d02818a
am: fe9ffc29ff

Change-Id: Ia785d394bebb10757b031f14e368133e849c4c42
2016-12-15 07:44:37 +00:00
Colin Cross
87ba88ce6f Move libstorage includes into frameworks/base/lib/storage am: e78f853e46 am: afef87b1ba am: f142640afb
am: e6120caf2a

Change-Id: I2617bff54282647c2af5755349bf35d650f3d4c8
2016-12-15 07:43:29 +00:00
Colin Cross
904b4077ca Move hwui private headers to frameworks/base/libs/hwui/private am: 19def9943a am: 174d150673
am: 6b629b7f38

Change-Id: Ic62fcf3d48ad58c1dec0fc6ddf3eaacc8140cc18
2016-12-15 07:30:25 +00:00
Colin Cross
fe9ffc29ff Convert libstorage to Android.bp am: 3ac2be93a9 am: f12ae4bed7
am: 791d02818a

Change-Id: I73bb8a7332a6ba9aebf413cf9f0889ff9d98a5de
2016-12-15 07:29:24 +00:00
Colin Cross
e6120caf2a Move libstorage includes into frameworks/base/lib/storage am: e78f853e46 am: afef87b1ba
am: f142640afb

Change-Id: I9f084034f960478ee6141158a0a0c5119d1879a4
2016-12-15 07:28:24 +00:00
Colin Cross
6b629b7f38 Move hwui private headers to frameworks/base/libs/hwui/private am: 19def9943a
am: 174d150673

Change-Id: I0d97c3bc96c0beebc5988e4dca22ba4d5d1f982c
2016-12-15 07:16:31 +00:00
Colin Cross
791d02818a Convert libstorage to Android.bp am: 3ac2be93a9
am: f12ae4bed7

Change-Id: I1255ee2b166b73a79b19035d59994204bb268c82
2016-12-15 07:15:32 +00:00
Colin Cross
f142640afb Move libstorage includes into frameworks/base/lib/storage am: e78f853e46
am: afef87b1ba

Change-Id: Iff9c41710528af37a788973ac4a1080024808c95
2016-12-15 07:14:32 +00:00
sergeyv
91d6354cde HWUI: fix support RGB_565 for hardware bitmaps
Test: hwuimacro hwBitmap565
bug:30999911
Change-Id: Ie4128aba95a92041b7388c46d0b2109feaae302a
2016-12-14 16:34:55 -08:00
Colin Cross
19def9943a Move hwui private headers to frameworks/base/libs/hwui/private
hwui already exports most of its headers, move its private headers
into its source directory.

Bug: 33630870
Test: m -j native
Change-Id: I4968d5aaaa68d9e92c826841d20f29cef349c9d8
2016-12-14 13:35:40 -08:00
Colin Cross
3ac2be93a9 Convert libstorage to Android.bp
See build/soong/README.md for more information.

Test: m -j native
Change-Id: Ieb34d79af10e4e7cd146d0d40fd6946499dd1da0
2016-12-14 13:28:56 -08:00
Colin Cross
e78f853e46 Move libstorage includes into frameworks/base/lib/storage
Move the libstorage includes out of the global include path and into
frameworks/base/lib/storage/include, and export it.

Bug: 33630870
Test: m -j native
Change-Id: Idc0735360abc703496b9bc46d1a76ce8039af0d1
2016-12-14 13:28:46 -08:00
TreeHugger Robot
94b5c92a35 Merge "SkClipOp is now an enum class" 2016-12-14 18:29:58 +00:00
John Reck
713d153146 Merge "Delete dead code" 2016-12-14 17:16:44 +00:00
Mike Reed
6c67f1d045 SkClipOp is now an enum class
Change-Id: If423dd013a264162ae0b7674a0eeef34bc2cdaae
2016-12-14 10:29:54 -05:00
Sergei Vasilinetc
68a9dd8c88 Merge "HWUI: set correct sampler for external texture in shaders" 2016-12-13 23:19:47 +00:00
sergeyv
9c97e48fbe HWUI: set correct sampler for external texture in shaders
Test: hwuimacro hwbitmapcompositeshader
bug:30999911
Change-Id: Ic63f7109a4a7069b62c0b21efae2d4ba7e6d64be
2016-12-13 12:59:12 -08:00
TreeHugger Robot
fb1bc8bc97 Merge "SkCanvas is no longer refcnted, use SkClipOps" 2016-12-13 20:49:05 +00:00
Romain Guy
a247df0426 Merge "Pre-multiply gradient colors the right way" 2016-12-13 18:24:36 +00:00
Mike Reed
d43eaa9090 SkCanvas is no longer refcnted, use SkClipOps
Change-Id: I57469f56187f1ca8624e7a63968124ee925b4c04
2016-12-13 12:32:37 -05:00
Leon Scroggins III
ee708facf1 Remove unnecessary dependency, and fix the chain
Test: No new tests. This should not affect behavior; only dependencies.

Font.h does not need to include SkGlyphCache.h, and doing so requires
a transitive dependency on external/skia/src/utils, which was not
intended. Forward declare it instead, and fix the build errors that
resulted.

Change-Id: Ifd09430bb848d51b139df0f0c06c63e7e48711eb
2016-12-13 08:27:19 -05:00
Romain Guy
a0ed6f03f6 Pre-multiply gradient colors the right way
Alpha pre-multiplication must be done after applying the
opto-electronic transfer function when linear blending is
disabled. The correct way would be to pre-multiply before
gamma encoding but this leads to improper blending which
cannot be corrected without using sRGB frame buffers and
texture sampling.

Bug: 33010587
Test: cts-tradefed run singleCommand cts-dev --module CtsUiRenderingTestCases --test android.uirendering.cts.testclasses.GradientTests
Change-Id: I5f04bda4cb9f63674537aef5931621c14d601884
2016-12-12 18:50:07 -08:00
TreeHugger Robot
f1b7718f4f Merge "libandroidfw: Make tests less flaky" 2016-12-13 00:16:08 +00:00
Adam Lesinski
351471f928 libandroidfw: Make tests less flaky
Changing any of the test APKs could change resource IDs.
The resource IDs are all made public and assigned an ID
to avoid this issue.
Test: make libandroidfw_tests

Change-Id: Idd17c25f4ac86a0ad5b2b8da6f968e5d9b2346c1
2016-12-12 14:10:46 -08:00
TreeHugger Robot
7a7c921e18 Merge "Add more Skia pipeline unit tests." 2016-12-12 20:59:45 +00:00
Stan Iliev
52771272f4 Add more Skia pipeline unit tests.
Add more Skia pipeline unit tests and fix an issue
in backdrop/content bounds clip logic.

Test: built and run angler-eng and HWUI unit tests.
Change-Id: Ie41f80ff7ce9802a4d76e8b14f1695dbc9771a2b
2016-12-12 14:13:16 -05:00
TreeHugger Robot
8600928705 Merge "Make HWUI makefile include external/skia/src/utils" 2016-12-12 17:35:46 +00:00
Leon Scroggins III
82c581dac3 Make HWUI makefile include external/skia/src/utils
Test: none. No new code; this just makes it explicit that HWUI is
depending on headers in Skia's src/utils directory.

This is needed for SkTextureCompressor.h, which itself is pulled in
transitively through SkGlyphCache.h. Adding this here means that Skia
need not list src/utils as an exported include dir.

Change-Id: I3f2b022504486b7a640236fb98a497b599b42a6b
2016-12-12 16:15:49 +00:00