Commit Graph

4601 Commits

Author SHA1 Message Date
Shuzhen Wang
3e4720b3b4 ImageFormat: Fix YCBCR_P010 bitsPerPixel
For P010 format, Each pixel has Y and subsampled CbCr. So:
bitPerPixel = 1.5 * bitPerPixelY
bitPerPixelY = 16 bits

Bug: 200949749
Test: Camera CTS
Change-Id: I7964d64c25961dbef634ac1ef82898147ec57111
2021-09-23 22:25:09 +00:00
TreeHugger Robot
d7cbe3d827 Merge "In SkSL, replace 'sample' with '.eval'" 2021-09-08 18:15:20 +00:00
Chavi Weingarten
da143d4a41 Merge "Call applyPendingTransactions when frame didn't draw" 2021-09-08 15:50:25 +00:00
chaviw
a9997a38fe Remove flushShadowQueue
flushShadowQueue no longer does anything in BBQ so remove from Java and
JNI code.

Test: Builds
Fixes: 199204968
Change-Id: I4df67a23732ba4ffaca42390b29d3f81cadd6457
2021-09-07 17:53:31 -05:00
chaviw
9f19b5d198 Call applyPendingTransactions when frame didn't draw
It's possible for a caller to requested mergeWithNextTransaction, but
the main frame had nothing new to draw. If that's the case, the
mergeWithNextTransactions will be stuck and never applied (or applied
much later). Since this could end up blocking Transactions, it's better
to force apply these when we know a frame wasn't going to draw this
vsync.

Test: Existing tests pass
Bug: 195262673
Change-Id: Ic0919ba6446d6a12d824185f6b3e540c2d5319d7
2021-09-07 17:31:28 -05:00
Brian Osman
bb10b9c616 In SkSL, replace 'sample' with '.eval'
SkSL syntax is evolving to better communicate how the effects integrate
with the rest of the Skia pipeline. 'sample' suggests texture sampling,
but the invocation of the shader object is really a call to a function
(the entry point of the SkShader's generated code).

Bug: skbug.com/12302
Change-Id: Ib6b895208ae70368901965b7ca13434c51a7455f
2021-09-07 20:17:47 +00:00
chaviw
9c13753526 Rework blast sync callback model
The previous code waited for a frame complete callback from hwui before
notifying WMS that a draw had occurred. However, frame complete callback
was not guaranteed to get called since it only invokes a callback if a
draw actually occured. VRI really needs a signal that RT has completed,
since it just needs to know that a draw was possible so it can notify
WMS that the RT completed its pass.

Instead, rename frameCompleteCallback to frameCommitCallback since that
API is exposed to a public API when a frame was actually drawn.
Create a new callback, frameCompleteCallback, that is invoked when the
draw has completed, regardless if a frame was actually drawn.

When the frameCompleteCallback is invoked, VRI can check to see if a new
frame actually drew. VRI can call into BBQ to see if the frame acquired
matches the frame that was attempted to draw. If so, VRI can wait on a
transaction callback. If not, it can allow VRI to continue. In either case,
it will notify WMS that the draw has finished.

Test: Split over and over
Bug: 195262673
Change-Id: I24dd19ab2746be3fc33e597761abf8c5249f8b5b
2021-09-03 14:50:37 -05:00
Seigo Nonaka
4ed687a48f Filter Alias which points non-existing font family name
The FontFamily will be removed if none of font files exist on the
device.

Bug: 192479819
Test: atest FontListParserTest
Change-Id: I36f6476fe37bc04ec8737936747385c63908d651
(cherry picked from commit 691cfe8818)
2021-08-26 06:21:18 +00:00
John Reck
ba6dd78b58 Merge "Fix Nullability annotation" 2021-08-17 15:52:35 +00:00
John Reck
9e91be3541 Fix Nullability annotation
The initial commit of the @Nullable annotation appears
to have been based off of the javadocs. However, the actual
code does not appear to have allowed for null at that time.

It's not entirely clear if null was ever allowed, but it
hasn't been allowed since API 14 at least

Test: make
Fixes: 195924626
Change-Id: Ibffdc7b90cbfc3bc65a4a08bee52e2e3412bed3e
2021-08-13 22:42:44 +00:00
Automerger Merge Worker
4f2415e1e7 Merge "Merge "Remove bitwise plane information from ImageFormat's P010 docs" into sc-dev am: b0766d70d9 am: 45b34cb562" 2021-08-13 21:08:23 +00:00
Alec Mouri
d351b6d31d Merge "Remove bitwise plane information from ImageFormat's P010 docs" into sc-dev am: b0766d70d9 am: 45b34cb562
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15529193

Change-Id: I97550837d18c57a22bbdef32094571e353addb9b
2021-08-13 21:07:58 +00:00
Alec Mouri
b0766d70d9 Merge "Remove bitwise plane information from ImageFormat's P010 docs" into sc-dev 2021-08-13 18:42:57 +00:00
John Reck
0ba298a7e4 Move WebView overlay support off of NewWeakGlobalRef
Test: ?
Bug: 194893628
Change-Id: Idab4dbdfa958b383754db703b76503a63a8b9d26
2021-08-13 13:40:55 -04:00
Alec Mouri
edae98a45a Remove bitwise plane information from ImageFormat's P010 docs
Some vendors may prefer a different underlying layout for P010 in the
future compared to the one currently supported in gralloc. In
particular, it's not a guarantee that the CB/CR plane is contiguous in
memory with the Y plane.

Bug: 195570363
Test: builds
Change-Id: I01eea78b8555610470959cdb4f0f9ceb16e80f73
2021-08-12 16:49:58 +00:00
John Reck
31bde04846 Move HardwareObserver off of NewWeakGlobalRef
Test: atest android.view.cts.FrameMetricsListenerTest
Bug: 194893628
Change-Id: I352ba74ba03ac998ddcf53a2d5d65f2577e23dd5
2021-08-11 15:11:42 -04:00
Leon Scroggins
6bb80ed918 Merge "Do not turn on dithering by default" into sc-dev am: 9817790471 am: 9a02a75c9d
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15502988

Change-Id: Ib9dea6db401869d84343a6f3564256445efd2ea7
2021-08-09 23:57:09 +00:00
Leon Scroggins
9817790471 Merge "Do not turn on dithering by default" into sc-dev 2021-08-09 23:34:12 +00:00
Leon Scroggins III
eb5a3553dc Do not turn on dithering by default
Bug: 195281495
Test: Ief7025c21f365ae90fa63120f1cc82e0695901af

This is a partial revert of 47c51fe80e3dd9d6b518c11c2e1714c271835af5/
I5d5d03e430af380e23016c6deba5eca46067a22b. The intent was to bring
today's rendering implementation in line with the old HWUI
implementation, which always dithered gradients by default. However,
when dithering is enabled, the Skia implementation dithers more than
just gradients (e.g. Bitmaps). Combined with poor performance of the
dithering algorithm on certain GPUs, this led to a performance
regression on key apps.

Change-Id: Id54121091e2cc47131dc9b5ae67bd638fbc005fc
2021-08-09 15:11:20 -04:00
Lucas Dupin
2983d71f12 Merge "Do not run background animation without a Looper" into sc-dev am: c359d54b49 am: c31d0895e5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15474611

Change-Id: I5e36368c4d21afb7cfe60e2d196381c97a0c0839
2021-08-05 23:14:56 +00:00
Lucas Dupin
c359d54b49 Merge "Do not run background animation without a Looper" into sc-dev 2021-08-05 22:44:56 +00:00
Lucas Dupin
84922f4f43 Do not run background animation without a Looper
Apps that create RippleDrawable on a background thread could crash,
making them incompatible with S.

Test: manual with MindBody app
Fixes: 194952073
Change-Id: I9d16d5c63c192e96191b4fbc859ff3bc3da733cb
2021-08-05 09:18:32 -07:00
John Reck
7241862b13 Merge "Have RippleDrawable ignore non-attached RenderNodes" into sc-dev am: a633284efe am: 5c4d6e0a01
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15463315

Change-Id: Ib9b35c118bda71f463f93b0c962fe8f34417d720
2021-08-04 22:47:33 +00:00
Sally Qi
2e747286c2 Merge "Fix reference issue from the Theme and XML color in Gradient Drawable by" 2021-08-04 18:30:58 +00:00
John Reck
a355e904a2 Have RippleDrawable ignore non-attached RenderNodes
Don't try to do a RenderNodeAnimation if the RenderNode
isn't attached. Although this isn't strictly speaking a
valid state to be in, it's also easy for RippleDrawable
to just ignore it.

Bug: 186864959
Test: ripples still show up, are still RT accelerated normally
Change-Id: I8127f1419508157eb83ac9bb1562745ac53d2ced
2021-08-04 18:22:16 +00:00
Sally Qi
9df984da93 Fix reference issue from the Theme and XML color in Gradient Drawable by
1. Change mGradientColors to a ColorStateList array
2. Update mGradientColors array by reading the Theme and XML color in UpdateGradientDrawableGradient function
3. Query state color in each instance of mGradientColors array in
ensureValidRect function for LinearGradient object creation.

Bug: 157969624
Test: android.graphics.drawable.cts.GradientDrawableTest suite
Change-Id: Ibbf2c5cb2846d75c53bd34a3f04661ae604e6745
2021-08-03 17:23:56 -07:00
John Reck
4342391dd1 Merge "Remove NewWeakGlobalRef from RenderNode" 2021-08-03 22:29:33 +00:00
Vishnu Nair
896775a952 Merge "SurfaceView: Synchronize destframe updates with SurfaceView size changes" into sc-dev am: 40ddf958e6 am: f315a466d5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15363651

Change-Id: I7366b93293ea9bfd6bfb6a39f8b0488963de2742
2021-08-03 00:08:32 +00:00
Vishnu Nair
40ddf958e6 Merge "SurfaceView: Synchronize destframe updates with SurfaceView size changes" into sc-dev 2021-08-02 23:35:38 +00:00
John Reck
26dd06b2cb Merge "Move AnimatedImageDrawable off of NewWeakGlobalRef" 2021-08-02 13:41:18 +00:00
Vishnu Nair
f13eac9f7e SurfaceView: Synchronize destframe updates with SurfaceView size changes
This CL fixes one of the issues with SurfaceView parent frame and
content syncing.

With BLAST, we have two surface controls each setting a scale. The
parent surface control sets a scale based on the requested surface
size and the SurfaceView layout size. The BlastBufferQueue surface
control scales the buffer to the requested buffer size if the buffer
has the appropriate scale mode.

The destination frame controls the second scaling and it must be
applied with the parent surface scale changes. This cl fixes flickers
where the requested fixed surface size changes without any view size
changes. This cl allows the caller to pass in a transaction to
BLASTBufferQueue#update which is updated with the destination frame
changes. This transaction can then be applied with the parent
surface changes.

This also fixes an issue where destination Frame was being set on
every buffer update and when we updated the BlastBufferQueue size.
Since buffer transactions can be queued up on the server side, a
stale value maybe applied for a few frames causing flickers.

Fixes: 194458377
Test: bug repro steps
Test: atest SurfaceViewSyncTest#testSurfaceViewSetFixedSize

Change-Id: I118bd1c3942b389e3951c3fd7389403895fc7b31
2021-07-30 16:18:21 -07:00
Jay Aliomer
a505866a86 Merge "Reset patterned animations when solid ripple is reset" into sc-dev am: 70c0c93542 am: 6f44007d8c
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15413252

Change-Id: I46c735c527598dc34e6b7746f15d1d295c76d16e
2021-07-29 22:25:43 +00:00
John Reck
4f56f99d46 Remove NewWeakGlobalRef from RenderNode
Bug: 194893628
Test: make && CtsUiRenderingTestCases
Change-Id: I90d9d96ed940812c9dca1385f4a71d0a0cd2936f
2021-07-29 16:25:20 -04:00
John Reck
3998a01e8f Move AnimatedImageDrawable off of NewWeakGlobalRef
Bug: 194893628
Test: make && atest android.graphics.drawable.cts.AnimatedImageDrawableTest
Change-Id: I5c9845bc1408a3b1221e1ba45409ee194189387f
2021-07-29 12:40:44 -04:00
Jay Aliomer
304b04a492 Reset patterned animations when solid ripple is reset
Fixes: 194655257
Test: visual using the material demo app + MX player
Change-Id: I47805fe1a36bdadd7de45008c42cf2fcb23d223a
2021-07-29 12:53:50 +00:00
Seigo Nonaka
44e66f5153 Merge "Remove @FastNative annotation from TextRunShaper" 2021-07-23 05:52:33 +00:00
Bo Liu
15634bdc3c Switch HWUI to use native performance hint API am: 6a3fc60f43 am: 4333a83789
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15326474

Change-Id: Id65a52342eff943a9b644881936f51555a64d77d
2021-07-22 21:50:55 +00:00
Bo Liu
6a3fc60f43 Switch HWUI to use native performance hint API
Test: None
Bug: 194204196
Change-Id: I80dfdb5d56921c465406cc4534e82738c668d46d
2021-07-22 11:33:01 -04:00
Seigo Nonaka
bc237ba163 Remove @FastNative annotation from TextRunShaper
Bug: 194208524
Test: N/A
Change-Id: Ia504b61d7d021f47607a1a657ac60a716b46ff0e
2021-07-20 11:53:27 -07:00
Brett Chabot
d69660fc6a Add bug link for androidx screenshot API TODO.
Bug: 194183980
Test: TH
Change-Id: I02a88ceb5ce079886f7aae9b688598c85e25a2c0
2021-07-20 17:11:07 +00:00
TreeHugger Robot
dcc12612b2 Merge "Filter Alias which points non-existing font family name" 2021-07-14 01:39:38 +00:00
Brett Chabot
856db9e316 Add ability to disable GL draws.
This feature is intended for use in headless test environments,
where disabling drawing has minimal compatibility impact and can
save significant resource usage when running UI tests.

This feature is controlled via a new system property
'debug.hwui.drawing_enabled', and a HardwareRenderer public API that can
override the property value on a per-process basis.

Bug: 188559292
Test: boot emulator, atest CtsGraphicsTestCases
Change-Id: I93c21e680382e03342f235dbf58bd7a5c8a6f767
2021-07-13 20:01:47 +00:00
Seigo Nonaka
691cfe8818 Filter Alias which points non-existing font family name
The FontFamily will be removed if none of font files exist on the
device.

Bug: 192479819
Test: atest FontListParserTest
Change-Id: I36f6476fe37bc04ec8737936747385c63908d651
2021-07-13 11:20:49 -07:00
Huihong Luo
eb93107b57 Add a sys prop to control WebView Overlays support
The boolean system property is named as "debug.hwui.webview_overlays_enabled"

Bug: 192267127
Test: change the property value, check presence of Webview Surface
Control

Change-Id: I01e3e26282a5fa79aa504a6e49c5abe1a1c3ea02
2021-06-30 11:47:21 -07:00
Huihong Luo
7580a2dd98 Merge "Fix a crash caused by transaction" into sc-dev 2021-06-24 20:27:48 +00:00
Huihong Luo
4df4151bc0 Fix a crash caused by transaction
A native transaction passed from webview is sent back to native side, so java side does not manage the life cycle of the transaction.

Bug: 191414767
Test: Play a video, switch to another app, wait for 10 seconds
Change-Id: I013052c202b445438d6cb6497f5f9a2fc22a2b85
2021-06-24 11:10:06 -07:00
Jay Aliomer
4508c4ab85 Fix ripple radius calculation
Fixes: 191608957
Test: manually using the material showcase app
Change-Id: I3a89d200a842b3dd5f34ffc94a2c62c6fab9436e
2021-06-24 12:19:38 -04:00
Huihong Luo
17410b668f Merge "Fix z-order for webview surface control" into sc-dev 2021-06-18 19:53:34 +00:00
Jay Aliomer
ccc98b8d6e Merge "Update patterned ripple mask when changed" into sc-dev 2021-06-18 17:57:57 +00:00
Huihong Luo
34f42fdecd Fix z-order for webview surface control
Set the root surface control transparent, and set the z order of the newly created child surface control to -1.
A new callback is needed to update root surface control in sync from Java side.

Bug: 186750329
Test: use latest APKs from Webview team, play a video, mini toolbar should be visible
Change-Id: I0b37ee8f83fd2b41ff4f2856dbadd31ff6170baf
2021-06-18 10:14:22 -07:00