summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/TransferQueue.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Reorganize platform/graphics/androidNicolas Roard2012-04-061-644/+0
| | | | Change-Id: Idc67155cfa99784dcd931e705336bfa063ecae46
* TransferQueue: use BufferQueue::setBufferCountJamie Gennis2012-04-061-3/+6
| | | | | | | | This change switches the TransferQueue to use the BufferQueue::setBufferCount method rather than the SurfaceTexture method. The SurfaceTexture method has been removed as part of the SurfaceTexture refactoring. Change-Id: I906b710b426d91181d73be18fc0aeefd514d3c91
* Merging drawLayerQuad and drawQuadTeng-Hui Zhu2012-04-051-3/+5
| | | | | | | | Simplify the draw interface, organize the data for draw in a better way. Add a forceBlending from Tile to make sure translucent background can force blending too. Change-Id: I3baa16cbdd8fda6fb4ab4087b74a1e0c9aa1e81b
* Rename several classesChris Craik2012-04-041-35/+36
| | | | | | | | | | | | | | | | | | | | BaseTile,BaseTileTexture -> Tile,TileTexture Used in layers other than the base LayerGroup -> Surface Renamed to convey that it is a member of the SurfaceCollection, and that the layers grouped inside are painted together (if at all) DualTiledTexture -> SurfaceBacking Better conveys that this is the raster backing for a surface that can paint. It may be implemented with two tiled textures for now, but that isn't as important as its relationship to the surface. TiledTexture -> TileGrid Renamed to make it more clear that it was a container of tiles, and to be less similar to TileTexture Change-Id: I843f8603a2080cfe5a7313ba1c2eff10620f8aa2
* Fix pure color check to be performed pre-visual indicatorJohn Reck2012-03-211-2/+2
| | | | Change-Id: Id15574e4b1988d73eaefed32718cd4698222d8f1
* Canvas on a textureJohn Reck2012-03-201-26/+1
| | | | Change-Id: I841b3e021298738c91701068992798a55290a520
* Fix tile discard, acquire, transfer, crashChris Craik2012-03-121-2/+3
| | | | | | | | | | Tile texture discard could leave the transfer queue with a mismatched base tile and texture, so that the saved tile isn't the correct owner. Detect this case, and mark the transfer obsolete. bug:6157456 Change-Id: Ib02ecf877c4b99d07172541db8236e15c528af58
* replace XLOGC/XLOG with ALOGD/ALOGVChris Craik2012-03-121-36/+23
| | | | | | | Started using ALOGW/E for indicating warnings/errors Also delete the unused TilesTracker.h Change-Id: I1986a3057efd4c8e260dbc020e21c02d4d646cf3
* remove TextureTileInfo and readyfor checkChris Craik2012-03-081-29/+5
| | | | | | | These checks are obsolete, as texture/tile stealing both occur on the UI thread, and detach textures from tiles. Change-Id: I6d906217ee8954ac04b95f94a4516fd4dfbbb3b0
* fix stalls in tile updatesChris Craik2012-02-291-2/+1
| | | | | | | | | Disable layer readiness check when in single surface mode Disregard painter change in TransferQueue::checkObsolete bug:6091207 Change-Id: I556fca3faf2482beffd81ecbcf7a03a43d297cb9
* layer rendering cleanup/rewriteChris Craik2012-02-281-1/+2
| | | | | | | | | | | | | | | | | | | | | * added 'LayerGroup' class separate the painting/tiled features of a layer (eventually multiple layers) tiled drawing/preparing/counting details are abstracted out of LayerAndroid * added 'SurfaceCollection' class incorporates both the BaseLayerAndroid/LayerAndroid tree, as well as the vector of tiled LayerGroup * renamed 'TreeManager' to 'SurfaceManager' * Removes PaintedSurface was mostly a thin wrapper around DualTiledTexture * Combines TilePainter/SurfacePainter * Simplified ref counting Change-Id: I92c5c75f48d92e0e28812c56de00102399fc02ee
* removed unused vars/functionsChris Craik2012-02-281-1/+1
| | | | Change-Id: I07ab8c6e7ea1c15181eaaa936968b60f6cdd69a4
* Revert "simplify texture generation filters"Chris Craik2012-02-231-26/+18
| | | | | | | Seems to be a problem with the refcounting. bug:6050242 bug:6058365 This reverts commit 92a7e4bc6b67b150cbb30f78374173ecfeb43607
* simplify texture generation filtersChris Craik2012-02-161-18/+26
| | | | | | | | | | Filters can no longer block, which removes the need for transfer queue interruption. The filter no longer touches the currently painting tile. Tiles are now all ref-counted to accomodate the container being deleted while one of its tiles is still painting. Change-Id: Iaa4848665efdf90846defb0a53bf1ea013b8421b
* Merge "Shrink the transfer queue by default"Teng-Hui Zhu2012-02-101-16/+18
|\
| * Shrink the transfer queue by defaultTeng-Hui Zhu2012-02-071-16/+18
| | | | | | | | | | | | This change can save 1.25MB per process if the app is using webview. Change-Id: I32b691f15fa7d395e546963fa64e2fd269a89be9
* | Don't use fence sync for browserTeng-Hui Zhu2012-02-021-1/+2
|/ | | | Change-Id: I300373ed92230f61a82ed96f2216e5093ed35c9f
* Merge "Partial repaint implementation"Nicolas Roard2012-01-311-15/+55
|\
| * Partial repaint implementationNicolas Roard2012-01-311-15/+55
| | | | | | | | Change-Id: I95dca67205811d9e18ed07d42b765d4f3bd6f7cc
* | Clean up tranfer queue before EGL context destroyTeng-Hui Zhu2012-01-271-18/+51
|/ | | | | | | | | | | | | This will avoid ANR when texture generation thread is stuck b/c transfer queue is running out of slots, at the same time, EGL context get destroyed and no more draw call coming to free up more slots. Abandon the surface texture will also help to be more memory friendly. Move the highEndGfx check to TilesManager. bug:5639899 Change-Id: I98f0289ae5ca18361f71dec853327223506e3073
* Employ the transfer queue to the pure color tilesTeng-Hui Zhu2012-01-031-18/+65
| | | | | | | | | | | | | | This fixed the sync problem for the pure color tiles. When Tex Gen thread detect that the tile is pure color, UI need to pick it up in the right time. To avoid adding too many sync object, the simplest way is following the same idea of transfer queue. At the same time, using a separate queue and adding simple operation on top of it can limit the impact to the original transfer queue which is highly coupled with SurfTex implemenation. bug:5808996 Change-Id: I518d358c5626815b27f285d4dcadcee9c3234835
* Increase the buffer count from query resultTeng-Hui Zhu2011-12-051-1/+5
| | | | Change-Id: I15741749f9b9a3977bdbfd737ba639ddfaaff9d4
* am 3fb3b3e0: Merge "Revert "Set the exact buffer size to Surf Tex"" into ics-mr1Teng-Hui Zhu2011-12-021-1/+1
|\ | | | | | | | | * commit '3fb3b3e0e16ce89f589b71ba2cc5942f42f0ac27': Revert "Set the exact buffer size to Surf Tex"
| * Revert "Set the exact buffer size to Surf Tex"Teng-Hui Zhu2011-12-021-1/+1
| | | | | | | | | | | | This reverts commit 2d19ea7c0d192c0c1eda1caed7e25143bbe22c20. bug:5689093
* | am d9b4da81: Merge "Increase the transfer queue size a little to improve the ↵Bart Sears2011-11-301-1/+1
|\ \ | |/ | | | | | | | | | | performance" into ics-mr1 * commit 'd9b4da819207ee4d9a3b735e02d17eb6e19f3209': Increase the transfer queue size a little to improve the performance
| * Increase the transfer queue size a little to improve the performanceTeng-Hui Zhu2011-11-301-1/+1
| | | | | | | | | | bug:5666757 Change-Id: Ib9589254c656731eaf35be60f9dccf45d4cea21b
* | am a5c5de10: Merge "Set the exact buffer size to Surf Tex" into ics-mr1Teng-Hui Zhu2011-11-301-1/+1
|\ \ | |/ | | | | | | * commit 'a5c5de101b2a1a1f1d347f21519299d05b745eab': Set the exact buffer size to Surf Tex
| * Set the exact buffer size to Surf TexTeng-Hui Zhu2011-11-291-1/+1
| | | | | | | | | | | | | | | | | | Originally, the extra space is used to get the queue working when the size is 1, which is only for testing purpose. Now we should claim this back to save some memory. bug:5666757 Change-Id: I2079a562d8414f89274d7fff3342eafe32fe287f
* | am 7fd7178c: Merge "Add logging to help debug an ANR" into ics-mr1Teng-Hui Zhu2011-11-171-4/+10
|\ \ | |/ | | | | | | * commit '7fd7178c44ef32d378ec7a1454a84639c4dbcac2': Add logging to help debug an ANR
| * Add logging to help debug an ANRTeng-Hui Zhu2011-11-161-4/+10
| | | | | | | | | | bug:5627977 Change-Id: Ie68a4ae44599063fa93938370a5dcff7e63d7b9b
* | compiler error fix when DEBUG is onTeng-Hui Zhu2011-11-021-3/+3
|/ | | | Change-Id: I6fbaa9dfe50752fa5ec95cd43ed50306b63270f3
* Don't discardQueue if the upload type didn't changeJohn Reck2011-10-271-0/+3
| | | | | | Bug: 5529012 Change-Id: I0b57c4cf9d295524f675f2cb7504d5a9c0363871
* Prevent race condition in tile texture discardChris Craik2011-10-171-5/+8
| | | | | | | | bug:5461107 Tiles were being destroyed, and subsequently dereferenced in TransferQueue Change-Id: I4fea289e5fda03a69f07554f57120c4c5bf7b016
* Fix crash in BaseTileTextureChris Craik2011-10-131-5/+2
| | | | | | | | | | | bug:5453156 simplified m_owner management - ONLY modified on UI thread Previously deferring clear of m_owner, now set immediately since texture thread doesn't use need stale owner info Change-Id: I9b6f7bfd27af44a818d378ff750c0170d8122cfd
* Mark tiles discarded by TransferQueue as dirtyChris Craik2011-10-111-4/+31
| | | | | | | | | | | | bug:5409902 Tiles were being discarded from the queue (and simply unsuccessfully added). This caused them to get stuck in the 'ValidatedUntransferred' state. Now if a tile isn't added successfully, or if it's discarded, it removes its painting texture and will have to repaint from scratch. Change-Id: I551e00fb8a6be3b0f3cabeabaa91e8b8b30019d5
* Merge "Turn on the new Gpu Upload code path"Teng-Hui Zhu2011-09-301-1/+1
|\
| * Turn on the new Gpu Upload code pathTeng-Hui Zhu2011-09-301-1/+1
| | | | | | | | | | bug:5395019 Change-Id: Ifc16eb59fec62e5f4b95ad4e35f140969226506d
* | Merge "The new Gpu upload code path."Teng-Hui Zhu2011-09-301-1/+22
|\ \ | |/
| * The new Gpu upload code path.Teng-Hui Zhu2011-09-301-1/+22
| | | | | | | | | | | | | | | | This relied on the hacky Surface Texture change: https://android-git.corp.google.com/g/#/c/138516/ bug:5347539 Change-Id: I78e0f677a9c201ba49e11ddb24fa095471cbf3c9
* | Merge "Make the Gpu Upload path faster"Teng-Hui Zhu2011-09-301-8/+18
|\ \ | |/
| * Make the Gpu Upload path fasterTeng-Hui Zhu2011-09-291-8/+18
| | | | | | | | | | | | | | | | | | Basically, move unnecessary function calls out from the loop. And move the clear related code into DEBUG only. This is saving us some CPU overhead. bug:5347539 Change-Id: I237162fd6a502e93ea32c9856f907c5a9ddb2e78
* | Use state machine to track tile stateChris Craik2011-09-291-0/+1
|/ | | | | | | | | | | | | | | | | | | | bug:5369978 Manage invalidations, painting, transferring, and swapping with a state machine. notes: * readyFor shouldn't be needed if all of the events that would cause a readyfor fail mark the tile dirty (such as stealing, scale change) * changing the scale of a page should discard all textures * m_dirty should be more gracefully worked into the state machine * a tile may drop dirtiness notifications if it's already painting, since upon completion m_dirty will be cleared - (issues for layers only) Change-Id: I5909fb5d208da2fb276e223c56bf143741a9a24c
* Egl sync code path should be only activated when we are in GpuUpload modeTeng-Hui Zhu2011-09-261-1/+2
| | | | | bug:5347539 Change-Id: I12b8b45792d5aa684295b897be308181a7d44631
* Enable the CPU upload path for Browser.Teng-Hui Zhu2011-09-231-62/+85
| | | | | | | | | | | | The default for WebView should be still be GPU upload. That means Gmail will be default to using GPU upload. bug:5347539 The browser change is in https://android-git.corp.google.com/g/#/c/137606/ Change-Id: Ic7d42331511b24cf8a58f2f5fb64aaffc18cae5f
* Support drawing the quad in GL_NEAREST mode.Teng-Hui Zhu2011-09-201-1/+1
| | | | | | | | | This can save the draw call perf up to about 20-40% for each quad. We should make more draw calls using NEAREST mode when it is 1 to 1 mapping. bug:5347539 Change-Id: I1ae206716f2b1352775e0079e25e54f46bc18578
* A better CPU upload pathTeng-Hui Zhu2011-09-201-7/+13
| | | | | | | | Clean up the unnecessary Surface Texture operation in CPU upload code path. bug:5347539 Change-Id: Id8cf1d3e472dce2470bc62a844b95e8d5d2a6371
* Fix one typo in the GL state restoreTeng-Hui Zhu2011-09-191-1/+1
| | | | | | bug:5044597 Change-Id: Ib70e48f4503a85952afb28da3a6c500b0c011bb8
* Share the display from the UI threadTeng-Hui Zhu2011-09-161-13/+25
| | | | | | | | | | Currently disable the wait b/c b/5332112. For now it should be the same functionality as the original workaround by using glDraw. bug:5270526 Change-Id: Ia6d6739909994d6ed756c6b195e6cf7ee9518c54
* A better WAR of driver issue by using GPU fenceTeng-Hui Zhu2011-09-131-12/+28
| | | | | bug:5270526 Change-Id: I790a3fc995edc73192b2bcb24eaa29e99434f2fb
* Merge "Deallocate graphics memory with onTrimMemory signals"Chris Craik2011-09-081-0/+3
|\