Mesa (master): radv: use different builtin shader cache for 32bit
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Aug 22 21:35:06 UTC 2018
Module: Mesa
Branch: master
Commit: 9177074524f0b5a2b55726ec43ee64a14c4446d5
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9177074524f0b5a2b55726ec43ee64a14c4446d5
Author: Grazvydas Ignotas <notasas at gmail.com>
Date: Tue Aug 21 00:21:57 2018 +0300
radv: use different builtin shader cache for 32bit
Currently if 64bit and 32bit programs are used interchangeably, radv
will keep overwriting the cache. Use separate cache files to avoid
that.
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
---
src/amd/vulkan/radv_meta.c | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/src/amd/vulkan/radv_meta.c b/src/amd/vulkan/radv_meta.c
index b8d0a7cfc7..1ec8896afa 100644
--- a/src/amd/vulkan/radv_meta.c
+++ b/src/amd/vulkan/radv_meta.c
@@ -234,15 +234,12 @@ radv_builtin_cache_path(char *path)
const char *suffix2 = "/.cache/radv_builtin_shaders";
struct passwd pwd, *result;
char path2[PATH_MAX + 1]; /* PATH_MAX is not a real max,but suffices here. */
+ int ret;
if (xdg_cache_home) {
-
- if (strlen(xdg_cache_home) + strlen(suffix) > PATH_MAX)
- return false;
-
- strcpy(path, xdg_cache_home);
- strcat(path, suffix);
- return true;
+ ret = snprintf(path, PATH_MAX + 1, "%s%s%zd",
+ xdg_cache_home, suffix, sizeof(void *) * 8);
+ return ret > 0 && ret < PATH_MAX + 1;
}
getpwuid_r(getuid(), &pwd, path2, PATH_MAX - strlen(suffix2), &result);
@@ -253,8 +250,9 @@ radv_builtin_cache_path(char *path)
strcat(path, "/.cache");
mkdir(path, 0755);
- strcat(path, suffix);
- return true;
+ ret = snprintf(path, PATH_MAX + 1, "%s%s%zd",
+ pwd.pw_dir, suffix2, sizeof(void *) * 8);
+ return ret > 0 && ret < PATH_MAX + 1;
}
static bool
More information about the mesa-commit
mailing list