[Mesa-dev] [PATCH 0/7] EGL_ANDROID_blob_cache
Tapani Pälli
tapani.palli at intel.com
Wed Jan 17 16:10:10 UTC 2018
On 17.01.2018 13:34, Nicolai Hähnle wrote:
> On 15.01.2018 13:31, Tapani Pälli wrote:
>> Hello;
>>
>> Here's a refactored series of EGL_ANDROID_blob_cache. Now cache
>> functions are stored in disk_cache struct and the functionality
>> called within existing disk_cache put/get code. Problems/errors
>> that existed with earlier series are gone.
>>
>> On Android cache index file is created to MESA_GLSL_CACHE_DIR
>> and blobs are generated under '/data/user_de/0' in application
>> specific paths:
>
> Can't we let the "cache index" be managed by the ANDROID_blob_cache as
> well? That seems to me more in the spirit of what that extension is
> about, and would avoid polluting stuff like /sdcard.
>
> The cache index file is used for two purposes:
>
> - Keeping track of the size of the cache. This use is obsoleted enterely
> by ANDROID_blob_cache.
>
> - Keeping track of keys where only their presence is relevant and no
> data is associated. These could easily be treated as empty (0 byte
> sized) blobs.
I guess it could be possible, for every app we would create index when
disk_cache gets created. I guess only issue could be that Android might
go and remove the index from cache when it decides to resize it and then
we would loose it even though there would be items in cache. I can try
how this would work.
> Cheers,
> Nicolai
>
>
>
>>
>> androidia_64:/ # find /data/user_de/0/ -name *shader*
>> /data/user_de/0/com.android.settings/code_cache/com.android.opengl.shaders_cache
>>
>> /data/user_de/0/com.android.gallery3d/code_cache/com.android.opengl.shaders_cache
>>
>> /data/user_de/0/com.android.systemui/code_cache/com.android.opengl.shaders_cache
>>
>> /data/user_de/0/com.rovio.angrybirdsspace.ads/code_cache/com.android.opengl.shaders_cache
>>
>>
>> (this part is managed by Android but may be interesting to know).
>>
>> Also SurfaceFlinger manages its own cache as seen in the log output:
>> 01-15 07:40:26.329 2129 2129 D SurfaceFlinger: shader cache
>> generated - 24 shaders in 57.687504 ms
>>
>> I'm not sure if /sdcard is sane default but I've tried everything
>> else (/cache, /data/cache) and failed because of permission errors.
>>
>> Thanks;
>>
>> Tapani Pälli (7):
>> dri: add interface for EGL_ANDROID_blob_cache extension
>> egl: add support for EGL_ANDROID_blob_cache
>> disk cache: add callback functionality
>> disk cache: support setting MESA_GLSL_CACHE_DIR at compile time
>> i965: add __DRI2_BLOB support and set cache functions
>> android: ignore MESA_GLSL_CACHE_DISABLE setting
>> android: set '/sdcard/' as MESA_GLSL_CACHE_DIR by default
>>
>> Android.common.mk | 1 +
>> include/GL/internal/dri_interface.h | 26 +++++++++++++-
>> src/egl/drivers/dri2/egl_dri2.c | 43
>> ++++++++++++++++++++++++
>> src/egl/drivers/dri2/egl_dri2.h | 4 +++
>> src/egl/main/eglapi.c | 29 ++++++++++++++++
>> src/egl/main/eglapi.h | 4 +++
>> src/egl/main/egldisplay.h | 3 ++
>> src/egl/main/eglentrypoint.h | 1 +
>> src/mesa/drivers/dri/i965/brw_disk_cache.c | 2 ++
>> src/mesa/drivers/dri/i965/intel_screen.c | 21 ++++++++++++
>> src/util/disk_cache.c | 54
>> +++++++++++++++++++++++++++++-
>> src/util/disk_cache.h | 19 +++++++++++
>> 12 files changed, 205 insertions(+), 2 deletions(-)
>>
>
>
More information about the mesa-dev
mailing list