summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/TransferQueue.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
|\
| * Deallocate graphics memory with onTrimMemory signalsChris Craik2011-09-081-0/+3
| | | | | | | | | | | | | | | | bug:5269460 Deallocate the graphics memory backing a BaseTileTexture on onTrimMemory signals, and accordingly allocate it lazily, as needed. Change-Id: I52039723f47e6470e4fe8dd987d384017005390f
* | Merge "The CPU code path for uploading the textures"Teng-Hui Zhu2011-09-081-0/+9
|\ \ | |/ |/|
| * The CPU code path for uploading the texturesTeng-Hui Zhu2011-09-061-0/+9
| | | | | | | | | | | | This is just for debugging anything related to the driver/HW. Change-Id: I26757f8259ec6b6c2406f78bf7aa9c5f527e31e7
* | Enable double buffering via base tilesChris Craik2011-09-021-3/+4
|/ | | | | | | | | | | | bug:2522049 allocate textures and tiles using the gldraw count when they were most recently prepared remaining issues: -layers still flicker (presumably from texture stealing) -layers aren't double buffered yet Change-Id: Iccdf68326d7d476269d4e3a13903aaab249ee92d
* Avoid the lock when dealing with Surface TextureTeng-Hui Zhu2011-08-221-4/+4
| | | | | | | | | The lock over the surface texture operation is unnecessary. They just need to be around the transfer queue operation. bug:5185840 Change-Id: Ia09ec5f6049421047aac1944efbf601cdc179a52
* Merge the line by line copy into one when appropiateTeng-Hui Zhu2011-08-221-6/+10
| | | | | | | | When the stride is the same as the bitmap width, we can just use single memcpy to copy the whole content. bug:5196685 Change-Id: I01c9a673c8e95e14eb23f3d7df4002c886b7554d
* refactor the nativeWindow handling in TransferQueueTeng-Hui Zhu2011-08-181-38/+26
| | | | | | bug:5161750 Change-Id: I33735f258abf850fa3afd7769385b38691365da3
* Fixing issues needed to get Ganesh working with SurfaceTextures.Derek Sollenberger2011-08-151-1/+2
| | | | | bug: 5013645 Change-Id: I255a19c68d8a98231b1500d93d21649d15d70820
* Fix a potential sync problem for TransferQueueTeng-Hui Zhu2011-08-081-2/+19
| | | | | | bug:5044597 Change-Id: Id8cd326774a174a537f2b104d934539269395151
* Better driver bug workaroundTeng-Hui Zhu2011-08-041-4/+6
| | | | | | | | | | It seems like the FBO operation is out of sync in some GL driver. Instead of doing a readPixel, we can also force a read after write by calling an extra draw. bug:5118763 Change-Id: Idaf259f84b0dcc0f3bc94bcf1bd1a4adf5250350
* Finalize the sync part.Teng-Hui Zhu2011-08-031-78/+96
| | | | | | | | Improve the sync part for the Shared Surface Texture. Clean up the interface as much as possible. bug:5044597 Change-Id: I123cc520fb447aeb6e72e90149d1658a657740f7
* Shared surface textureTeng-Hui Zhu2011-08-021-0/+403
Instead of assigning each tile a Surface Texture, now just a normal GL texture. The content from skia bitmap will first drawn into a queue of Surface Textures, at draw time, blit them into each tile's GL texture. Added extra lock to protect the queue operation and Surface Texture operation. bug:5044597 Change-Id: I25f46228b93a3e99526daf52d8bd0d8d8fcc2879