util/disk_cache: hash timestamps into the cache keys
authorGrazvydas Ignotas <notasas@gmail.com>
Wed, 15 Mar 2017 23:09:29 +0000 (01:09 +0200)
committerTimothy Arceri <tarceri@itsqueeze.com>
Fri, 24 Mar 2017 00:20:09 +0000 (11:20 +1100)
commitfeb716239e1a318eb844fd3bcaca1ffd6903067c
treee3dd1a2d303a2e98efe307bd0aaae0fb14214359
parent7ceb1a4fa826910508ef6cb1d1b27529cd999340
util/disk_cache: hash timestamps into the cache keys

Instead of using a directory, hash the timestamps into the cache keys
themselves. Since there is no more timestamp directory, there is no more
need for deleting the cache of other mesa versions and we rely on
eviction to clean up the old cache entries. This solves the problem of
using several incarnations of disk_cache at the same time, where one
deletes a directory belonging to the other, like when both OpenGL and
gallium nine are used simultaneously (or several different mesa
installations).

v2: using additional blob instead of trying to clone sha1 state

v3: (Timothy Arceri) don't use an opaque data type to store
    timestamp.

V4: (Timothy Arceri) use blob to store driver keys just make sure
    to store null terminator for strings, and make sure blob is
    defined by disk_cache and not it's users.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100091
src/compiler/glsl/tests/cache_test.c
src/util/disk_cache.c