We didn't trace the draw from cache.
Here we add trace for draw into bitmap, which is normally heavy.
fix: 65060698
Bug: 65060698
Test: run test app and get systrace and check
Change-Id: Ia81127c4aa285b3277e9c9edbdf356d85cb28b5e
(cherry picked from commit cf0c41dbc2)
Fix alpha not being applied for Views that have non overlapping
rendering (getHasOverlappingRendering is false).
Test: Ran system UI
Bug: 65857651
Change-Id: I31001de0f67bf95ab8425189a4b78427d062585d
This is a test that simulates a standard TV application screen.
The UI elements:
A full screen background bitmap.
Few rows of cards.
Each card has a bitmap and an info area.
Info area has two lines text.
Each card is dimmed, implemented in two modes:
1. adding translucent color RenderNode on top of card
2. applying ColorFilter to bitmap.
Firt card of each row is scaled up and has shadow.
The animations:
Cards are updating translation Y and updating display list
and overlay color alpha or colorfilter.
Test: there are four tests:
tvapp: baseline test, with rounded corner, use Color RenderNode to dim
tvapp_norc: no rounded corner
tvapp_cf: use colorfilter to dim
tvapp_norc_cf: no rounded corner, use colorfilter to dim
Bug: 64990221
Change-Id: I385e349386c41e32b7313180db8c81b8f3e39f88
Pass VD staging dirty flag value to the render thread dirty flag.
This is fixing animation on growing VD bounds, which looked bad
because cache was not refreshed and scaling it up 100 times did
not look good.
Test: Ran GoogleCamera app and HWUI unit tests.
Bug: 65534766
Change-Id: Ie83cbb6839c772556340b4ec526ba3699fc84255
As graphicsstats can be subjected to data coming
from the disk and is in system_server we want
to bias towards best-effort instead of strict
no-errors that the rest of HWUI typically uses.
So treat any dump/merge of graphics stats as
best effort, ignoring any errors that occur.
Bug: 65652900
Test: verified 'dumpsys graphicsstats' still works
Change-Id: Ia9b91b745c2a9aedad2f22e3087e1d4bf37a1135
We didn't trace the draw from cache.
Here we add trace for draw into bitmap, which is normally heavy.
fix: 65060698
Test: run test app and get systrace and check
Change-Id: Ia81127c4aa285b3277e9c9edbdf356d85cb28b5e
Move content bounds into DrawFrameTask. This ensures
that changes in bounds are synchronized with changes in
rendering commands, avoiding potential underdraw.
Bug: 64200212
Test: Repro steps in bug. Drag up/down on resize handle, verify
no flicker.
Change-Id: I3109acf262e23c2a7d8904f1dcbfc8273aaed65b
The incident request args sets privacy spec. Strip action is optimized
to run once for each type of spec and ready for flush multiple times.
Incident command is updated to take -p option to specify privacy spec.
Bug: 64687253
Test: unit tests written, manually run incident command to test as well
Change-Id: I6753df117f76dc1a5f4d2152baa3fbbf56b490e4
This approach avoids paying for any extra overhead in flushing
commands from Skia to the GPU.
Test: LauncherJankTests#testOpenAllAppsContainer
Change-Id: Ie4be3592d1b032a06d848c994b8be435638d24c8
Teach is_idmap_stale_fd to include the idmap version in the list of
criteria used to determine if an idmap file is already up to date.
Change-Id: I3e4e2aa502fe76a034c3977bdb055a1df7e665be
Bug: 65077146
Test: Manual - uirendering tests don't allow test draw content
to be displayed first.
It's not always valid to disable blending on the first draw to the framebuffer,
since some blend modes affect the framebuffer in different ways. We now only
disable blending if the op is SRC_OVER to be safe.
For example:
canvas.drawColor(0xfeff0000, PorterDuff.Mode.CLEAR);
canvas.drawColor(Color.BLUE, PorterDuff.Mode.DST_OVER);
The BLUE should always be seen - the other draw should just clear the buffer.
Prior to this fix, the above code (put in a window background) would draw black.
In addition, this removes the disable behavior in drawRects(), since that should
never benefit from the optimization - that decoration is always drawn at the end
of a frame.
Change-Id: I34e8d9d62d6e1dfa00e9301f44c277475f2940a8
For frames with multiple VDs the context switching involved was causing
worst case frame times of ~40ms to draw all VDs in the frame whereas
this new approach has worst case performance of ~5ms when drawing the
same frame (w/ approximately 26 VDs).
Bug: 64487466
Test: SystemUiJankTests#testGoToFullShade
Change-Id: I5cad0b5df86e5eac3722ee8695fc7511b38b8a7c