9efa222b34139b3b3c239a3d2c25915fc9e44660 |
|
05-Dec-2012 |
Chris Craik <ccraik@google.com> |
Defer process mode upon draw Process mode functor execution can be expensive, and cause dropped frames if it runs between two expensive frames (when there isn't cpu time to spare). Avoid this by delaying the process mode by an additional 4 ms every time we hit a draw bug:7670326 Change-Id: I27f42458d4a815183a4b24c7748e05bc361fb943
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
bd17bd34311ba5af4b6ac9ddc4b8c71888f2e6f1 |
|
24-Oct-2012 |
Romain Guy <romainguy@google.com> |
Ensure we have a GL context before deleting View layers Bug #7391098 The existing code was doing a make current to guarantee we have a current context. This can however fail when the surface is destroyed which could lead to GL calls without an EGL context, and therefore potential leaks. This change fixes the issue by using a technique found in HardwareRenderer.destroyHardwareResources(). If the surface is not available then we use a special 1x1 pbuffer as a way to get a valid context. Change-Id: I716d3799bf90120d793d76e90a83956837ecd491
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
7c25aab491707f7324f9941b8cfa9bd2b4b97e76 |
|
19-Oct-2012 |
Romain Guy <romainguy@google.com> |
Defer layer rendering to avoid stalls Bug #7326824 When a layer is taken out of the cache and initialized it gets cleared to prepare it for future rendering. This triggers the following sequence of operations: glBindFramebuffer(layer.fbo) attach texture storage to FBO glClear() glBindFramebuffer(defaultFbo) The clear forces a resolve on tilers which stalls the CPU for a little while, thus producing jank during animations. This change moves the clear to the next frame when we know we will have to execute a resolve anyway. Change-Id: Ic1939c25df20ed65a4c48dc81ee549b2cd8b6ec3
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
8efca54693b1fa956eede0367fffe8bb0d3531f0 |
|
16-Oct-2012 |
Romain Guy <romainguy@google.com> |
Ensure we always request conformant OpenGL ES 2.0 contexts Change-Id: I6b9d6f2dace02ad28baef6811007302b8e552a54
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
dfab363807b3b44be4032e410f016e0a0d018426 |
|
03-Oct-2012 |
Romain Guy <romainguy@google.com> |
Fix rendering artifacts on tiled renderers Bug #7275145 This change fixes ViewRoot and adds extra debug information. It does not solve the problem entirely. Another CL will. Change-Id: I7e604ba38aad7f421769783dcbd998d6905ab2d9
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
6a2d17f71342f981c9df1dc5beff33e30eb3ae2b |
|
30-Sep-2012 |
Chet Haase <chet@google.com> |
Fix texture corruption When memory gets low on a device, activities flush everything they can. Hardware-accelerated activites, such as Launcher, flush GL resources and destroy the GL context. However, some resources were still hanging around, due to deferred destruction policies (we don't delete layers until the DisplayLists they are in are finalized, to ensure we don't deref deleted objects). This meant that we were referring to obsolete GL data in these objects. in particular, it meant that we might come around later, after a new GL context was created, and delete a texture object that was incorrect. We use the layer's "texture id" to refer to the texture underlying the layer. But if there's a new GL context, then this texture ID is no longer valid, and we may be deleting the texture that a different object (layer, icon, whatever) is referring to, because the driver may return that same ID under the new GL context. The fix is to more aggressively delete things that we know will not be used again when the GL context is destroyed. In particular, we delete all resources being used by all DisplayLists at GL context destruction time. Issue #7195815 Textures corruption on all devices, in many apps Change-Id: I52d2d208173690dbb794a83402d38f14ea4c6c22
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
bd43152bda835c5a9a619a5869344a6a3af11917 |
|
26-Sep-2012 |
Romain Guy <romainguy@google.com> |
Always set the EGL_BUFFER_PRESERVED EGL_SWAP_BEHAVIOR Bug #7221173 Change-Id: I231a47187792c93af9e3b9321fd1e25bc2f20117
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
ed1b6f4fc0af836624b2edc2830eb918bf04cf3c |
|
25-Sep-2012 |
Romain Guy <romainguy@google.com> |
Really Trigger the log when EGL_NO_CONTEXT is returned by eglCreateContext Bug #7216919 Change-Id: Ie4a855ee51a0a4fad69bae8f377189d0c653f543
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
c002936e4bd042db3024202b3e9696835a730cfa |
|
25-Sep-2012 |
Romain Guy <romainguy@google.com> |
Trigger the log when EGL_NO_CONTEXT is returned by eglCreateContext Bug #7216919 Change-Id: If2059227d55e8ddb2d2673ee36029c3c92dd9a3d
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
4c7dc4aa5c6c155d7756ad40befc931fc0719976 |
|
25-Sep-2012 |
Romain Guy <romainguy@google.com> |
Add extra error check when eglCreateContext fails Bug #7216919 Change-Id: I322cbe4579d7a4eb2a64d288175e145d0badc857
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
7c450aaa3caac2a05fcb20a177483d0e92378426 |
|
22-Sep-2012 |
Romain Guy <romainguy@google.com> |
Add support for a new developer setting: overdraw debugging Change-Id: I350ba4486577c3289f82c20938f7a35138778727
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
11cb642756093a4af901b1525375b1eb2b5c3e2b |
|
21-Sep-2012 |
Romain Guy <romainguy@google.com> |
Update layers in a single batch at the beginning of a frame Bug #7186819 Change-Id: Ice5926dfedfb3be3a3064e65008dafa2852407da
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
2b7028eabac80cec170572bc0e945a1d4224e595 |
|
20-Sep-2012 |
Romain Guy <romainguy@google.com> |
Add support for QCOM_tiled_rendering Bug #7186819 This optional OpenGL extension can be used by tiled renderers to optimize copies from main memory to tiles memory. Change-Id: Id4a5d64e61ad17f50e773e8104b9bf584bb65077
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
740ee65d460401c266a7108c9aa4c6e7fbe58489 |
|
18-Sep-2012 |
Romain Guy <romainguy@google.com> |
Add extra EGL error checking Change-Id: I7cacef41ed08118c5eecf674e3d8461473692968
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
4702a856973a553deb82f71b1d3b6c3db5dbf4ba |
|
18-Aug-2012 |
Dianne Hackborn <hackbod@google.com> |
More view hierarchy, fragment debugging. Add a View.toString() method. Rename all of the View private flags to have a PFLAG prefix to avoid going insane trying to figure out which constant goes with which flag. Activity.dump() now includes a summary of the activity's view hierarchy, using the View.toString() method. All exceptions thrown by FragmentManager now perform a dump of the owning activity state, where appropriate. Change-Id: I6482e397e10cb5a0612ab02ce6ed5131823437a6
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
4ff0cf4b83605bff630c4e6f1fabe4f72a3f93a1 |
|
06-Aug-2012 |
Romain Guy <romainguy@google.com> |
Add new debug tool to track hardware layers updates You can setprop debug.hwui.show_layers_updates true to flash hw layers in green when they update. This is also a setting in the Dev. section of the settings app. Change-Id: Ibe1d63a4f81567dc1d590c9b088d2e7505df8abf
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
786fc93d71b833ab6b02b0c7ea5e30f25cceeedf |
|
25-Jul-2012 |
Romain Guy <romainguy@google.com> |
Make HardwareRenderer able to target generic Surface objects Change-Id: I4b7199a1eb30e0df354ae12c4819adc69db5df40
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
77e67cf9055378d00bb57f458129462f33047039 |
|
20-Jun-2012 |
Romain Guy <romainguy@google.com> |
Add extra systrace tracing This change shows how much time is spent updating and executing framework display lists within a frame. This change also fixes a crash that happnes if you attempt to perform a dumpsys gfxinfo while the app is drawing (we are telling developers to use this new tool.) Change-Id: Ia4047a78a42b545ab77176ef4f371c300686548c
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
cb82b942c89bf69b6c03e2f4951f519c1be115dc |
|
13-Jun-2012 |
Chris Craik <ccraik@google.com> |
Fix attachFunctor path to ignore delay Don't defer functor invocation when calling attach functor directly. bug:6653638 Change-Id: Ifffc027df16612f380f39b82b7d0a4411d53b4ea
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
44b2fe3fc114ee5f7273c6b0fee2cc999bf244a2 |
|
07-Jun-2012 |
Chet Haase <chet@google.com> |
Track canvas clearing for swap buffers logic. A previous fix made it necessary for a frame to render something to GL in order to cause a call to eglSwapBuffers(). Besides the calls being tracked as part of issuing a DisplayList, there is also a potential call to clear the canvas (via glClear()) on non-opaque surfaces. This call is also good to track, since a surface that gets cleared without any other drawing operations is worth flipping to the screen (to erase old contents on that surface). This fix tracks the status of the pre-draw operations to find out whether glClear() was called and then sets the drawing status appropriately. Issue #6606422 QuickContact dismissal is janky again (Tracking) Change-Id: I5fcaccfdc9293dd46b83f2fc279730a5d2740ebf
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
932b7f6765968bd526c03512f3805fbc3924dc29 |
|
06-Jun-2012 |
Chris Craik <ccraik@google.com> |
Revert "Add more temporary logging for investigating detachFunctor" bug:6608646 This reverts commit 8857b2f76abad1e4ec742dfd85d0c997880be376 Change-Id: I1563b5974c52b84201ae448298f804eb0dcc235d
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
8857b2f76abad1e4ec742dfd85d0c997880be376 |
|
05-Jun-2012 |
Chris Craik <ccraik@google.com> |
Add more temporary logging for investigating detachFunctor bug:6596807 Change-Id: Ic9e34e323b12a887f2e8df0773a6155627b6a64f
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
561ff8a74e3d9ea15f58d9b6534da9ea5a63d84b |
|
01-Jun-2012 |
Chet Haase <chet@google.com> |
Merge "Skip eglSwapBuffers() call when we do not draw to GL" into jb-dev
|
486590963e2207d68eebd6944fec70d50d41116a |
|
01-Jun-2012 |
Chet Haase <chet@google.com> |
Skip eglSwapBuffers() call when we do not draw to GL The fix is to track when we issue GL drawing commands, and to skip the call to eglSwapBuffers() when a DisplayList does not result in any actual rendering calls to GL. Issue #6364143 QuickMuni list items and buttons flicker instead of fade Change-Id: I60a02c61a58c32d92481a1e814b4c8a49c6a37a3
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
41ee465734d0006797a8fd36e88976c1e85d161c |
|
01-Jun-2012 |
Chris Craik <ccraik@google.com> |
Force webview invalidates on unsuccessful functor attach Functor attach should always be successful, but adding a fallback just in case. Also invalidates the WebView on initial content arriving. bug:6511995 Change-Id: Ibca16505afec9f693ea4a7cc4966cd6d7353725c
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
13b907353f18215b52b5ceda24bbf520d91d72a1 |
|
21-May-2012 |
Romain Guy <romainguy@google.com> |
Remove unused, obsolete debug code All these features have either been abandonned and left un-maintained for years or can be replaced by systrace. Change-Id: I42e4579a8078744047e5fe08a7a15254970b09bc
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
a21f877434dd25a93869b8641e3c38618bf317a9 |
|
07-May-2012 |
Romain Guy <romainguy@google.com> |
Log more frame data when profiling GL apps Change-Id: Ib7377c22a2258aa6510677d80df34bb7e73dc714
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
4b8c4f886b3d57e6ffe1a4650487c67334674a40 |
|
28-Apr-2012 |
Romain Guy <romainguy@google.com> |
New constant used by dev settings Change-Id: I42f103ae8a9b9f051367c72131f0b216e200f6e0
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
ba6be8a62dcdb3ffd210cd36b9af4e3a658eac47 |
|
24-Apr-2012 |
Romain Guy <romainguy@google.com> |
Prevent WebView from crashing when detached from the window Bug #6365056 WebView enqueues a functor in the hardware renderer to handle animations and this functor is called at a later time by the hardware renderer. However, the functor was not removed from the queue when WebView was removed from the window. This could cause the hardware renderer to attempt to execute an invalid functor and lead to a crash. Change-Id: I9d38e80f3fdc5e29d4d0cdfa1e893c251a954508
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
19f86e831ee0629b24385b0bb51d27ff91961dd2 |
|
24-Apr-2012 |
Romain Guy <romainguy@google.com> |
Invoke onTrimMemory with an EGL context Bug #6369600 Change-Id: I3ded47c3688ef2f2873495392c35e898357204da
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
1271e2cc80b01d577e9db339459ef0222bb9320d |
|
20-Apr-2012 |
Chet Haase <chet@google.com> |
Remove USE_DISPLAY_LIST_PROPERTIES flag This flag was still hanging around pending any need to disable DisplayList properties. But things seem stable, so it's time to clean up and simplify the code. At the same time, I reduced redundance in DisplayList dimensions. We used to call drawDisplayList() with width/height parameters that were used to do a clip reject. This is redundant with the DisplayList properties that set the bounds of the DisplayList; the left/right and top/bottom properties represent the same width/height properties formerly used in drawDisplayList(). The new approach is to not pass dimensions to drawDisplayList(), but to instead pull those dimensions directly from the DisplayList when needed. Change-Id: I8871beff03b1d4be95f7c6e079c31a71d31e0c56
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
1ac4765e959c79101f64b1279887ed469334c268 |
|
12-Apr-2012 |
Romain Guy <romainguy@google.com> |
Fix SurfaceTexture leak in TextureView Bug #6318631 Change-Id: I282a7c9bb648365ba61c52a84ff510c8779130ef
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
3da2dc9d4cc4785d2a0eacaf8d00222a46df150b |
|
10-Apr-2012 |
Jesse Hall <jessehall@google.com> |
Merge "Release the scratch pbuffer surface after use"
|
3d4d2159bc84f03ea4be12af8c7de9500985bb82 |
|
06-Apr-2012 |
Chris Craik <ccraik@google.com> |
Merge "fix functor flag parsing, tweak process delay"
|
0872b370422eb1f9007b4717b8796543873e6390 |
|
02-Apr-2012 |
Jesse Hall <jessehall@google.com> |
Release the scratch pbuffer surface after use Change-Id: Icf010969d19b20c3ddf64b44a78a115ac92f7ea5
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
65924a3e56c2e7ac863f8e25e9f9a58b9db7d513 |
|
06-Apr-2012 |
Chris Craik <ccraik@google.com> |
fix functor flag parsing, tweak process delay Change-Id: I0a679cc33f92ff6fd2e33db9ad58b52622def012
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
2af3524beb75150d347accc925022daa53b4a789 |
|
05-Apr-2012 |
Jamie Gennis <jgennis@google.com> |
TextureView: add setSurfaceTexture method This change adds support for transferring control of a TextureView's SurfaceTexture between the UI framework and the application. It makes the TextureView detach the SurfaceTexture from the UI framework's GLES context before calling the surfaceTextureDestroyed callback, allowing the app to use the SurfaceTexture in its own GLES context if it so chooses. This change also adds the TextureView#setSurfaceTexture method, allowing an app have the TextureView use a SurfaceTexture that already exists rather than creating a new one. Change-Id: Iac9cc917687e4239dd1c24eae553709aa37512da
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
09280606dc5dc1b8f12f9317cf6922772b7d10a7 |
|
04-Apr-2012 |
Chet Haase <chet@google.com> |
Enhanced frame profiling from gfxinfo You can now set the max number of frames being tracked by the gfxinfo profiling data by doing 'adb shell setprop hwui.profil.maxframes #'. Also, running gfxinfo automatically resets the data so that any set of frame data always starts from the beginning. Change-Id: I87ae3fb4d580741a1b2fba75be4ec540de7c52a4
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
db8c9a6a4d9bf8c39f834b25611926caf21380f6 |
|
22-Mar-2012 |
Chet Haase <chet@google.com> |
Optimization of alpha with DisplayList properties Some views (such as ImageView and TextView) handle non-opaque alpha values directly. This was originally an optimization, but we can handle it faster in many cases without this optimization when DisplayList properties are enabled. Basically, if a view has non-overlapping rendering, we set the alpha value directly on the renderer (the equivalent of setting it on the Paint object) and draw each primitive with that alpha value. Doing it this way avoids re-creating DisplayLists while getting the same speedup that onSetAlpha() used to get pre-DisplayList properties. Change-Id: I0f7827f075d3b35093a882d4adbb300a1063c288
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
8f3b8e32993d190a26c70c839a63d8ce4c3b16d9 |
|
28-Mar-2012 |
Romain Guy <romainguy@google.com> |
Allow fine-grained control over functors execution Adds non-drawing execution mode Change-Id: I82f92cf1b9a3b9ff2ca6d7427c4e02b73e04e6bf
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
e6c966caa3aff3099e6fb00caefa10387f57b9c3 |
|
02-Apr-2012 |
Michael Jurka <mikejurka@google.com> |
Merge "Add frame counter to dumpGfxInfo"
|
7687882800f49e3fc3a14f1d7540412f77d6bd4d |
|
30-Mar-2012 |
Romain Guy <romainguy@google.com> |
Detect surface resizes HardwareRenderer normally relies on the window manager to be notified of surface dimension changes. It is however possible to execute a drawing pass before receiving the window manager notification. We must therefore compare the actual size of the target surface to the window size and perform a full redraw when they are not the same. Change-Id: Idccc8592f3f777edee1ef67a98a4c2a825dcfba7
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
a3fabff98590d26f0c362cb09dc378fece66215c |
|
28-Mar-2012 |
Michael Jurka <mikejurka@google.com> |
Add frame counter to dumpGfxInfo Change-Id: I016f706e32cbdbce014795d8fc537b15c389dc7a
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
244ada1d35419b7be9de0fc833bb03955b725ffa |
|
29-Mar-2012 |
Romain Guy <romainguy@google.com> |
Refactor GLES20Canvas/HardwareRenderer JNI layers GLES20Canvas defined several JNI functions used only by HardwareRenderer. Now that we have a JNI layer dedicated to HardwareRenderer we should host the renderer related methods there. Change-Id: I0bcb4ad0bcc1c4a37290df10c1685f2cfe5504ca
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
6554943a1dd6854c0f4976900956e556767b49e1 |
|
27-Mar-2012 |
Romain Guy <romainguy@google.com> |
Use a status_t return type for GL functors WebView needs more fine-grained control over the behavior of the framework upon execution of the display lists. The new status_t allows WebView to requests its functor to be re-executed directly without causing a redraw of the entire hierarchy. Change-Id: I97a8141dc5c6eeb6805b6024cc1e76fce07d24cc
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
a998dff5d49a423aaf7097aa8f96bf5bdc681d25 |
|
24-Mar-2012 |
Romain Guy <romainguy@google.com> |
Destroy the hardware renderer when ViewRootImpl's die is post-poned Bug #6109035 ViewRootImpl.die() can be invoked in such a way that doDie() will be executed later. On memory limited device, an eglTerminate() may happen before doDie() is executed which leads to unstable behaviors. This change makes sure the renderer is destroyed as soon as possible. Change-Id: I3322410cdd744b464951e2055aeade6069d1d673
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
5d6999e1ca457948e06792ea6259ffa947c9fa81 |
|
23-Mar-2012 |
Romain Guy <romainguy@google.com> |
Don't make GLRenderer aware of GLES20Renderer Change-Id: Ic9bab34070a3046b9252f6fd576b4d40553374fc
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
e979e62ac7313b7cffe9b131bb8a99c356068b45 |
|
20-Mar-2012 |
Romain Guy <romainguy@google.com> |
Code cleanup Change-Id: I390e92b4a778bd9dcde6535178c1a6b204b29fe4
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
9d1992deaeb3d60d5928f05b649a2cc654ba98a3 |
|
13-Mar-2012 |
Chet Haase <chet@google.com> |
Optimizing DisplayList properties DisplayList properties are still disabled default (flags in View.java and DisplayListRenderer.h). When they are enabled, and when a View has a DisplayList, invalidations due to property changes are now optimized to avoid causing DisplayList recreation. This eliminates the drawing step of invalidation (due to changes in these properties), only requiring issuing the previously-created DisplayList to the GL renderer. Invalidation is slightly faster (less overhead as we walk up the hierarchy), getDisplayList() is potentially much faster (going down to ~0ms), depending on the complexity of the View being redrawn and the size of the invalidated hierarchy. Change-Id: I57587d5b810c3595bdd72a6c52349c2a3d1bdf25
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
27ff913d56de8400083a13fc572e2812b32c890c |
|
06-Mar-2012 |
Dianne Hackborn <hackbod@google.com> |
Work on more low memory reporting to apps. There are now some new trim memory levels that are sent to non-background applications as RAM becomes low. There is a new API for an application to retrieve information about memory trimming and such on demand. Fixed various checks against the memory trim level to be robust (not compare against exact values). Change-Id: Ifd1c6151124350168aef20a94e517166fd2e03eb
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
cfef12374c15b11b3c2a1041582be9728152e15d |
|
23-Feb-2012 |
Romain Guy <romainguy@google.com> |
Perform early intersect to avoid unnecessary draws Change-Id: I48d61c4488e622f93733d8e53a50c93e6a20166d
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
b7ee8e2cb427820f7ac0e7e91b40705601516e9b |
|
23-Feb-2012 |
Michael Jurka <mikejurka@google.com> |
am 6ad5d69d: am 0a232673: am bf378fd7: Don\'t allow screen invalidations to go outside bounds of screen * commit '6ad5d69da5cff2e4b5fb7acdb2699e2315b83307': Don't allow screen invalidations to go outside bounds of screen
|
bf378fd7d7a91085685fe9e5528b84c485041c77 |
|
23-Feb-2012 |
Michael Jurka <mikejurka@google.com> |
Don't allow screen invalidations to go outside bounds of screen Fixes invalidation issue in Launcher Change-Id: Iab32149489aed6884e917f0ac5a548d4ae26896e
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
33f6beb10f98e8ba96250e284876d607055d278d |
|
17-Feb-2012 |
Romain Guy <romainguy@google.com> |
Record possible clip rejects when recording display lists This optimization allows us to quickly skip operations that lie entirely outside of the known bounds of a display list. Because of ViewGroup.setClipChildren, we must keep the operations recorded in the display list. setClipChildren(false) is however a very uncommon operation and we will therefore often benefit from this new optimization. Change-Id: I0942c864e55298e6dccd9977d15adefbce3ba3ad
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
b04f7e9438e8f73081f9be3fda166098042263a5 |
|
15-Feb-2012 |
Romain Guy <romainguy@google.com> |
Make it easier to enable dirty regions debugging adb shell setprop hwui.debug_dirty_regions true Change-Id: Ifd269c443f5257b1e9c4ea987b134dcf6231106c
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
a676ad7e34c9afbaafaeca8c3fe96e95c518828e |
|
14-Feb-2012 |
Romain Guy <romainguy@google.com> |
New debugging tool in adb shell dumpsys gfxinfo This tool lets you visualize the time it took, in ms, to: - Build display lists ("Draw" phase) - Process display lists ("Process" phase) - Swap GL buffers ("Execute" phase) To use this tool: - adb shell setprop hwui.profile true - adb shell dumpsys gfxinfo <process name> - Copy the profile data and paste it in a spreadsheet - Generate a graph (stacked graph) and enjoy Change-Id: I7840c0ea0f153550425aa798e3ada2f357688cf5
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
13631f3da855f200a151e7837ed9f6b079622b58 |
|
31-Jan-2012 |
Romain Guy <romainguy@google.com> |
Add debug markers to OpenGLRenderer These markers will be used to group the GL commands by View in the OpenGL ES debugging tool. This will help correlate individual GL calls to higher level components like Views. Change-Id: I73607ba2e7224a80ac32527968261ee008f049c6
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
530041d3191ce817832a0108514617768e43cda6 |
|
26-Jan-2012 |
Romain Guy <romainguy@google.com> |
Add stencil buffer to the EGL config Change-Id: If76c0cd6127534d90f9526b75c0f8e56259c6722
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
b335fad4705348ff78d764fb4be53dcbe6b67abe |
|
16-Jan-2012 |
Jamie Gennis <jgennis@google.com> |
hack up frame latency measurement Change-Id: I6d9a466a23285304f0e229a5649815636ab5d6af
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
893eace60992a640064b454d7ad477c1bbffcb1d |
|
13-Jan-2012 |
Gilles Debunne <debunne@google.com> |
Merge "Sub display list in TextView"
|
44d79747b5e434e8f43928b5548442c65e40e5c3 |
|
13-Jan-2012 |
Romain Guy <romainguy@google.com> |
Remove unused parameter Change-Id: I0896b2cdb9f1fa9c5e191e4ea425e22ac6f10f29
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
b35ab7b72967adcfd01cec483a705dafe8b951d1 |
|
06-Dec-2011 |
Gilles Debunne <debunne@google.com> |
Sub display list in TextView TextView uses a sub-display list to 'cache' the rendering of its text. This saves time when drawing an editable text, where the blinking cursor forces a re-draw twice per second, which creates pauses during scrolling. Added a sub-display list invalidation when an appearance span is modified/added/removed. Also added an invalidation of the display list when selection range is changed. Change-Id: I41e8068a12902b8a745c5bb77de8c77def76a270
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
9477c6e6581ce97976250951f33e1297604ac777 |
|
09-Dec-2011 |
Romain Guy <romainguy@google.com> |
Enable dirty regions on newly created EGL surfaces This change fixes an issue on some tiler architectures that do not enable the swap buffer behavior by default on EGL surfaces. Change-Id: Ibda1ae582da1a20afad3be9c3361080e72df5206
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
95db2b20d7bc0aaf00b1d4418124f5cf0a755d74 |
|
01-Dec-2011 |
Jeff Brown <jeffbrown@google.com> |
Improve latency instrumentation. Change-Id: I4edfa0a5659d207f7e46722e48ffa1dc43d2aa13
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
08837c246c9c27902c59b41c8661c2f27a4aa2bc |
|
28-Nov-2011 |
Chet Haase <chet@google.com> |
Fix flashing wifi dialog after rotating back from landscape. There was an error in some of the OpenGL layer logic such that we would occasionally set up a layer for rendering and then not clean up when it was done. This caused future OpenGL rendering to go into that layer instead of to the buffers being displayed on the screen, resulting in artifacts including flashes and displaying of stale content. This happened specifically when using the wifi settings dialog with the InputMethod keyboard displayed, but it was probably visible in other situations as well. Issue #5628248: Flickering/flashing after entering password for WiFi Change-Id: I38139f620b310f4309570fa7224552d2ee633999
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
31f2c2e94656530fbf6282803e62edb47e9a894d |
|
21-Nov-2011 |
Romain Guy <romainguy@google.com> |
Notify views when EGL resources are about to be destroyed Bug #5639899 Change-Id: I7c5d8bebf02294426f5b3ab1358a31c38a4fd064
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
717a25dc2a411edb548859cd6870363346c71b01 |
|
16-Nov-2011 |
Dianne Hackborn <hackbod@google.com> |
Add new ManagedEGLContext class to help apps participate in memory trimming. This class provides an API for an application to know when it is time to destroy its EGL context when memory is being trimmed. By having this in the framework, we can still detect whether it will be useful to destroy any EGL contexts (because we know if doing so will destroy all of them). Change-Id: I1eac8d640052778052926b875c7928008f752182
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
50a66f0e9c5a85a6af4a99eb66656a69eba24572 |
|
11-Nov-2011 |
Romain Guy <romainguy@google.com> |
Merge "Terminate EGL when an app goes in the background" into ics-mr1
|
8ff6b9ebeeb24a6161ec6098e6bfdf8790ee5695 |
|
10-Nov-2011 |
Romain Guy <romainguy@google.com> |
Terminate EGL when an app goes in the background This does not happen on high end gfx devices. This happens only if only one EGL context is initialized in the current process. Change-Id: Ibd1737efdf84eef8a84108b05795440d1ae9964e
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
a95826582773a194ed7fb66bc29c9b82fe9bb8d1 |
|
10-Nov-2011 |
Romain Guy <romainguy@google.com> |
Initialize egl_cache with an app writeable file Change-Id: I5dda234feab0fedd6e4179a80715ae20dee1c833
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
40e0383dce630ed9b2b1aa0e497709b89dfab6ef |
|
06-Oct-2011 |
Chet Haase <chet@google.com> |
Fix issue #5384631: hw windows not resizing correctly When the SystemUi becomes visible, the activity window resizes. The hardware renderer was not begin resized to suit, so it was drawing to a surface larger than that of the activity window, and some of the rendering (like the action bar) appeared off the screen. The fix is to keep track of the surface size in HardwareRenderer and to recreate the surface when the size changes. This change also removes the BUFFER_CHANGE flag from WindowManager.LayoutParams. The only reason the flag existed was to trigger a hardware surface recreation, but checking the old/new size is a more direct way of handling this. Change-Id: I9d6bf6385794886d1d93c60609c170864cdcdfab
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
5d927c2d8e832fcfcb0154c8741f896001141ef4 |
|
02-Sep-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5150899: Call activity takes 15MB we never get back. Persistent process can no longer use hardware acclerated drawing when running on a low-memory device. Change-Id: I3110335617af1c98fcede9bf41f4a1d0c20d0e87
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
16260e73f6c1c9dc94acf0d328a3c564426b8711 |
|
01-Sep-2011 |
Romain Guy <romainguy@google.com> |
Dispatch onDetachedFromWindow before destroying everything Bug #5245686 Change-Id: I637178ee0bb47fbec9b59198b388bb8de22c1786
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
eca9b1f53c2c291cbfb89b5f3cc45db7bdca6c7d |
|
26-Aug-2011 |
Romain Guy <romainguy@google.com> |
Prevent crash in VPN settings Bug #5217245 Change-Id: Ibacf4cbd40537cd417f1518b5ac4367a3f3d7d03
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
407ec78b828173257b0c5dae221649a4ccd8b058 |
|
25-Aug-2011 |
Romain Guy <romainguy@google.com> |
Add OpenGL backend to ImageWallpaper Bug #5204874 Currently disabled. Change-Id: I5e7b35dce2981b0691f107e39c6394b260466543
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
86e3e22ba81fb75a5c7e5e007ca1c0cacfda3afb |
|
16-Aug-2011 |
Romain Guy <romainguy@google.com> |
Prevent NPE in HardwareRenderer Bug #5169815 Change-Id: I168b61f3a6cea679e455cf28282b69bb7f3072e5
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
50d133e290468fd149b5c03e46549afca2ee05f8 |
|
13-Aug-2011 |
Romain Guy <romainguy@google.com> |
<blink/> is not an acceptable default behavior. Bug #5156334 Change-Id: I9f803b090e81f4e490d0cccd6347a0f9f64bd20f
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
1d0c708961f824ac5171238c205a7bf328d5d8a5 |
|
04-Aug-2011 |
Romain Guy <romainguy@google.com> |
Destroy the EGL surface when the ViewRootImpl surface is invalid Bug #5109839 Change-Id: Icebde9abf43b852397a73ffef519004993b46901
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
d3facf341bf106588aade72c0164532cd4bf941f |
|
03-Aug-2011 |
Romain Guy <romainguy@google.com> |
Don't recreate the EGL surface if the surface is not ready Bug #5114545 Change-Id: I95149dc18e0582ca358716a6b0d89a4edc8fca26
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
cf15efba0792b052dca5baa350d9fb00e6a60667 |
|
02-Aug-2011 |
Romain Guy <romainguy@google.com> |
Properly cancel pending buffers on window size change Change-Id: Id6108ce61a971673f3ebc8270e9dd00849c91ae5
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
357c942462e4eb1d0b2e91b3fe8ec9ac7524bbed |
|
02-Aug-2011 |
Romain Guy <romainguy@google.com> |
Prevent crash with NPE in HardwareRenderer Bug #5109839 Change-Id: I402fc70ff4b25d273cf3150759d6f2d4d971975d
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
1a7b1158c5c2566808c39638d54cae624bd2a361 |
|
30-Jul-2011 |
Romain Guy <romainguy@android.com> |
Trim HardwareRenderer memory more frequently. Change-Id: I92e72ce5da324f9ffcfdf7a54d8b368c2531799c
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
c68c913d357e2955d4bd7ca52829071e531c7825 |
|
29-Jul-2011 |
Dianne Hackborn <hackbod@google.com> |
Various work on out of memory managment. - Improve how we handle processes that have shown UI, to take care of more cases where we want to push them into the background LRU list. - New trim memory level for when an application that has done UI is no longer visible to the user. - Add APIs to get new trim memory callback. - Add a host of new bind flags to tweak how the system will adjust the OOM level of the target process. Change-Id: I23ba354112f411a9f8773a67426b4dff85fa2439
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
65b345fa22b878e141b8fd8ece9c208df00fa40f |
|
28-Jul-2011 |
Romain Guy <romainguy@google.com> |
Reclaim more memory, more often. Yay. Change-Id: I04557ad575c307a55088549f48f0e9ad994b7275
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
6d7475d666baefaa3ba9f0dcee25238739454241 |
|
28-Jul-2011 |
Romain Guy <romainguy@google.com> |
Destroy layers and flush layers cache when a window is destroyed. Change-Id: I3fa1bc3ff50fb99e3d2e490925bd6b0a0f809fff
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
912a7b32d0c59ba38265c5dd6ff84ce93f909a7f |
|
27-Jul-2011 |
Romain Guy <romainguy@google.com> |
Make sure we have a current EGL context when invoking EGL Bug #5081795 Change-Id: Iee3382d362a71c1e6c5c498b319bf7f7bcf5a2f0
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
29d23ecfd8612ecd4a7b2140acd344934b73a558 |
|
25-Jul-2011 |
Romain Guy <romainguy@google.com> |
Add debug flag to print out the EGL configuration used by libhwui Change-Id: I8be5aebb60b7441342d430131168d11dc551ec34
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
484c719c1c4a86d10d7be821782a808d0e12ea4e |
|
25-Jul-2011 |
Romain Guy <romainguy@google.com> |
Add ELG config debugging to HardwareRenderer Change-Id: I1954111e999ea95982c273eb50b9ea82397bc823
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
162a0217563f4665da6eb183dfce0fef740f641f |
|
22-Jul-2011 |
Jeff Brown <jeffbrown@google.com> |
Decouple GLES20RecordingCanvas lifetime from GLES20DisplayList. Bug: 5062011 Previously, each GLES20DisplayList would hold onto an instance of GLES20RecordingCanvas. In turn, each GLES20RecordingCanvas held onto an SkWriter with a 16Kb buffer along with several other objects. With one display list per view and hundreds of views, the overhead could add up to a few megabytes. Ensured that the GLES20RecordingCanvas is reset as soon as the display list has been constructed, thereby promptly freeing the 16Kb buffer. Changed GLES20DisplayList so that it acquires a GLES20RecordingCanvas from a pool as needed and recycles it when done. Removed some dead code and cruft related to the construction of GLES20Canvas objects in general. Some code was written with the assumption that the underlying renderer object could change behind the scenes or might be lazily constructed, but that isn't actually the case so we can simplify things. Removed an unnecessary weak reference from GLES20DisplayList to the View. It isn't actually used anywhere. Fixed a bug in GLES20DisplayList where isValid() would return true while the display list was being recorded. This is incorrect because the native display list might not actually exist. Worse, even if the native display list does exist, it is stale and potentially refers to old Bitmaps that have been GC'd (because the mBitmaps list was cleared when recording started). Change-Id: Ib12d5483688cb253478edeb0156d34c476c2566b
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
566b3efb25299d2a9c8ae827522802bad965426a |
|
19-Jul-2011 |
Romain Guy <romainguy@google.com> |
Let HardwareRenderer support multiple threads. This change will be useful to create multiples instances of HardwareRenderer outside of ViewRootImpl. This will allow the use of hardware accelerated canvas on TextureView or for live wallpapers. Change-Id: I877e43a31ba83d98a1a30556813c7e8a8a920eb5
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
bdf7609867a3f886455c51dba91623a86cceb6e2 |
|
19-Jul-2011 |
Romain Guy <romainguy@google.com> |
Trim OpenGLRenderer's memory usage whenever possible Change-Id: I9225077184f374b1a43300add15cc1d5b6869d1c
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
08645eb0f4a8d73b2b2f26d3232f45cf459a27bc |
|
13-Jul-2011 |
Romain Guy <romainguy@google.com> |
Revert "Don't preload HardwareRenderer, its static initialization is process dependant." This reverts commit 821e24336b3ab1f902fc3ee8da423226f50b540c.
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
821e24336b3ab1f902fc3ee8da423226f50b540c |
|
13-Jul-2011 |
Romain Guy <romainguy@google.com> |
Don't preload HardwareRenderer, its static initialization is process dependant. Change-Id: I229357aaaa10b19209983c122f98dd3c07e01d7f
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
039857520b1a03a52051b966d87d587225bdfcc3 |
|
12-Jul-2011 |
Romain Guy <romainguy@google.com> |
Always make GL calls with a valid EGL context. Bug #5010760 Change-Id: If7500ef69683948e727df1406f458f18b11259d1
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
7e1160e8664a9c5c79367f4ba3c2266a39bbcef5 |
|
09-Jul-2011 |
Romain Guy <romainguy@google.com> |
Always redraw the UI on orientation change Bug #4994715 In some cases, on some architectures, the hardware renderer could fail to properly render a window after an orientation change. The fix is to force the GL driver to drop any existing buffer to make sure the next buffer used to draw has the correct geometry. This change also fixes an issue that was preventing partial screen updates from being properly enabled. Change-Id: I874a48590845a8624425130af7db8e20022895dd
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
9ace8f5e79e76893fe4ca9e4d10f6c4056330485 |
|
08-Jul-2011 |
Romain Guy <romainguy@google.com> |
Use NEAREST filtering for layers whenever possible. Change-Id: Id5bee1bd4a322cf93e8000b08e18f1e1b058648e
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
02ccac69fd1c0a03c24c5f3ace0ad4bed337b1fd |
|
24-Jun-2011 |
Romain Guy <romainguy@google.com> |
Code cleanup Change-Id: I64c346004e0adf9a776d0315534d4fe445f0c0ca
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
a9489274d67b540804aafb587a226f7c2ae4464d |
|
23-Jun-2011 |
Romain Guy <romainguy@google.com> |
Add the ability to specify the opacity of a TextureView TextureView assumes its content is opaque by default. Change-Id: Iba873423566a5b67c388081838bd910dceba32ba
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
e5e0c50f7dfaccc220725c5595080e921ffda1e4 |
|
16-Jun-2011 |
Romain Guy <romainguy@android.com> |
Properly refcount SurfaceTexture in the JNI layer. Change-Id: I4b4c8020c13b8d6ce0d302fe42410033bf5785a6
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
77a811610f99e21da7f88dafef60d09f345d0506 |
|
15-Jun-2011 |
Romain Guy <romainguy@google.com> |
Add TextureView.getBitmap() This API can be used to get a Bitmap copy of the content of a TextureView. Change-Id: I07522216c353720fba5cab333174f58f484eb911
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
6f7d9394ec69e9fb38ca5fc2caf6d2aef6f7442d |
|
02-Jun-2011 |
Romain Guy <romainguy@google.com> |
Take advantage of EGL_BUFFER_PRESERVED on IMG. The IMG architecture does not support the EGL_SWAP_BEHAVIOR_PRESERVED_BIT in EGL configurations. This bit is used only to be able to change the EGL_SWAP_BEHAVIOR, which matters when the default behavior is not the one we want. However on IMG, the default swap behavior is the one we desire. Change-Id: Iff5980c97df9e41bc837e424baf83b8eadbb7161
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
7d70fbf0b5672bada8b25f065bc292796c3d4812 |
|
25-May-2011 |
Romain Guy <romainguy@google.com> |
Use OpenGL to render transition bitmaps. When the IME is opened/dismissed, ViewAncestor would draw the view hierarchy into a Bitmap, using the software rendering pipeline. With this change, ViewAncestor will now use OpenGL. Change-Id: I69e24570e12ff55f6f3cec18a664b33410a0eaf4
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
c6cc0f8c19d9eccf408a443fa2bf668af261dcd0 |
|
12-Apr-2011 |
Joe Onorato <joeo@google.com> |
Rename ViewRoot to ViewAncestor. ViewRoot is about to be a new public class for poking at ViewAncestor. Change-Id: Ie95d707c6d8bbb48f78d093d7b2667851812a7d5
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
df0a7fbdcff3c683641b7980da50a7d0eebe0876 |
|
03-May-2011 |
Romain Guy <romainguy@google.com> |
Merge "Allows to render with an OpenGL context inside a TextureView."
|
8f0095cd33558e9cc8a440047908e53b68906f5f |
|
03-May-2011 |
Romain Guy <romainguy@google.com> |
Allows to render with an OpenGL context inside a TextureView. Change-Id: I59453f7fc3997f0502a1c5d325d37fed376fabc7
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
e91a9c7ab075c43e983fdeb9af80447caa501337 |
|
02-May-2011 |
Romain Guy <romainguy@google.com> |
Remove unnecessary code. Change-Id: I0352bf861192df51fe78873d439e8d7ff887118e
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
aa6c24c21c727a196451332448d4e3b11a80be69 |
|
29-Apr-2011 |
Romain Guy <romainguy@google.com> |
New widget: TextureView 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
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
4e91a180be46c0c7c3bf398d4df4cbe2404216b5 |
|
07-Apr-2011 |
Jeff Brown <jeffbrown@google.com> |
Coalesce input events that arrive faster than 333Hz. Some drivers report individual finger updates one at a time instead of all at once. When 10 fingers are down, this can cause the framework to have to handle 10 times as many events each with 10 times as much data. Applications like PointerLocation would get significantly bogged down by all of the redundant samples. This change coalesces samples that are closely spaced in time, before they are dispatched, as part of the motion event batching protocol. Increased the size of the InputChannel shared memory buffer so that applications can catch up faster if they accumulate a backlog of samples. Added logging code to help measure input dispatch and drawing latency issues in the view hierarchy. See ViewDebug.DEBUG_LATENCY. Change-Id: Ia5898f781f19901d2225c529a910c32bdf4f504f
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
aaceeb0c5be11121a81e44b9633c06fc5c0fcd4d |
|
24-Mar-2011 |
Romain Guy <romainguy@google.com> |
Use the correct API to query system properties. Change-Id: Ie120dee0e24959d4db3fdb0100b6d8fe7fe46cdb
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
7b5b6abf852c039983eded25ebe43a70fef5a4ab |
|
15-Mar-2011 |
Romain Guy <romainguy@google.com> |
Fix rendering artifact in edge fades. Bug #4092053 The problem always existed but was made visible by partial invalidation. When saving a layer, the renderer would try to postpone glClear() operations until the next drawing command. This however does not work since the clip might have changed. The fix is rather simple and simply gets rid of this "optimization" (that turned out to be usless anyway given how View issues saveLayer() calls.) This change also fixes an issue with gradients (color stops where not properly computed when using a null stops array) and optimizes display lists rendering (quickly rejects larger portions of the tree to avoid executing unnecessary code.) Change-Id: I0f5b5f6e1220d41a09cc2fa84c212b0b4afd9c46
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
e294d41593f13edc5598cf62f8a89e573b3eb653 |
|
09-Mar-2011 |
Romain Guy <romainguy@google.com> |
Prevents NPE when a View was detached Bug #4068284 Change-Id: Ied1c9b8d32a3e9957c6b165642ba40bbdaf35d53
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
cabfcc1364eb7e4de0b15b3574fba45027b45cfc |
|
08-Mar-2011 |
Romain Guy <romainguy@google.com> |
Add support for partial invalidates in WebView Bug #3461349 This change also fixes two bugs that prevented partial invalidates from working with other views. Both bugs were in our EGL implementation: they were preventing the caller from comparing the current context/surface with another context/surface. This was causing HardwareRenderer to always redraw the entire screen. Change-Id: I33e096b304d4a0b7e6c8f92930f71d2ece9bebf5
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
648251710162cdaf7371012a1cbb79b9bc5bc0e4 |
|
03-Mar-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #3485923: Gmail crash Allow application to try to recover if a surface OOM error happens on the client side. Change-Id: I0308bd99647a35e4bcac448340b7fc6330a828f6
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
069ea0e31a0aa283c83fae79f31a1798a6d85dde |
|
08-Feb-2011 |
Romain Guy <romainguy@google.com> |
Better handling of EGL_SWAP_BEHAVIOR_PRESERVED_BIT Bug #3410832 Bug #3410834 Change-Id: I6025d6b7200e4d23e43f783e9401df13a13e7b63
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
62687ec12cb8e0b1d4044a235b1387b9a8c3b4b4 |
|
03-Feb-2011 |
Romain Guy <romainguy@google.com> |
Don't clobber the local dirty rect after rendering a layer. Bug #3417254 Bug #3413433 Change-Id: I8045e9ec414ebe4ce4d38124142a00726d2c634d
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
d88f54c5c4ce59585b8b9e6009836f14c00be743 |
|
25-Jan-2011 |
Romain Guy <romainguy@google.com> |
Fix rendering issues in Movie Studio. Change-Id: I5b293767b9bdedeef0df4d27a179d0da48d7fe32
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
7d7b5490a0b0763e831b31bc11f17d8159b5914a |
|
25-Jan-2011 |
Romain Guy <romainguy@google.com> |
Enable partial invalidates when rendering with OpenGL. Change-Id: Ie8be06c4776b815e8737753eb8003b4fd8936130
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
daf98e941e140e8739458126640183b9f296a2ab |
|
10-Jan-2011 |
Chet Haase <chet@google.com> |
Use optimized display lists for all hwaccelerated rendering Previously, display lists were used only if hardware acceleration was enabled for an application (hardwareAccelerated=true) *and* if setDrawingCacheEnabled(true) was called. This change makes the framework use display lists for all views in an application if hardware acceleration is enabled. In addition, display list renderering has been optimized so that any view's recreation of its own display list (which is necessary whenever the visuals of that view change) will not cause any other display list in its parent hierarchy to change. Instead, when there are any visual changes in the hierarchy, only those views which need to have new display list content will recreate their display lists. This optimization works by caching display list references in each parent display list (so the container of some child will refer to its child's display list by a reference to the child's display list). Then when a view needs to recreate its display list, it will do so inside the same display list object. This will cause the content to get refreshed, but not the reference to that content. Then when the view hierarchy is redrawn, it will automatically pick up the new content from the old reference. This optimization will not necessarily improve performance when applications need to update the entire view hierarchy or redraw the entire screen, but it does show significant improvements when redrawing only a portion of the screen, especially when the regions that are not refreshed are complex and time- consuming to redraw. Change-Id: I68d21cac6a224a05703070ec85253220cb001eb4
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
2a83f001fdb189f945e82e81e717ba204824b112 |
|
19-Jan-2011 |
Romain Guy <romainguy@google.com> |
Recreate the EGL surface when ViewRoot's surface changes. Bug #3306150 Change-Id: Ifbf0ab9deca7a34eff7d844ea7276d12d7284788
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
4f6aff386045000c2c03b903c7109cb42092b7ea |
|
13-Jan-2011 |
Romain Guy <romainguy@google.com> |
Only enable GL rendering on the main thread. Change-Id: I41950f4c0a5063ee5d6950cf137eb60a1c7a72fe
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
6c319ca1275c8db892c39b48fc54864c949f9171 |
|
11-Jan-2011 |
Romain Guy <romainguy@google.com> |
Better backend for hardware layers. With this new backend, a hardware layer is only recreated when its associated view is udpated. This offers fast composition in GL and fast update of the layer in GL as well. Change-Id: I97c43a612f5955c6bf1c192c8ca4af10fdf1d076
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
b8c0de2c2726f4e8f0029710047efe0c8e6661ed |
|
13-Dec-2010 |
Romain Guy <romainguy@google.com> |
Improve error detection in HardwareRenderer.draw(). Bug #3280872 This should avoid crashes before we detect a GL error and we switch over to software rendering. Change-Id: Ieb4992576d20014e194aab863a456f09c5e19672
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
9745fae73b584f3e9a9c304098ed9b11f506e93b |
|
08-Dec-2010 |
Romain Guy <romainguy@google.com> |
Fallback to software rendering when eglMakeCurrent fails. Bug #3200621 Change-Id: Id8a455e64a1af23840752124b49c070c00e5e2a6
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
67f27952c1bcb2230beef9b5ca0bf42edad436a9 |
|
08-Dec-2010 |
Romain Guy <romainguy@google.com> |
Correctly release the OpenGL Canvas on EGL error. Change-Id: Ib31fd8445f7ce5f7aa7e0205de0e7db80d024fc2
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
0f761d6b8f5d5a607c87dbcdca6fe0ec7911970e |
|
01-Dec-2010 |
Dianne Hackborn <hackbod@google.com> |
Implement issue #3201795: Improve transition when keyboard comes up ViewRoot now does a fade animation between a snapshot of the previous layout to the new one when its content rect changes. Also tweaked some things in the window manager to fix problems in deciding when to animate the movement of a window and when not to. Change-Id: I9b4b3bd53c8258bd39a2f2fc315e77cfc56a409c
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
5c13d89c1332fcc499379b9064b891187b75ca32 |
|
08-Oct-2010 |
Chet Haase <chet@google.com> |
Optimizing display lists by referencing pointers to resources instead of copying them Change-Id: I81ad3551d74aa1e5bb64d69e33d2eb29a6c1eb6a
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
d10cd5765a2b706fc174f16b951d6b0a5d3740d3 |
|
10-Oct-2010 |
Romain Guy <romainguy@google.com> |
Always create OpenGL accelerated windows in RGBA 8888. Bug #3081600 The OpenGL renderer in libhwui uses a single EGL context per process and thus create it with an RGBA 8888 EGL configuration. To ensure that all windows are compatible with this configuration, this change modifies the window manager and SurfaceFlinger. The window manager now checks the window's flags and if the window is hardware accelerated, it forces the window's pixel format to be translucent when creating the surface. The window itself is still marked as opaque if we know that the window will be opaque on screen. This keeps existing optimizations in place. Similarly in SurfaceFlinger, a translucent Surface can now be created with the Surface.OPAQUE flag, indicating SurfaceFlinger that the surface does not require blending, despite its RGBA 8888 configuration. Change-Id: Ic747b6b12564ba064412d842117880fcc199eb7c
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
53ca03d9a3a6a95286302802173c4820b16328ce |
|
09-Oct-2010 |
Romain Guy <romainguy@google.com> |
Don't set hwAccelerated=true when libhwui is not present. Change-Id: I6df5a89e4b4d94d76e96b5d0a678b7a8f646268a
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
5d3e2ea6f3a02b5bd073887eabfa4f50a59bbcf0 |
|
08-Oct-2010 |
Mike Dodd <mdodd@google.com> |
HardwareRenderer: When throwing an exception because of an EGL error, include the specific error. Change-Id: I8e4b0cdbc207824df4f4bb55c3b379b0ee4aeec2
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
6b7bd24659fb175fe1f0e97c86c18969918b496a |
|
07-Oct-2010 |
Romain Guy <romainguy@google.com> |
Don't clear the framebuffer when not needed.
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
b051e895ccb696604349c6c5efe7c4747e1d1ab6 |
|
29-Sep-2010 |
Romain Guy <romainguy@google.com> |
Add display lists caching. Change-Id: Iac3a248a81ed8cb076a83ef9d186b8ebba685b4c
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
9a40babc62416259d18783ce8c03c00042ec317b |
|
24-Sep-2010 |
Romain Guy <romainguy@google.com> |
Add drawing profiling to the HardwareRenderer. Change-Id: Idf410f1764f3e73590b587d0d76a8d10c021f056
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
b025b9c8b4efefadb01937db61a1f8ee7d2452bf |
|
16-Sep-2010 |
Romain Guy <romainguy@google.com> |
Better error handling in the OpenGL renderer. Add a glGetError() check on every frame Don't attempt to create textures larger than the maximum size allowed Change-Id: Iee4afae16089406dbe8bf10fc93b674f1271a0ca
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
5233920a216302b4aa03b100c32e8b3efe33cbc6 |
|
04-Sep-2010 |
Romain Guy <romainguy@google.com> |
Prevent the system process from using the HardwareRenderer. This change allows applications with the system UID to use the hardware renderer. Change-Id: I3c5d776ee9c07bb14933dbe3060cad4175e4fc95
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
4caa4ed120a86e855d4d3b6b455c6fb9ca22e365 |
|
25-Aug-2010 |
Romain Guy <romainguy@google.com> |
Only destroy the GL Canvas when necessary. Change-Id: I6caf4873b02dc4a6d7c8c91925d2447b3b0e0593
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
fb8b763f762ae21923c58d64caa729b012f40e05 |
|
24-Aug-2010 |
Romain Guy <romainguy@google.com> |
Use only one GL context per process, share chaches. Change-Id: Ieabaa25338d2f4b8d4fd90e7401ad6e7452eae11
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
8fb954263dd2f918ad339045cc6d82e346515599 |
|
18-Aug-2010 |
Romain Guy <romainguy@google.com> |
Fix save()/restore() issues in the OpenGL renderer. The save stack now behaves exactly like in Skia. Change-Id: If7e642f41f2c8f693f6e8c26cba81507d466562e
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
959c91f7f7b4f921d341264f5b4ef54e702a0df0 |
|
12-Aug-2010 |
Romain Guy <romainguy@google.com> |
Bunch of fixes. Fixes memory leak, fixes multiple context support, fix 3d transforms. Change-Id: I7462cfbc57857dbd4de4e76b9d4cba58a1bce77b
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
61c8c9c5b2006d18e9310b6521c65b36ffe75ce4 |
|
10-Aug-2010 |
Romain Guy <romainguy@google.com> |
Fix tons of bugs and add new text rendering support. Change-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
163935113919a184122b8b3bd672ef08c8df65dc |
|
08-Aug-2010 |
Romain Guy <romainguy@android.com> |
Make libhwui entirely optional. The makefile variable USE_OPENGL_RENDERER must be set to true to compile libhwui and the related code in the JNI layer. This change also removes obsolete APIs from Canvas that must not be used and would be confusing if left in. These APIs were remnants of our first attempt at an OpenGL renderer for the view hierarchy and had not been taken out before Android 1.0 was released. Change-Id: I2475ff1307212bab26c926724f3c508681c7dae1
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
dbd77cd444f89d94ec5333223c1bc17dbe0c90cd |
|
09-Jul-2010 |
Romain Guy <romainguy@google.com> |
Remove support for density compatibility in the hardware renderer. Change-Id: I535e919986e5ccfb344ede8516ccd84c02642823
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
f86ef57f8bcd8ba43ce222ec6a8b4f67d3600640 |
|
01-Jul-2010 |
Romain Guy <romainguy@google.com> |
Don't use full screen FBOs, this dramatically increase performance. The next step will be to add an FBO cache to avoid churning memory on every frame we draw. This change also adds support for drawBitmap(Bitmap, Matrix, Paint). Change-Id: I7825cdcf0cad9bffe6219e05d8328a53d4a6e583
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
ce0537b80087a6225273040a987414b1dd081aa0 |
|
30-Jun-2010 |
Romain Guy <romainguy@google.com> |
Add hooks for drawBitmap(). Change-Id: I58e962c3a8b2bc75c2605fe369ad3002579d86e0 Add texture cache. Change-Id: I1c0e5581d228869e114438258a1014e33e024ad7
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
e4d011201cea40d46cb2b2eef401db8fddc5c9c6 |
|
17-Jun-2010 |
Romain Guy <romainguy@google.com> |
Add libhwui, to hardware accelerate the Canvas API using OpenGL ES 2.0. This is the initial checkin to setup the library and turn on OEGL ES 2.0 in ViewRoot, not a functional renderer. Change-Id: I6655c54166e2967da2e21e7d6dcfba78bf113b44
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
e3924992733234fd7d7a614c165a94e0a2cd6b84 |
|
11-Jun-2010 |
Romain Guy <romainguy@google.com> |
Refactor HardwareRenderer to allow the use of OpenGL ES 2.0. The current OpenGL ES 2.0 HardwareRenderer will fail and does not even attempt to create a Canvas. The next step will be to create a new native-backed Canvas that relies on OpenGL ES 2.0 and bypasses the current OpenGL ES 1.0 implementation done in Skia. Change-Id: I7a8e9f87f316e9137ef191bb5609213e160eaa4c
/frameworks/base/core/java/android/view/HardwareRenderer.java
|
2d6145993e19d2bb664766dbaf3c1e9ad3d12cdc |
|
10-Jun-2010 |
Romain Guy <romainguy@google.com> |
Move OpenGL support out of ViewRoot into a new HardwareRenderer class. Change-Id: Iffaed924a5defc3c4df26223c390dc27eee115b1
/frameworks/base/core/java/android/view/HardwareRenderer.java
|