Commit Graph

8699 Commits

Author SHA1 Message Date
Derek Sollenberger
f209c06d36 Don't crash when presented with non-roundRect clipping outline.
We still won't clip to the outline to match existing HWUI behavior.

Test: CTS Graphics and hwui_unit_tests pass
Bug: 38411077
Change-Id: Ia3161df77a4ccaf0e714d2fe1ac12396d1c8f9e9
2017-05-26 12:11:34 -04:00
John Reck
36393c3e8d Fix null deref crash
Change-Id: Ic1a64e926b5faa2f4cf8d079a2b67e0261dcecd7
Fixes: 62035692
Test: manual
2017-05-23 15:32:08 -07:00
TreeHugger Robot
4277d8f3e6 Merge "Fix recent apps in system UI for Skia pipeline" into oc-dev 2017-05-23 19:19:39 +00:00
Stan Iliev
f5f27cd828 Fix recent apps in system UI for Skia pipeline
Enable HW Bitmaps for Skia pipelines by using a readback to
convert GraphicBuffer into a raster SkImage. Both BitmapShader
and drawing HW bitmaps into a canvas are supported.

Test: recent apps work, no memory leaks, CTS graphics and
UiRendering tests passed, HWUI unit test passed
bug: 38136140
Change-Id: I23fed5febad3b1009e0417fb7e21a347a8d11b0d
Merged-In: I23fed5febad3b1009e0417fb7e21a347a8d11b0d
2017-05-23 13:40:34 -04:00
John Reck
9a814875c4 Improve time to texture destruction
Eliminate textureCache.mGarbage which is only cleared
in a trimMemory. Instead when we hit ~Bitmap post a
message to RenderThread to release the texture immediately

Bug: 38258699
Test: manual
Change-Id: I962ba275e89afb628ba02f74769287edbab9fed4
2017-05-22 17:17:05 -07:00
TreeHugger Robot
9363d33262 Merge "Revert "Fix recent apps in system UI for Skia pipeline"" into oc-dev 2017-05-17 04:29:03 +00:00
John Reck
576b6a8a79 Revert "Fix recent apps in system UI for Skia pipeline"
This reverts commit 625dd56a45.

Reason for revert: Caused a memory leak, b/38330767
Bug: 38136140
Bug: 38330767
Test: manual, verified memory isn't leaking doing the steps in b/38330767

Change-Id: I998bea04788d58ba6bad71c1691d5a3b33190c1b
Merged-In: I98b2dfd750be57a15785808e2d5723616e2ce20a
2017-05-17 00:32:09 +00:00
TreeHugger Robot
dad0ba155e Merge "Fix recent apps in system UI for Skia pipeline" into oc-dev 2017-05-13 01:41:58 +00:00
Stan Iliev
625dd56a45 Fix recent apps in system UI for Skia pipeline
Enable HW Bitmaps for Skia pipeline just enough to make
recent apps list working by adding support for BitmapShader.
Drawing HW bitmaps in a canvas is also supported.

Test: recent apps work, HWUI unit tests pass, CTS tests pass.
bug: 38136140
Change-Id: Ibd06c859c86dc213310d5ce5272497e1882d0cc6
Merged-In: Ibd06c859c86dc213310d5ce5272497e1882d0cc6
2017-05-12 19:42:33 -04:00
TreeHugger Robot
19af4cc375 Merge "AAPT: Include empty locale in getLocales" into oc-dev 2017-05-12 00:22:44 +00:00
TreeHugger Robot
7d75f49175 Merge "Fix support for @empty in style resolution" into oc-dev 2017-05-11 21:55:24 +00:00
Adam Lesinski
fa2fc0b263 AAPT: Include empty locale in getLocales
AAPT dump badging relies on the empty locale being
present when there are no locales.

Bug: 38192121
Test: manual
Change-Id: I2f5c431d4fd07c525a2318e7b93be0e93c32448f
2017-05-11 12:26:52 -07:00
Adam Lesinski
32e7501a27 Fix support for @empty in style resolution
If @empty is encountered in XML, do not fallback
to searching through the theme.

Bug: 36891052
Test: make aapt2_tests
Test: bit CtsContentTestCases:android.content.res.cts.TypedArrayTest
Change-Id: Ie3bf7b70af9c7913513a1092afd95d26bec5e635
2017-05-11 11:28:29 -07:00
Seigo Nonaka
373b15bda9 Fix double bolding
resolveStyle increases minikinStyle's weight value based on Skia's style
value. Since we compute Skia's style based on given weight value, we
should not add extra bold weight to minikinStyle.

This CL also fixes misunderstanding of base weight.
The base weight is only used for computing weight relative to the
weighted alias. Thus, base weight should not be updated except for
createWeightAlias method.

To be clear, this CL changes the function names but keeps the same
semantics as before.

Test: adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
Test: am instrument -w -e class android.graphics.cts.TypefaceTest\
      android.graphics.cts/android.support.test.runner.AndroidJUnitRunner
Bug: 37880319
Merged-In: Ied73189b11792fb062da46f45afd2db664e6ecb4

Change-Id: I82350a1bfb99ce198b955f127949e21bccccb1cb
2017-05-09 04:10:07 +00:00
Sergey Vasilinets
01a5cc9004 Merge "Add StrictMode.noteSlowCall to calls that result in hw bitmap readback" into oc-dev 2017-05-05 19:31:53 +00:00
sergeyv
9fd259c9b0 Add StrictMode.noteSlowCall to calls that result in hw bitmap readback
bug:37748500
Test: BitmapTest:*inStrictMode
Change-Id: Ifea1c6f0c50ba2f409c96b7ccf7eb31c89ef81c8
2017-05-03 17:41:33 -07:00
Chris Craik
e681bf6b5c Make all FrameBuilderTests run on RT
Fixes: 33834637
Test: adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests  --gtest_filter=FrameBuilder.renderNode_OpenGL
Test: adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests  --gtest_filter=FrameBuilder.projection*

They essentially all use Caches, so making RT-only for safety. This
prevents crashes when trying to access Caches in a non-rt test, when
it's not guaranteed to be created.

Change-Id: I530c73d0ffe2d4f4ef53a46715f5bcca2c485f70
2017-05-03 10:55:29 -07:00
Chris Craik
8f4ac4ac05 Merge "Revert "Temporarily enable GL validation"" into oc-dev 2017-04-28 23:04:02 +00:00
TreeHugger Robot
ebd44d0076 Merge "Add conic support for Path#approximate" into oc-dev 2017-04-28 18:47:37 +00:00
TreeHugger Robot
e7172ff9fb Merge "AAPT2: Add workaround for non-standard package IDs" into oc-dev 2017-04-27 23:45:44 +00:00
Chris Craik
96202d56ad Add conic support for Path#approximate
Fixes: 37722722
Test: bit CtsGraphicsTestCases:PathTest
Test: bit CtsUiRenderingTestCases:android.uirendering.cts.testclasses.PathTests

Also adds static asserts to path-walking code, to avoid this problem
in the future.

Also adds annotations, since this is public API now.

Change-Id: Ic39b167968b98fd8197be2d0f9aca79949717237
2017-04-27 16:24:18 -07:00
TreeHugger Robot
f9dc09f4ea Merge "Disable Vulkan backend when running hwui_unit_tests." into oc-dev 2017-04-27 22:10:49 +00:00
Derek Sollenberger
0f89539de6 Disable Vulkan backend when running hwui_unit_tests.
The Vulkan backend fails to run on devices without vulkan drivers.
Until we can stub out the vulkan drivers for those devices we find
an acceptable solution.

Test: hwui_unit_tests on device w/out vulkan
Bug: 37422708
Change-Id: I3d7c21882053459f25ca1eb5648cdf5dfd4c333e
2017-04-27 11:30:20 -04:00
Adam Lesinski
4ca56978a9 AAPT2: Add workaround for non-standard package IDs
The dynamic ref table used to map build-time IDs to runtime IDs
is mainly used for shared resource libraries and has a few built-in
mappings (app 0x7f and framework 0x01).

Using a non-standard package ID like 0x80 causes a failure in package ID
lookup. The solution is to ship the dynamic_ref_table with an identity mapping
with any resource table that uses a non-standard package ID.

Adds some tests to ensure this works correctly.

Bug: 37498913
Test: make libandroidfw_tests
Test: make aapt2_tests
Change-Id: Ic3f67942384d34e7fdcbc94ded360e940e3ebc8a
2017-04-26 21:55:31 -07:00
Chris Craik
005275d238 Revert "Temporarily enable GL validation"
Fixes: 35387665
Test: none

This reverts commit b5544d0308.

Change-Id: I4cf3fa0c65aaee38d0fa9cfea15b72c8ef42acb1
2017-04-26 00:47:42 +00:00
TreeHugger Robot
7e44951bb7 Merge "Fix include" into oc-dev 2017-04-25 23:32:11 +00:00
Chris Craik
66c3a829dc Fix include
Bug: 35387665
Test: builds with HWUI_ENABLE_OPENGL_VALIDATION := false

Dependency on gl3.h was added while that header was auto-included for
error checking purposes. Add the include to enable us to disable gl
error checking.

Change-Id: Ic969da716e2323f8e42d20da8fd0a6fa653f9775
2017-04-25 13:42:53 -07:00
Matt Sarett
e07a91a8db Add unit test for Skia path behavior
Test: This is a test.
Bug: 35369941

Change-Id: Iaf21d3a903702f81a20e08e8b50b782f311ce7f3
2017-04-19 12:38:30 +00:00
Derek Sollenberger
190fe086df Merge "Remove round rect clipping optimization." into oc-dev 2017-04-18 16:06:41 +00:00
Chris Craik
c84824942d Disable crashing drop shadow tests
Bug: 36272398
Test: HWUI unit tests now run without crashing

Change-Id: I2877ed184640e5043d33b10605db71dde501fd2a
2017-04-17 13:58:22 -07:00
Derek Sollenberger
f7d98f436c Remove round rect clipping optimization.
This optimization fails to account for inverse fill.

Test: bit CtsGraphicsTestCases.CanvasTest
Bug: 37417782
Change-Id: I04adfa93542b1bd1f5d905c64bb40e521242e29d
2017-04-17 18:05:42 +00:00
Romain Guy
5545518123 Properly decode colors spaces in BitmapRegionDecoder
Reusing a bitmap with BitmapRegionDecoder would preserve the
previous color space. This change also tweaks color space
matching to make sure we pick Display P3 with parameter d=0.039
or d=0.04045

Bug: 36905374
Test: CtsGraphicsTestCases
Change-Id: I4d2d66e5babebb0b5ce5cbdc7e8244177b4b7f9c
2017-04-15 21:41:22 -07:00
Matt Sarett
ca9b703b88 Bug fix: use legacy SkCanvas regardless of color space tag
Test: Added unit test. CtsGraphicsModule.

Bug: 32984164

Change-Id: If72e1e31c98e01f97f3a05d763f5d4c71cf88313
2017-04-14 16:26:50 +00:00
Seigo Nonaka
d154829cb1 Use provided style for fallback font selection
If the developer gives some weight/italic to the Typeface.Builder
the fallback used the metadata in the font file. We should use
provided data instead.

This CL also adjusts upper and lower limits on weight, from 100..900 to
1..1000

Bug: 37257745
Bug: 37251569
Test: android.graphics.cts.TypefaceTest passes
Change-Id: I7cf390d96b49afcce359928373698b0c9a9babd8
2017-04-14 00:54:46 +00:00
Jim Van Verth
1be9766a68 Merge "Add uncached and perspective shadows to Skia renderer" into oc-dev 2017-04-13 20:01:47 +00:00
TreeHugger Robot
729a515e5e Merge "Introduce setFallbackTypeface" into oc-dev 2017-04-13 19:21:25 +00:00
Seigo Nonaka
5b6347a6af Introduce setFallbackTypeface
setFallbackTypeface is returned by Builder.build() method when the
provided font is not loaded due to some reasons.
The fallback family is resolved with width/italic passed to Builder.

Bug: 36794225
Test: android.graphics.cts.TypefaceTest passes
Change-Id: I65e220aca823fd815a52437b11c8e6dc952de8e2
2017-04-13 10:12:27 -07:00
Matt Sarett
44dc270830 Add SkiaCanvas::captureCanvasState()
Test: Verified bug is fixed.  Wrote unit test.

Bug: 37268771

Change-Id: I9deb7db353cd2129ad245e7f65419670463bb717
2017-04-13 11:11:11 -04:00
Jim Van Verth
5745a0a37f Add uncached and perspective shadows to Skia renderer
Test: manual - looked at FrameworkShadow app

Bug: 37300468
Change-Id: I72d820479141db2d83363747d9f76abbaca70d98
2017-04-13 13:15:12 +00:00
Derek Sollenberger
eb69cbbe22 Change behavior of setBitmap to cleanly reset the canvas
- identity matrix
 - no save stack
 - wide-open clip

This reverts commit 4f641d1e45

Test: bit CtsGraphicsTestCases:.CanvasTest
Bug: 36218535
Change-Id: Id11deb06e37d6df61f1f171d424ab150d812a7a8
2017-04-11 14:00:25 -04:00
Romain Guy
8242656f49 Color management, the missing pieces
Implement missing color management pieces for bitmaps:

- Bitmap.createBitmap(Bitmap src, ...) now creates a bitmap
  in the same color space as the source bitmap
- Bitmap.createScaledBitmap() now creates a bitmap in the
  same color space as the source bitmap
- Bitmap.createBitmap(..., ColorSpace colorSpace) to create
  bitmaps in a specific color space
- Fix copy from A8 to F16
- Copying bitmaps in F16 or with a color space does not work,
  it's currently a limitation in Skia

Bug: 36905374
Test: BitmapColorSpaceTest
Change-Id: I0092fe4432511db50daa3a9393389a9db05e0c2a
2017-04-07 07:56:14 -07:00
TreeHugger Robot
c273784c91 Merge changes I6f00614d,I987eeab2 into oc-dev
* changes:
  Convert 16 bit bitmaps to 8 bit on devices that do not have GLES3.0
  Fix HardwareBitmapTests.testBitmapConfigFromRGB565
2017-04-06 21:21:59 +00:00
Romain Guy
89de234c72 Convert 16 bit bitmaps to 8 bit on devices that do not have GLES3.0
Bug: 37077308
Test: CtsUiRenderingTests (ran to manually emulate 2.0 devices)
Change-Id: I6f00614d79797835adcfe4716bd331573e1463e3
2017-04-06 12:24:29 -07:00
Romain Guy
7c98f5da3d Fix HardwareBitmapTests.testBitmapConfigFromRGB565
Bug: 37077304
Test: HardwareBitmapTests.testBitmapConfigFromRGB565
Change-Id: I987eeab243f93f9ee8fe8d1b6a12ddbd23225651
2017-04-06 11:00:21 -07:00
Matt Sarett
ea70d22dc8 Xform bitmaps to sRGB on SW and PDF canvases
For picture-backed canvases, we will defer the xform
until playback.

Test: Unit tests and cts test.
Bug: 32984164
Change-Id: Ib74663bcb688b74b6ba8792b403b0475126732af
2017-04-06 15:14:00 +00:00
Stan Iliev
d7410f7829 Fix pop-up shadow drawn in the wrong place with Skia pipeline
Fix a bug in DrawShadow matrix calculation. Recorded matrix does
not need to be applied, because parent display lists have already
replayed matrix transformations.

Test: added a new HWUI unit test that is passing only after this fix
Bug: 33103723
Change-Id: I7a47dbe879df6b9e5920a47c0e1168d9902a3e70
2017-04-04 16:24:55 -04:00
TreeHugger Robot
f9340ca491 Merge "Fix HWUI/Skia Gradients to premultiply the colors prior to interpolation" into oc-dev 2017-04-04 19:06:32 +00:00
Chris Craik
eabb5621dd Merge "Revert "Switch libplatformproto to sharedlib"" into oc-dev 2017-04-04 17:16:43 +00:00
Derek Sollenberger
669b15a935 Fix HWUI/Skia Gradients to premultiply the colors prior to interpolation
This is fixed in Skia by passing the appropriate flag when the shader is
generated.  The fix in HWUI is to reverse the premultiplication and
interpolation steps.

Test: bit CtsUiRenderingTestCases:.testclasses.ShaderTests
Bug: 34323783
Change-Id: I3417141949f62fcc696b6d8213a4b446d7d0cbf8
2017-04-04 12:07:28 -04:00
Chris Craik
817b494739 Revert "Switch libplatformproto to sharedlib"
Bug:36847782

This reverts commit e5549d414c.

Change-Id: I38f1c501b7e40be11ba5f0a7a50651e0c3e41fc5
2017-04-03 21:46:44 +00:00