| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Adds remaining missing overrides and nullptr usages, missed due to
an extreme failure in tool usage.
Change-Id: I56abd72975a3999ad13330003c348db40f59aebf
|
|
|
|
| |
Change-Id: I91ffb9c66697741116fdeaa31abdf6cfd79155df
|
|
|
|
|
|
| |
(cherry picked from commit 1272887050a269d6d506b42099c2857847ad100b)
Change-Id: Ib673768fe5fc03615626ef4b10590e5317f22172
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug: 17208461
* Switch Layer to be VirtualLightRefBase instead of
Caches' side-channel ref-counting
* Include active layers in gfxinfo dump
* Run gfxinfo dump on the correct thread
* Dump gfxinfo on Layer creation failure
Change-Id: I28d195699e2334518e215ab28c7a17355aee9678
|
|
|
|
|
|
|
|
| |
bug:17208461
Track layer's last known state.
Change-Id: Ic1799191f5839a1d6cc56f598f2ac2671dc27a6f
|
|
|
|
|
|
|
|
|
|
| |
bug:17208461
They are destroyed via finalizer-enqueued destroy method, so it's not
valid to check that they've been destroyed at gl context destruction
time.
Change-Id: I670f69825547facd5f31d44acb406418881fee00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug: 17208461
There's a potential race condition between HardwareRenderer.destroy()
being called (which calls destroyCanvasAndSurface()) and the renderer
being finalized (which is what calls freePrefetchedLayers), during which
time it's possible we get a TRIM_MEMORY_COMPLETE and destroy the EGL
context.
Fix this race condition by moving stopDrawing() and freePrefetchedLayers()
into destroyCanvasAndSurface() where they should have been in the first
place.
Also, if we hit the assertion failure, dump the current state of
Caches to try and provide more context for the failure.
Change-Id: Ife0ba3562041e8b08e87e3e13640472b3004eed6
|
|
|
|
|
|
|
| |
Bug: 15513308
Bug: 15449247
Change-Id: I13a29f9c8d4975cdda6dcb33b6332c2555ff0f7c
|
|
|
|
|
|
| |
Bug #9310706
Change-Id: I73eea6314c326f15a979617e3a05b525935f0d3f
|
|
|
|
|
|
|
|
|
|
| |
Bug #7146141
This new cache is used in a similar way to LayerCache. It helps
reuse already allocated stencil buffers and thus avoid churning
memory on every frame.
Change-Id: I19551d72da52c40039e65904563600e492c8b193
|
|
|
|
|
|
|
|
|
| |
Bug #7146141
This change moves the resizeLayer() from LayerCache (where it should
never have been anyway) to Layer. This makes a little more sense.
Change-Id: I8b2f9c19c558e738405a58b9e71ec5799fc6be88
|
|
|
|
|
|
|
|
| |
Fonts are now described by a transform matrix. This lead to switching
from a vector to a hashmap. This change therefore adds new comparators
and hash computations to Font.
Change-Id: I2daffa7d6287c18554c606b8bfa06640d28b4530
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Launcher occasionally crashes with a stack trace indicating that the memory
of a Layer object is corrupt. It is possible for us to delete a Layer
structure and then, briefly, use it to draw a DisplayList again before
that DisplayList gets recreated (without the layer that got deleted).
When this happens, if the memory got corrupted, it's possible to crash.
The fix is to add Layer to the other objects which we currently refcount
(bitmaps, shaders, etc.). Then instead of deleting a Layer, we decrement the
refcount. We increment when creating it, then increment it again when it's
referenced from a DisplayList. Then we decrement the refcount instead of
deleting it, and decrement when we clear a DisplayList that refers to it.
Then when the refcount reaches 0, we delete it.
Issue #6994632 Native crash in launcher when trying to launch all apps screen
Change-Id: I0627be8d49bb2f9ba8d158a84b764bb4e7df934c
|
|
|
|
|
|
|
|
|
|
| |
Bug #6258973
When flushing the layer caches we would attempt to delete the FBOs
associate with layers in the cache. The FBO property was however not
always properly cleared when recycling layers.
Change-Id: I7dedfe391d659a0849f1e1d84df17313b2c6e2b2
|
|
|
|
| |
Change-Id: Id922b2a166ea4573b767c27d3195e11c70320b23
|
|
|
|
| |
Change-Id: Ib0742c96f10f5f50e7e5148b742c31b6c232d127
|
|
|
|
| |
Change-Id: Id4bd14f72487bd7156cd2e1930eaf97b47896273
|
|
|
|
|
|
| |
Yay.
Change-Id: I04557ad575c307a55088549f48f0e9ad994b7275
|
|
|
|
| |
Change-Id: Ia4950dd5f0e0a224ecb69c581d33aa4f32260a7c
|
|
|
|
|
|
| |
Bug #5081795
Change-Id: Iee3382d362a71c1e6c5c498b319bf7f7bcf5a2f0
|
|
|
|
|
|
|
|
| |
This change sets textures filtering to GL_NEAREST by default. GL_LINEAR
filtering is only used when textures are transformed with a scale or
a rotation. This helps save a couple of fps on some GPUs.
Change-Id: I1efaa452c2c79905f00238e54d886a37203a2ac1
|
|
|
|
| |
Change-Id: Id5bee1bd4a322cf93e8000b08e18f1e1b058648e
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug #4343984
TextureView can be used to render media content (video, OpenGL,
RenderScript) inside a View.
The key difference with SurfaceView is that TextureView does
not create a new Surface. This gives the ability to seamlessly
transform, animate, fade, etc. a TextureView, which was hard
if not impossible to do with a SurfaceView.
A TextureView also interacts perfectly with ScrollView,
ListView, etc. It allows application to embed media content
in a much more flexible way than before.
For instance, to render the camera preview at 50% opacity,
all you need to do is the following:
mTextureView.setAlpha(0.5f);
Camera c = Camera.open();
c.setPreviewTexture(mTextureView.getSurfaceTexture());
c.startPreview();
TextureView uses a SurfaceTexture to get the job done. More
APIs are required to make it easy to create OpenGL contexts
for a TextureView. It can currently be done with a bit of
JNI code.
Change-Id: Iaa7953097ab5beb8437bcbbfa03b2df5b7f80cd7
|
|
|
|
|
|
|
|
|
|
|
| |
Bug #3413433
This change will be beneficial to Launcher to avoid hiccups when
swiping pages of icons. When a layer is discarded, it is kept
in the layers pool instead of being destroyed right away. This
favors memory reuse over allocations.
Change-Id: Ifb6944ba83d6ceb67c331527c0827b26ce648eb1
|
|
|
|
| |
Change-Id: Idbdd6b84f31301e58ed53e0d50fd61fece192dfa
|
|
|
|
|
|
|
|
|
| |
This API can be used to back a view and its children with either a
software layer (bitmap) or hardware layer (FBO). Layers have
various usages, including color filtering and performance
improvements during animations.
Change-Id: Ifc3bea847918042730fc5a8c2d4206dd6c9420a3
|
|
|
|
| |
Change-Id: Ia6e67699d98f69c8a93385b3ecbdd814c7b16921
|
|
|
|
| |
Change-Id: I5ff864a361db4791bd5ff6be716f7ce692ef572d
|
|
|
| |
This speeds up applications, especially Launcher.
|
|
|
|
|
|
|
|
| |
This change is a workaround for a driver bug that causes an INVALID_OPERATION
to be thrown on every glCopyTexSubImage() call. This change also adds a new
test for gradients local matrices.
Change-Id: I41b7437481026702d0a3a9677f099b4557c0a84e
|
|
|
|
| |
Change-Id: Id8cdcf587b13098460f7d4aa1bd17708784d89bb
|
|
|
|
|
|
|
| |
Add a glGetError() check on every frame
Don't attempt to create textures larger than the maximum size allowed
Change-Id: Iee4afae16089406dbe8bf10fc93b674f1271a0ca
|
|
|
|
| |
Change-Id: I5375126636913e0a84f2d6bbd0ebe40d2e4f2763
|
|
|
|
| |
Change-Id: Ieabaa25338d2f4b8d4fd90e7401ad6e7452eae11
|
|
|
|
|
|
|
| |
The renderer is still changing textures' wrap modes every time, this will require
a latter optimization.
Change-Id: I3eb92cb8c886c4a692b7f0ca759911f9371d4d2c
|
|
|
|
|
|
|
| |
This moves a bit of code away from OpenGLRenderer and matches
what happens with the TextureCache.
Change-Id: I3c67f54f83d7240770daa015861c0e75a1dd8c42
|
|
|
|
|
|
|
|
| |
This change removes the need for the SortedList and instead just
add a generated id to each FBO stored in the cache. This is an
artificial way to store several FBOs with the same dimensions.
Change-Id: I9638364e9bdc0f2391261937a0c86096f20505bf
|
|
|
|
|
|
|
|
|
| |
This change introduces a new generational cache called GenerationMultiCache
that can store several values with the same key. This can be used to use
multiple layers of the same size at the same time, without recreating them
over and over again.
Change-Id: I425466a20908b862c5f464a0f9e582ec18cbd7ac
|
|
The cache is used to draw layers so that a new
texture does not have to be recreated every time
a call to saveLayer() happens.
The FBO cache used a KeyedVector, which is a bad
idea. The cache should be able to store several
FBOs of the same size (this happens a lot during
scrolling with fading edges for instance.) This
will be changed in a future CL.
Change-Id: Ic316189e625f0dbcf0d273a71cc981a433d48726
|