Timestamp can be zero for example when Flatpak is used. In this case just disable the cache rather then segfaulting when incompatible cache items are loaded.
V2: actually return false when mtime is 0. --- src/amd/vulkan/radv_device.c | 4 ---- src/util/disk_cache.h | 8 ++++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index f9169d9d012..7d915c68aaa 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -61,10 +61,6 @@ radv_get_build_id(void *ptr, struct mesa_sha1 *ctx) } else #endif if (disk_cache_get_function_timestamp(ptr, ×tamp)) { - if (!timestamp) { - fprintf(stderr, "radv: The provided filesystem timestamp for the cache is bogus!\n"); - } - _mesa_sha1_update(ctx, ×tamp, sizeof(timestamp)); } else return false; diff --git a/src/util/disk_cache.h b/src/util/disk_cache.h index 962a26ffc8c..185e05f200e 100644 --- a/src/util/disk_cache.h +++ b/src/util/disk_cache.h @@ -101,7 +101,15 @@ disk_cache_get_function_timestamp(void *ptr, uint32_t* timestamp) if (stat(info.dli_fname, &st)) { return false; } + + if (!st.st_mtime) { + fprintf(stderr, "Mesa: The provided filesystem timestamp for the cache " + "is bogus! Disabling On-disk cache.\n"); + return false; + } + *timestamp = st.st_mtime; + return true; } -- 2.17.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev