summaryrefslogtreecommitdiff
path: root/libs/hwui/renderthread/CacheManager.cpp
AgeCommit message (Collapse)Author
2021-06-15Add logic to clean up resources more frequentlyNader Jawad
Added call to Skia's performDeferredCleanup method to free resources that were not referenced within the last 100 frames or 10 seconds whichever is furthest away Bug: 188450217 Test: manual Change-Id: I3f37e1b5bd01330dbbc2da4a84b1259d56be2768
2021-05-12More benchmark tweaksJohn Reck
Bug: 187718492 Test: this Change-Id: Ie0cad91e1c7d1a02704fc4b1007ba2c28cb2b3e7
2021-05-11Macrobenchmark tweaks & gpu memory dumpingJohn Reck
Add support for glob matching Ensure glob matches are alphabetically sorted Add feature to dump GPU memory usage after a test pass Adjust gpu memory dump to be a bit more compact (skip empty outputs) Test: this Bug: 187718492 Change-Id: I6dc80b2d3379d8d10001116e1240727d9914bc10
2021-02-09Change CacheManager to not flush and submit at end of trimMemory.Greg Daniel
The flush and submit at the start of trim memory now syncs the cpu so that all work is done on the gpu and the max possible amount of resources can be freed This fixes CacheManager unit test since the submit at the end trim memory was causing new resources to be available to be purged. Test: locally ran unit tests Bug: 178978639 Change-Id: I8b57b042dd146fc6c1083540715295e93fd113d3 (cherry picked from commit 846644a46e6c5d9bb82382da438a67a067a8a0ce)
2020-10-07Migrate some last instances of GrContext to GrDirectContextAdlai Holler
This is a rename with no functional changes. Change-Id: I4b0b7ee1926b688029e257b35c469113c0404a5b
2020-06-24Remove old GrFlushFlag for cpu sync which isn't used anymore.Greg Daniel
Test: manual Change-Id: Ib362f228c18b6c452e66debe6f6f076451670cd7
2020-06-16Merge "Revert "Drop max texture cache size from 12x to 5x"" into rvc-dev am: ↵John Reck
556fe0b9e5 am: 6bf4b6b216 am: aeae81a937 am: 3844f2a385 Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11838959 Change-Id: I7f9db598d3051993c1fc58b35ffd2d84527842ad
2020-06-11Revert "Drop max texture cache size from 12x to 5x"Leon Scroggins
Bug: 155002050 Test: Manual - scroll Pchome app This reverts commit 05ac51641297ae2cbe9b186b8c369f3a23a156b9. Reason for revert: When running Pchome, this change resulted in poor performance while scrolling. Every frame appears to be uploading several textures, potentially the same textures over and over again. Change-Id: I0fc7216e16f783051d1bd87af764c1a6f361c138
2020-05-14Update skia flush call APIs.Greg Daniel
Test: manual Change-Id: I72fa57b04f1b4ea594063ddb4ce6af9507b1fcdb
2020-01-10Add memory tracing in HWUIStan Iliev
Add ATRACE memory counters to track memory usage at the end of each frame in HWUI. There are 3 catagories: CPU, GPU and Texture memory. There are 3 more counters for memory that can be purged. This CL deletes GpuMemoryTracker class, which implemented similar function for Android O HWUI renderer. Test: Collected systrace with gmail and setting. Test: memory tracing adds ~0.1ms per frame when ATRACE is enabled Bug: 146580770 Change-Id: Icbcc0478bc426dff578e83726fe7c95df171ed93
2019-11-07Merge "[HWUI] Get DeviceInfo through stable ABI"Alec Mouri
2019-10-25Merge "Delete VectorDrawableAtlas"John Reck
2019-10-25[HWUI] Get DeviceInfo through stable ABIAlec Mouri
This also removes the dependency on ui/DeviceInfo other than in test code. Bug: 136263392 Bug: 136263238 Test: builds, boots Change-Id: I6a4687e981359f0e6beb83be8a5501ed7fd16f15
2019-10-09Merge "Revert "Drop all caches in UI_HIDDEN""TreeHugger Robot
2019-10-08Revert "Drop all caches in UI_HIDDEN"John Reck
This reverts commit 8a207962ec84904a0fb8c7b5ce547ed2d1b59794. Bug: 142301356 Test: none, speculative Reason for revert: Seems to break alarm? Change-Id: Ia1680d1a937b596297c2eab3e54476daf9589347
2019-10-04Delete VectorDrawableAtlasJohn Reck
Poking around in a few apps it doesn't appear that the VectorDrawableAtlas is achieving sufficient utilization to justify its existence. The potential for draw call merging doesn't seem warranted for the RAM cost of the atlas. Bug: 137853925 Test: builds Change-Id: Id2419bc6dccb6316636d50c568f8fac75a2d563f
2019-10-04Drop max texture cache size from 12x to 5xJohn Reck
Bug: 137853925 Test: none Change-Id: I8d05871a5f54c8e5d6528a6a8ed48f73464a1221
2019-10-04Drop all caches in UI_HIDDENJohn Reck
Bug: 137853925 Test: none Change-Id: Idf7002d9b07cc6b71b38ce76e7b6382100279a99
2019-09-06Switch to using GrContext::setResourceCacheLimit and getResourceCacheLimitRobert Phillips
The old version that took a maxResourceCount are now deprecated Test: does it compile Change-Id: Ib4d69c8907169329c7765c648f46fa5e4a10bf7a
2019-08-02[HWUI] clean up libgui include directivesAlec Mouri
As a first pass removing some stale includes. Bug: 138819035 Change-Id: I7aef319aa8f1b13b6482ef61fda151560e570558 Test: builds
2019-04-22Make sure to sync GPU after deleting memory in trimMemory.Greg Daniel
On GL some devices may not delete gpu memory immediately after calling delete and instead will just queue it up. We must call glFinish to make sure the memory is deleted when we want it. More importantly Vulkan memory will not be freed until the GPU is done with all the work. Thus we require an additional flush to make sure the previous gpu work we submitted has finished and we can delete the memory. Test: manual testing on device Bug: b/130440975 Change-Id: I2a9202dd7d15d97b365120a8caf9e10b4100efc3
2019-04-19Update the CPU text cache sizes to be the same as their GPU equivalentsDerek Sollenberger
Bug: 130684261 Test: uibench jank tests Change-Id: Ieb837afd76d1990c796baa9794ba54a83b8cd46f
2019-04-12Support render-ahead in vulkanJohn Reck
Bug: 127822449 Test: verified render_ahead working with skiavk Change-Id: Iae1b227a763f6def035057f38cca4b0ab65c7e82
2019-03-18Remove old TaskManager systemJohn Reck
Replace it with a newer, fancier, WorkQueue-inspired one that's just a global common thread pool. Test: hwuiunit passes Change-Id: Ib5d03104a08bbac9a4ec67a1bfc0db2b35d6700f
2019-02-21Revert "Enable CCPR in Ganesh"Christopher Dalton
This reverts commit 131654943de33392d35bb4a9686f5feb33b71a0f. Reason for revert: b/124049413 Change-Id: Iba0cf734ba8d6a16a1ee2930b162760e59a76444
2019-01-09Enable CCPR in GaneshChris Dalton
Test: m, flashed, booted Change-Id: I5568d9f0748598926eb5687e9c0c0fb40b880154
2019-01-08Change formula for font cache sizeStan Iliev
Set font cache size to one screen buffer size. For Pixel 2 XL this increased the texture size from 3670016 to 4194304. Skia can allocate up to 4 textures of that size. Test: UiBenchJankTests#testInflatingEmojiListViewFling Bug: 121157706 Change-Id: I7af1f184c6dbc10b45a8ef80a04200d518fbaa0e
2018-09-05Reland "TextureView Vulkan support and optimized OpenGL draw"Stan Iliev
Fix an issue with incorrect texture matrix, when there is 90/270 rotation. This happened, because after refactoring SkImage has buffer width/height, instead of layer width/height. This reverts commit a683eb3945320f592f58705c3c31b3c044f4bd72. Bug: 113673613 Test: Ran TextureView CTS and lensblur in camera app Change-Id: If3bcf9cd5195de09fd67a753708568a8e3ca3a9a
2018-09-04Add cache validation to ensure the validityYichi Chen
Create cache identity from GL_VERSION and store in ShaderCache. In the next time ShaderCache is restored from disk, compare the cache identity to ensure its validity. If GL_VERSION changes in between, flush out entire FileBlobCache and start from an empty one. Bug: b/71800782 Test: Wrote a new unit test to save and restore ShaderCache Test: hwui_unit_tests Change-Id: Ie573dc4f18733eee090725be30445d879765231b
2018-08-30Revert "TextureView Vulkan support and optimized OpenGL draw"John Reck
This reverts commit c8e22a653297837da9a80b0ba65f6854c8986c96. Reason for revert: broke camera, b/113555199 Bug: 113555199 Change-Id: Iae9b462694d5de0cd99427afead63b567fb4d71d
2018-08-29TextureView Vulkan support and optimized OpenGL drawStan Iliev
Render TextureView as hardware bitmaps, instead of GL textures. Cache SkImage for each observed GraphicBuffer, which is faster even for GL. Implement C++ SurfaceTexture, which allows Java SurfaceTexture to be used with Vulkan HWUI render thread and application GL. threads. Delete GLLayer and VkLayer classes and texture code from old HWUI pipeline. Test: Ran skiagl and skiavk pipeline with a TextureView app. Test: TextureView CTS tests pass for GL pipeline. Test: Ran Android NDK Native codec sample app. Change-Id: Idc94f864ce2d34fd6ceff4be4fc7d3327e99879c
2018-07-03Fix path rendering issuesStan Iliev
Fix remaining battery icon. Disable CCPR, which seems to have caused a regression. Test: Ran SystemUI and battery icon is drawn white. Bug: skbug.com/8127 Change-Id: Ic82bce14b760a8889ea2261c44b2631dc755288f
2018-04-17Merge changes Ie7b336ea,I36a8cb45John Reck
* changes: Remove Properties::isSkiaPipeline (3/!?) So long OpenGLPipeline & OpenGLReadback (2/??)
2018-04-12Remove Properties::isSkiaPipeline (3/!?)John Reck
Test: hwuiunit & CtsUiRenderingTestCases pass Change-Id: Ie7b336eacdd1b8660e09653c64eb6ea0a7b4a258
2018-04-12Unpin bitmaps but don't purge all scratch resources.Derek Sollenberger
This is a partial revert of b1f27aae89a9da9fbf3cb15a47f1a401db5a7974. Test: hwui_unit_tests Bug: 77654081 Change-Id: I5a58c156a280edfe3e9973ac3a8a30c97a2cff8b
2018-04-03Free up all scratch resources when the app's UI is hiddenDerek Sollenberger
Bug: 73808481 Test: hwui_unit_tests Change-Id: I9f191c776a936c1be40702ff0924c7ad054526d5
2018-04-02Print detailed memory usage of Skia for dumpsys gfxinfoDerek Sollenberger
Bug: 74435803 Test: adb shell dumpsys gfxinfo [package_name] Change-Id: I1f2bcab500fb47c5e0b50c7459d4a876b063916b
2017-12-11Update GrContext creation calls to use sk_spGreg Daniel
Test: manual testing Change-Id: I68d8706ffa7bc7c6622ea0b8c45d7297a131f6bf
2017-11-29Enable Skia shader cacheStan Iliev
Enable Skia shader cache after fix for image and text drawing issues were landed in Skia. Test: Ran Hangouts, Settings, CNN, Drive, GMail, Calendar, Clock Test: Maps, Docs, Play store, YouTube apps. Change-Id: I94cd07e95b704bc164894aa8b8c63f49ded198f5
2017-11-14Disable skia shader cacheStan Iliev
Disable skia shader cache, which is causing image rendering issues. Test: Ran CNN app and images are OK. Bug: 69264347 Change-Id: Ie81f3398074f28ac1670333f1fd3c95267b2beb3
2017-11-08Implement SkSL cacheStan Iliev
Implement SkSL cache by reusing code and logic from egl_cache_t. Test: Improves startup times for gmail by 15ms and 10ms for calc app. Bug: 66740665 Change-Id: I9ba479c649ba97a2c29a48d40579ba001264c957
2017-11-03Format the world (or just HWUI)John Reck
Test: No code changes, just ran through clang-format Change-Id: Id23aa4ec7eebc0446fe3a30260f33e7fd455bb8c
2017-09-08Enable multi-threading of cpu intensive tasks when using Skia pipelinesDerek Sollenberger
Test: CtsUiRenderingTestCases Change-Id: Ifa36371f55d3f2d78faf0a23fb283c904ff1af5f
2017-08-09Disable VD shared atlas surfaceStan Iliev
Using a shared atlas surface is causing a variance in AA pixels when drawing the same content. This is causing some CTS tests in CtsPreference2TestCases to fail because of up to RGB(1,1,1) difference in AA pixels in screenshots of a recreated activity. Another effect is reducing memory usage ("GL mtrack" down by 10MB for clock app). Test: Ran CtsPreference2TestCases tests. Bug: 64487466 Change-Id: I1e5a547285c885136b6885d129d566d5b0c2ed76
2017-07-18Cache VectorDrawables in an atlasStan Iliev
Optimize VectorDrawables for Skia pipeline: draw small VectorDrawables in a GPU atlas instead of seprate offscreen buffers. This implementation is using CacheManger and allows for the atlas to be released if there is a memory pressure. Test: A new unit test for VectorDrawableAtlas is passing. Systrace shows 0.5ms faster DrawFrame for fling in Settings app main screen. Change-Id: Ide3884eefae777e1547f1dfdb67b807185839fb4
2017-06-06Implement CacheManager for the Skia pipelines.Derek Sollenberger
The core of the implementation is complete and provides heuristic cache sizing based on the size of the surface being used. This CL will also be used to add the following features in the future... 1) Support Vulkan pipeline reporting on the size of the surface. 2) Complete the VectorDrawableAtlas stub code 3) Automatic purging of stale resources for low memory devices. Test: hwui_unit_tests (new test added) and CtsUiRendering Bug: 62260637 Change-Id: Ib85159cca28b646fe249f2190b07f1b7e0f50d8f