448455fe783b0a711340322dca272b8cc0ebe473 |
|
22-Jul-2013 |
Romain Guy <romainguy@google.com> |
Use global indices array to draw layers An array of indices local to a layer would only be necessary if we changed the way we resolve T-junctions. Since we only ever draw quads, let's just use the indices we use everywhere else. This change also uses the global indices array to render list of colored rectangles to save on the number of vertices generated CPU-side. Change-Id: Ia6d1970b0e9247805af5a114ca2a84b5d0b7c282
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
4c2547fa9244e78115cde0a259291053108c3dc7 |
|
12-Jun-2013 |
Romain Guy <romainguy@google.com> |
Avoid 9patch cache lookups when possible This optimization saves up to 0.3ms per frame on the Play Store's front page, on a Nexus 4 device. Change-Id: Iaa4ef33c6e3b37e175efd5b9eea9ef59b43f14f3
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
be1b127c7bec252e0c6ab0e06ed6babed07d496f |
|
06-Jun-2013 |
Romain Guy <romainguy@google.com> |
Assume a texture is unbound after deleting it Bug #9316260 The GL specification indicates that deleting a bound texture has the side effect of binding the default texture (name=0). This change replaces all calls to glDeleteTextures() by Caches::deleteTexture() to properly keep track of texture bindings. Change-Id: Ifbc60ef433e0f9776a668dd5bd5f0adbc65a77a0
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
8aa195d7081b889f3a7b1f426cbd8556377aae5e |
|
05-Jun-2013 |
Romain Guy <romainguy@google.com> |
Introduce Caches::bindTexture() to reduce glBindTexture calls Change-Id: Ic345422567c020c0a9035ff51dcf2ae2a1fc59f4
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
0908764b2b3cf5075df4178a5f0a8547dcb7b317 |
|
04-Apr-2013 |
Romain Guy <romainguy@google.com> |
First OpenGL ES 3.0 based optimization This change uses a new OpenGL ES 3.0 feature to upload less data when the font cache needs to be update. This can result in significant performance improvements on device with large textures or with locales that use a lot of glyphs (CJK for instance.) This change also fixes various unpack alignment issues. The unpack alignment, as well as the unpack row length, is not texture specific but a global state that affect all glTex/SubImage2D calls. Some of them were missing the appropriate glPixelStorei() call. This could result in corrupted textures. Change-Id: Iefb429d4d0d0b4e0faeadf27daafee6d30a21d85
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
ce4a7dfc516ee61301e9af91fad17ca1320efaab |
|
28-Mar-2013 |
Romain Guy <romainguy@google.com> |
Don't crash when making a layer larger than supported dimensions Bug #8437401 A misplaced ref count decrement was causing a crash when attempting to resize a layer to dimensions larger than the max texture size supported by the GPU. This change fixes the crash and clarifies the warnings to make it more obvious what's happening. Change-Id: I632dc1b90aaa2605969e10523491a81c4922d3dc
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
96885eb480c5e0526fe2f77d30f6e551f3f3ceab |
|
26-Mar-2013 |
Romain Guy <romainguy@google.com> |
Avoid multiple font cache texture uploads Bug #8378964 This change defers drawing into layers until after the renderer for FBO0 is ready to draw. At that point, all the precaching is done which means all glyphs can be uploaded at once in the font caches. Change-Id: Ie1f7a7ff30f76f06fb3dbc72c7d05e66207d1ecb
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
624234f69b2a4781d24f3e4c6ae6450729e38397 |
|
06-Mar-2013 |
Romain Guy <romainguy@google.com> |
Take only the scale params into account to rasterize text This change extracts the scale parameters of the current transform to pass then to the font renderer. Rotation and perspective are applied to the generated mesh inside the vertex shader. This limits the number of glyphs we have to create in the font cache and thus reduces memory churn. Change-Id: Ic5b3bae2b2b0e0250a8ee723b071a1709725c749
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
6c5b9be7450903762f676522c32d65f7545730df |
|
27-Feb-2013 |
Chris Craik <ccraik@google.com> |
Fix T-junctions in layers' generated meshes bug:4128442 Currently we fix T-junctions for hardware layers, and for Canvas.saveLayer if the transform isn't rectAsRect. Ideally, hardware layers should lazily re-generate T-junction free geometry if the transform becomes non-rectAsRect Depends on frameworks/native change: https://googleplex-android-review.googlesource.com/#/c/277668/ which adds Region::createTJunctionFreeRegion() Change-Id: Ice75b4a1a4459ff835059ea81d70f7d1563fd96d
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
3bbacf27c0be1bae4e4483577fc89ae3113abe5d |
|
07-Feb-2013 |
Romain Guy <romainguy@google.com> |
Add a RenderBuffer object to store stencil buffers. Bug #7146141 This change is needed to add a render buffer cache to avoid creating and destroying stencil buffers on every frame. This change also allows the renderer to use a 1 bit or 4 bit stencil buffer whenever possible. Finally this change fixes a bug introduced by a previous CL which causes the stencil buffer to not be updated in certain conditions. The fix relies on a new optional parameter in drawColorRects() that can be used to avoid performing a quickReject on rectangles generated by the clip region. Change-Id: I2f55a8e807009887b276a83cde9f53fd5c01199f
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
c3fedafc5f50100219449125a000e3138f6fb987 |
|
30-Jan-2013 |
Romain Guy <romainguy@google.com> |
Fix graphical corruption on QCOM GPU Bug #7146141 The GL_QCOM_tiled_rendering extension requires careful use of start/endTiling when attaching a renderbuffer dynamically. Change-Id: I20036683ed3909ffaf40cc3d57a25257e35b6fa2
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
2055abaa0a590c35e27e1ae2e7d7cfccdfb98b59 |
|
19-Jan-2013 |
Romain Guy <romainguy@google.com> |
Allow layers with a stencil buffer to be resized on the fly 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
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
8ce00301a023eecaeb8891ce906f67b513ebb42a |
|
16-Jan-2013 |
Romain Guy <romainguy@google.com> |
Implement clipRect with a transform, clipRegion & clipPath Bug #7146141 When non-rectangular clipping occurs in a layer the render buffer used as the stencil buffer is not cached. If this happens on a View's hardware layer the render buffer will live for as long as the layer is bound to the view. When a stencil buffer is required because of a call to Canvas.saveLayer() it will be allocated on every frame. A future change will address this problem. If "show GPU overdraw" is enabled, non-rectangular clips are not supported anymore and we fall back to rectangular clips instead. This is a limitation imposed by OpenGL ES that cannot be worked around at this time. This change also improves the Matrix4 implementation to easily detect when a rect remains a rect after transform. Change-Id: I0e69fb901792d38bc0c4ca1bf9fdb02d7db415b9
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
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/libs/hwui/LayerRenderer.cpp
|
98d3a64ffa13596e3ea9125bbff40c51ec96bd8d |
|
26-Sep-2012 |
Chet Haase <chet@google.com> |
Assign default texture id of 0 Some logic depends on a default value of 0, which was not being assigned. Issue #7195815 chrome url bar is corrupted Issue #7190656 Textures corrupted on mr1 Change-Id: I346b7b76e885bf8f04740e711fd88f917a5418c7
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
56257aff8a55c847be72be9924c392033fd8151d |
|
26-Sep-2012 |
Dave Burke <daveburke@google.com> |
Revert "Deleting objects on the wrong thread is a silly idea Bug #7195815" This reverts commit 8a1374946a928fcba7495c87ff6adda327fdfb9f Change-Id: I53564a6c531d334afcc1fce0bea1e57ae266aa78
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
8a1374946a928fcba7495c87ff6adda327fdfb9f |
|
26-Sep-2012 |
Romain Guy <romainguy@google.com> |
Deleting objects on the wrong thread is a silly idea Bug #7195815 Turns out that multi-threading is hard. Change-Id: Ib0b4bd6dc3caea27f7ced22cbb363bb955fe58ab
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
61d37041ac76a95aedb98d3550bb5efa33d898a1 |
|
21-Sep-2012 |
Chris Craik <ccraik@google.com> |
Merge "Polygonal rendering of simple fill shapes" into jb-mr1-dev
|
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/libs/hwui/LayerRenderer.cpp
|
710f46d9d6a5bf9ea1c1833384caf61e1934124f |
|
18-Sep-2012 |
Chris Craik <ccraik@google.com> |
Polygonal rendering of simple fill shapes bug:4419017 Change-Id: If0428e1732139786cba15f54b285d880e4a56b89
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
35643ddc689913f5b5f80ceed864470d987bd6cd |
|
19-Sep-2012 |
Romain Guy <romainguy@google.com> |
Minimize state changes when updating layers Change-Id: I407fcc80bd3178f9f09a3b379ceb7f7ce0749e08
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
603f6de35f21d74ae242d52d501f4f5c25ff4f4c |
|
15-Sep-2012 |
Chet Haase <chet@google.com> |
Fix occasional crash bug with layers 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
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
45e4c3df6c00ac98ff6144de9af574877d4fff19 |
|
12-Sep-2012 |
Romain Guy <romainguy@google.com> |
Discard framebuffer commands when we redraw the entire buffer Change-Id: I32e3014832cbd3bdbace8c3d2206eb20a2002d64
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
e49d7ec36132f33b7c9e2c044ab9dd3585aa3747 |
|
08-Sep-2012 |
Romain Guy <romainguy@google.com> |
Fix memory corruption in LayerRenderer::copyLayer The pixel store pack alignment was not set for the source texture, causing a write to occur outside of the destination bitmap's bounds. Change-Id: Iaa5767acf7b5943fbc2765c3810a142f06b1a796
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
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/libs/hwui/LayerRenderer.cpp
|
586cae3ac69c0c667fbf8a954edbd399f620a717 |
|
14-Jul-2012 |
Romain Guy <romainguy@google.com> |
Improve rendering speed by disabling scissor tests This change improves execution of display lists, particularly on tiled renderers. The goal is to disable the scissor test as often as possible. Drawing commands are rarely clipped by View bounds so most of them can be drawn without doing a scissor test. The speed improvements scale with the number of views and drawing commands. Change-Id: Ibd9b5e051a3e4300562463805acc4fd744ba6266
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
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/libs/hwui/LayerRenderer.cpp
|
5c88fc744db977ef26887df9605beaa409394806 |
|
03-Apr-2012 |
Romain Guy <romainguy@google.com> |
Prevent crash when flushing the layers cache 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
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
8564c8da817a845353d213acd8636b76f567b234 |
|
06-Jan-2012 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
5baa3a62a97544669fba6d65a11c07f252e654dd |
|
20-Dec-2011 |
Steve Block <steveblock@google.com> |
Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
a1d3c91afbd52c7e8b01f4a9060c5459f02ae7a5 |
|
13-Dec-2011 |
Romain Guy <romainguy@google.com> |
Further reduce the number of GL commands sent to the driver Change-Id: Id922b2a166ea4573b767c27d3195e11c70320b23
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
39d252a6632d057d5077f7eaf1b8ed7a142f3397 |
|
13-Dec-2011 |
Romain Guy <romainguy@google.com> |
Various OpenGL optimizations Change-Id: Ib0742c96f10f5f50e7e5148b742c31b6c232d127
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
3e263fac8c9c0e0fb242186b514a7af8efb40961 |
|
13-Dec-2011 |
Romain Guy <romainguy@google.com> |
Keep shaders to render properly I don't know who's to blame, SGX or Tegra2 but one of those two GPUs is not following the OpenGL ES 2.0 spec. Change-Id: I2624e0efbc9c57d571c55c8b440a5e43f08a54f2
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
9c4b79af221b53f602f946faa9ff317a596a0c39 |
|
11-Nov-2011 |
Romain Guy <romainguy@google.com> |
Discard framebuffer rendering queues when discarding layers Bug #5581817 Change-Id: Ie30700a29059d2ea60eb7bd3f8bd20ac48a149ab
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
d21b6e1fe337b35f62cf2028e9bd0637fd009a75 |
|
01-Dec-2011 |
Romain Guy <romainguy@google.com> |
Optimize away unnecessary state changes Change-Id: I0f6816f9f6234853575ecee5033186ad19e76380
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
7077506f9945b87b02bdd47ffce75a5b813c821c |
|
14-Nov-2011 |
Dave Burke <daveburke@google.com> |
Revert "Discard framebuffer rendering queues when discarding layers" This reverts commit da96f8ac2c1c35a54f3f36e6d776cb386a251d03.
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
da96f8ac2c1c35a54f3f36e6d776cb386a251d03 |
|
11-Nov-2011 |
Romain Guy <romainguy@google.com> |
Discard framebuffer rendering queues when discarding layers Bug #5581817 Change-Id: If612846ec5f7793710fc4df152791fb32c506551
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
5cd5c3f7e4df99f47e3def6e3707b9eb8205aef3 |
|
18-Oct-2011 |
Romain Guy <romainguy@google.com> |
Return early when we cannot allocate a hardware layer Bug #5462308 Change-Id: I52dab809662f6f42a49ca03edc50f6b98fc35a06
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
7953745dd565167113f8cbfc461bc0521d32d870 |
|
12-Oct-2011 |
Romain Guy <romainguy@google.com> |
Reduce the size of libhwui by 50% This change removes unnessary symbols. All symbols are hidden by default, public APIs with exported symbols are explicitly marked with ANDROID_API. Change-Id: I692fde432a86c12108de1cfd1f6504919a7d5f3f
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
a9dc86b21defc26db0d71f276aff5c3af0b62ff5 |
|
11-Oct-2011 |
Romain Guy <romainguy@google.com> |
Correctly apply transforms when getting a TextureView's bitmap Bug #5439406 Change-Id: I271a9a2e38f5b3600dc158f8f442a6b0893f472b
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
8a3957d43bcae93fbb9f6b4b4c3de8abdb3c953c |
|
08-Sep-2011 |
Romain Guy <romainguy@google.com> |
Add reminder in the code to fix T-junctions Change-Id: I52b112694f930e641f01fb78dc55412986023411
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
65b345fa22b878e141b8fd8ece9c208df00fa40f |
|
28-Jul-2011 |
Romain Guy <romainguy@google.com> |
Reclaim more memory, more often. Yay. Change-Id: I04557ad575c307a55088549f48f0e9ad994b7275
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
eea60692b060737faeaa02bb30f5b79e2202b482 |
|
27-Jul-2011 |
Romain Guy <romainguy@google.com> |
Improve layers debugging Change-Id: Ia4950dd5f0e0a224ecb69c581d33aa4f32260a7c
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
ec19b4a764d512091a780fc93ced567dfbf80914 |
|
08-Jul-2011 |
Romain Guy <romainguy@google.com> |
Use NEAREST filtering mode for TextureView.getBitmap(). Change-Id: I4649062bbdf18ebba7924bdf578f39ad8f6576ac
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
9ace8f5e79e76893fe4ca9e4d10f6c4056330485 |
|
08-Jul-2011 |
Romain Guy <romainguy@google.com> |
Use NEAREST filtering for layers whenever possible. Change-Id: Id5bee1bd4a322cf93e8000b08e18f1e1b058648e
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
4a5a71518a71a44dbccb3af9a08b82056ea748b3 |
|
25-Jun-2011 |
Romain Guy <romainguy@google.com> |
Don't set texture parameters on every frame. Change-Id: Iec368405ad6a4ccfd569a0b3b4d681871a770396
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
80429c458506485904715180d10584092a5cd082 |
|
25-Jun-2011 |
Romain Guy <romainguy@google.com> |
Properly tear down TextureView Change-Id: Ic23cd9257889d0abe8cc3fc1d04a66d0505e383e
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
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/libs/hwui/LayerRenderer.cpp
|
d6b2a00dd43257d1498b09175bff63663f6cb861 |
|
18-Jun-2011 |
Romain Guy <romainguy@google.com> |
Add error checking to LayerRenderer::copyLayer This method is invoked by TextureView.getBitmap() and failures must be caught to avoid leaving the GL context in a potentially bad state. Change-Id: I620de395ba1bc20154de58c81963223dc55cac78
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
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/libs/hwui/LayerRenderer.cpp
|
8f0095cd33558e9cc8a440047908e53b68906f5f |
|
03-May-2011 |
Romain Guy <romainguy@google.com> |
Allows to render with an OpenGL context inside a TextureView. Change-Id: I59453f7fc3997f0502a1c5d325d37fed376fabc7
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
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/libs/hwui/LayerRenderer.cpp
|
9fc27819d75e24ad63d7b383d80f5cb66a577a0d |
|
27-Apr-2011 |
Romain Guy <romainguy@google.com> |
Correctly compute tex coords for rect layers. Bug #4192695 This change also fixes Javadoc links in the framework. Change-Id: Ia548bcb18baba5d6fe6a4a04a2278e3a3bd465b2
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
40667676e542a9daeafeac9904c30004e8706fd3 |
|
18-Mar-2011 |
Romain Guy <romainguy@google.com> |
Optimize rect-shaped layers. This brings back an optimization disabled in HC-MR1. This time the correct geometry is generated to avoid unnecessary blending. Change-Id: Id56404dc46bb84c75facc25c18488a690741b592
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
6217a71cd281003a376d998269d577d26a61c206 |
|
16-Mar-2011 |
Romain Guy <romainguy@google.com> |
Fix performance issue in Launcher Bug #3515248 The problem is caused by the fast path when compositing layers on screen. The fast path draws a single quad using glDrawArrays() whereas the general path draws an arbitrary mesh using glDrawElements(). It looks like there's an issue in the driver since glDrawArrays() is significantly slower than glDrawElements() for a quad (6 vertices!) This change just gets rid of the fast path. Change-Id: Ib2361253ec67f44a988270f76c183422f12ce537
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
40a787f89a6f4c20f2c7fce29e5bc53954305f34 |
|
03-Mar-2011 |
Romain Guy <romainguy@google.com> |
Properly initialize FBO textures for linear filtering. Change-Id: I67fc4fd760483ef85809be8d6e608cf4f469650f
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
09b7c91de73b59aa3f679b3ae3ba299f82ec9f8a |
|
03-Feb-2011 |
Romain Guy <romainguy@google.com> |
Allocate layers from the layers pool. 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
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
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/libs/hwui/LayerRenderer.cpp
|
beff8d83ef062975459f149ad0c632a3797d78ce |
|
02-Feb-2011 |
Romain Guy <romainguy@google.com> |
Fix incorrect dirty rectangle transformation in hardware layers. Bug #3413433 Change-Id: Iba201c7c4b4f11937797f3afcbf20c5a7395be25
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
3a3133d876caf60ebff2176ad75c3dcf0259148d |
|
02-Feb-2011 |
Romain Guy <romainguy@google.com> |
Update layers based on the dirty region. Bug #3413433 This helps Launcher when a widget updates during a scroll, or when interacting with widgets on the workspace if layers are still turned on. Change-Id: Ic7a42eb34f74f4ae988039754f815e2efd1d1e4f
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
a45c056e62be0ca97edbdd6f6660822cf453c886 |
|
27-Jan-2011 |
Chet Haase <chet@google.com> |
Merge "Fix display List bugs" into honeycomb
|
678e0adbdbac5fa3f25ca8371fdff1b3182f67e9 |
|
25-Jan-2011 |
Chet Haase <chet@google.com> |
Fix display List bugs Various property setters in View need to invalidate the parent's cache to get redrawn properly when accelerated with display lists. Also, fix logic around display lists and old-style Animations in ViewGroup. Change-Id: I70e1c2fa49e62228ee4a1301a006ce50bda4c305
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
4f09f5417b5c14fd31336dacfff86972e7885a03 |
|
27-Jan-2011 |
Romain Guy <romainguy@google.com> |
Don't draw the same triangles several times. Bug #3388197 Change-Id: Ief1dfd9447f144e9992340a173d2893e5e049129
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
7d7b5490a0b0763e831b31bc11f17d8159b5914a |
|
25-Jan-2011 |
Romain Guy <romainguy@google.com> |
Enable partial invalidates when rendering with OpenGL. Change-Id: Ie8be06c4776b815e8737753eb8003b4fd8936130
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
c88e357d1ed9dadfc0efb3dfbe92f24460674ef5 |
|
22-Jan-2011 |
Romain Guy <romainguy@google.com> |
Fix regression with hardware layers. The renderer was checking whether the layer's region is a rect to draw it with a simple quad. This test was done against the layer's region structure, which was cleared after generating the mesh. Unfortunately Region::isRect() returns true when the region is empty, which was causing the renderer to always use a quad to draw a mesh on screen. Change-Id: If4b874579ee0cedcb67367c9efa5c0c98ca55231
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
42f3a4b7c35dd1ea1922356eb3611af8cde05179 |
|
19-Jan-2011 |
Romain Guy <romainguy@google.com> |
Make embedded hardware layers work. Bug #3369474 Change-Id: Ib6d7fb44eedda9dc2933b5e1b176f307968af91d
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
fb13abd800cd610c7f46815848545feff83e5748 |
|
17-Jan-2011 |
Romain Guy <romainguy@google.com> |
Fix 9patch rendering in ExpandableListView. Change-Id: I60843d61a40b0cb7dd09923cb4489a5a76f20486
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
f219da5e32e85deb442468ee9a63bb28eb198557 |
|
16-Jan-2011 |
Romain Guy <romainguy@google.com> |
Don't blend transparent pixels when rendering layers. With this change, the rendere keeps track of what regions are rendered into and generates a mesh that matches these regions exactly. The mesh is used to composite the layer on screen. Change-Id: I1f342576b9134fb29caff7fb8f4c1da179fe956d
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
ada830f639591b99c3e40de22b07296c7932a33f |
|
13-Jan-2011 |
Romain Guy <romainguy@google.com> |
Cleanup implementation of hardware layers. The new implementation relies on OpenGLRenderer's existing layer code instead of duplicating it. The new code is much cleaner, with simpler and better APIs and allows tracking of drawn regions inside layers. Region tracking is not yet enabled but this will be done in a future CL. Change-Id: Ie826121a2227de8252c77b992a61218defea5143
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
1fc883b271707c4206ae20cc9a935d7bd4a7485e |
|
12-Jan-2011 |
Romain Guy <romainguy@google.com> |
Add logging to the new layers API. Change-Id: I78b9426eb17de3e775aca9fafe4a50bd9c0785c4
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
57066eb64c9a190d1afc87bb060bbb2d31e5b86c |
|
12-Jan-2011 |
Romain Guy <romainguy@google.com> |
Cleanup GL objects on the correct thread. Change-Id: Iddfea6e08a6591a4fab147151098ef27005f373d
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
a9d0711392689a94b9f76eb0c16d0718c005603e |
|
12-Jan-2011 |
Romain Guy <romainguy@google.com> |
Don't break the build! Change-Id: I42f68c7b023c03adeedc4e979e5f4705188ee9f4
/frameworks/base/libs/hwui/LayerRenderer.cpp
|
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/libs/hwui/LayerRenderer.cpp
|