Bug: 27186019
Theory: It appears to be possible for FontRenderer
to not unbind its PBO prior to textures being uploaded,
resulting in trying to glSubTexImage2D with a bound
GL_PIXEL_UNPACK_BUFFER. In that scenario the void* is
the offset into the PBO which given a non-null data
will almost certainly overrun the end of the buffer. This
in turn produces a GL_INVALID_OPERATION error.
Change PixelBuffer to avoid leaking this state for now.
This will result in more calls to glBindBuffer/glUnbindBuffer
in the worst case, but the worst case is already bad so this
shouldn't be a problem. In the normal case we avoid binding
the PBO at all ever, so this doesn't impact that.
Change-Id: I05473f0d2f9a3a5da0e33d8f9ddea4731ce970e3
Animator's play state can go from NotStarted to Finished directly
in the case of calling start() and end() within one frame. Previously
we only set animator's interpolator when the animator is transitioning
to Running state. So when Running state is skipped, the interpolator
is left unset.
Bug: 27224373
Change-Id: I5a53106fe1aae38ccaf1df8debd553be3bc56133
This is reverting the revert of what reverts the revert of the original
implementation. Fourth revert is a charm!
This reverts commit df7fdb1e0bdb5c289bbc08047e5c710185503309.
Change-Id: I6fc3a5accfd8b79c3da31bbc101ad9e9b4d6e7dd
Bug: 27186019
Quick testing shows negligable performance impact, so turn
this on temporarily to track down some GL errors
Change-Id: I5700075d5640af0951d832acfde3179ec7511912
A slow listener could cause a race in the NotifyHandler
where the single reference to the buffer to send would get
updated when it shouldn't have been.
Switch to a queue of available buffers to prevent this race.
Also, stop setting and clearing the observer reference and instead
incStrong/decStrong to mark temporary strong ownership without
colliding with other owners in flight.
Bug: 27097094
Change-Id: Iee647bfae8b80019b6d8290179eed3973230901f
-Only add animators to a RenderNode when its owning view is attached
-When changing animator's target RenderNode, remove the animator from
the old target RenderNode that it's currently running on, if any.
Bug: 27141983
Bug: 27145149
Change-Id: I9c9592382d64ecc0390f7ec743a59ce1ad7d9798
Neither of these files need SkScalerContext.h. Remove those includes.
One really needs SkGlyph.h, so include it instead.
Change-Id: Ic7cfce9e7784c9290c5a2dfdd8385b65d32f9b76
(1) Update both static and shared lib to export libhwui headers
(2) Work around problem in current make system where a static
libraries dependencies are not transitively included by moving
those dependencies into a file that can be included by targets
using libhwui_static.
(3) Do not expose protobuf headers to clients outside of HWUI
Change-Id: I08470c02a83ae64116081eff0c2050878990c6ed
Bug: 26980851
GL_RGBA16F was being incorrectly calculated
as 4 bpp instead of 16 in Texture's objectSize(),
leading to a mismatch in cache size tracking
in GradientCache
Change-Id: I533c52fcdf9910d7a7d14bbd80965b8cbef8e147
Bug: 27072626
Or at least fix this one and make it harder to leak
going forward. static_asserts are cool, use them liberally
Also makes allocation via LA (slightly) faster by fixing create*
variants to use rvalue references & std::forward, preventing
an accidental pass-by-value
Change-Id: I18fd696a93dd6ea49c8d8c587d4c8bee56dbfdf5
Bug: 27072626
Or at least fix this one and make it harder to leak
going forward. static_asserts are cool, use them liberally
Also makes allocation via LA (slightly) faster by fixing create*
variants to use rvalue references & std::forward, preventing
an accidental pass-by-value
Change-Id: I5e0e36e72c6dd93324194ebf9a95f8204f05f261
- Rename to FrameMetrics to avoid collision with existing
android.view.FrameStats class
- Make FrameMetricsObserver implementation detail,
exposing FrameMetricsListener interface as public API
and wrapping in FrameStatsObserver to maintain state
- Remove dropped frame count call, in favor of passing as
parameter to callback method.
- Move away from raw timestamp access in favor of Metric IDs
which represent higher-level, more stable stages in a frame
lifecycle and match the categories exposed in the onscreen
bars.
- Support many-to-many Window<->FrameMetricsListener relationship
Change-Id: I00e741d664d4c868b1b6d0131a23f8316bd8c5c2