diff options
author | Grazvydas Ignotas <[email protected]> | 2017-03-16 01:09:27 +0200 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2017-03-21 11:15:52 +1100 |
commit | 529a767041c880f90c4465cb34a89430459c7fce (patch) | |
tree | b19c1fcbc36ffe1314155559c7fa52226c8c6e2d /src/util | |
parent | 021c87fa24afe849e51dd0249ec8e7b59e097062 (diff) |
util/disk_cache: use a helper to compute cache keys
This will allow to hash additional data into the cache keys or even
change the hashing algorithm easily, should we decide to do so.
v2: don't try to compute key (and crash) if cache is disabled
Signed-off-by: Grazvydas Ignotas <[email protected]>
Reviewed-by: Timothy Arceri <[email protected]>
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/disk_cache.c | 7 | ||||
-rw-r--r-- | src/util/disk_cache.h | 14 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c index d7e1996c41b..2478a1a4170 100644 --- a/src/util/disk_cache.c +++ b/src/util/disk_cache.c @@ -1063,4 +1063,11 @@ disk_cache_has_key(struct disk_cache *cache, const cache_key key) return memcmp(entry, key, CACHE_KEY_SIZE) == 0; } +void +disk_cache_compute_key(struct disk_cache *cache, const void *data, size_t size, + cache_key key) +{ + _mesa_sha1_compute(data, size, key); +} + #endif /* ENABLE_SHADER_CACHE */ diff --git a/src/util/disk_cache.h b/src/util/disk_cache.h index 3659b6dc358..e3663a65c51 100644 --- a/src/util/disk_cache.h +++ b/src/util/disk_cache.h @@ -178,6 +178,13 @@ disk_cache_put_key(struct disk_cache *cache, const cache_key key); bool disk_cache_has_key(struct disk_cache *cache, const cache_key key); +/** + * Compute the name \key from \data of given \size. + */ +void +disk_cache_compute_key(struct disk_cache *cache, const void *data, size_t size, + cache_key key); + #else static inline struct disk_cache * @@ -222,6 +229,13 @@ disk_cache_has_key(struct disk_cache *cache, const cache_key key) return false; } +void +disk_cache_compute_key(struct disk_cache *cache, const void *data, size_t size, + const cache_key key) +{ + return; +} + #endif /* ENABLE_SHADER_CACHE */ #ifdef __cplusplus |