diff options
-rw-r--r-- | src/compiler/glsl/tests/cache_test.c | 20 | ||||
-rw-r--r-- | src/gallium/drivers/nouveau/nouveau_screen.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.c | 2 | ||||
-rw-r--r-- | src/util/disk_cache.c | 8 | ||||
-rw-r--r-- | src/util/disk_cache.h | 6 |
5 files changed, 23 insertions, 15 deletions
diff --git a/src/compiler/glsl/tests/cache_test.c b/src/compiler/glsl/tests/cache_test.c index bec1d240e92..af1b66fb3d4 100644 --- a/src/compiler/glsl/tests/cache_test.c +++ b/src/compiler/glsl/tests/cache_test.c @@ -159,7 +159,7 @@ test_disk_cache_create(void) * MESA_GLSL_CACHE_DISABLE set, that disk_cache_create returns NULL. */ setenv("MESA_GLSL_CACHE_DISABLE", "1", 1); - cache = disk_cache_create("test", "make_check"); + cache = disk_cache_create("test", "make_check", 0); expect_null(cache, "disk_cache_create with MESA_GLSL_CACHE_DISABLE set"); unsetenv("MESA_GLSL_CACHE_DISABLE"); @@ -170,19 +170,19 @@ test_disk_cache_create(void) unsetenv("MESA_GLSL_CACHE_DIR"); unsetenv("XDG_CACHE_HOME"); - cache = disk_cache_create("test", "make_check"); + cache = disk_cache_create("test", "make_check", 0); expect_non_null(cache, "disk_cache_create with no environment variables"); disk_cache_destroy(cache); /* Test with XDG_CACHE_HOME set */ setenv("XDG_CACHE_HOME", CACHE_TEST_TMP "/xdg-cache-home", 1); - cache = disk_cache_create("test", "make_check"); + cache = disk_cache_create("test", "make_check", 0); expect_null(cache, "disk_cache_create with XDG_CACHE_HOME set with" "a non-existing parent directory"); mkdir(CACHE_TEST_TMP, 0755); - cache = disk_cache_create("test", "make_check"); + cache = disk_cache_create("test", "make_check", 0); expect_non_null(cache, "disk_cache_create with XDG_CACHE_HOME set"); check_directories_created(CACHE_TEST_TMP "/xdg-cache-home/mesa"); @@ -194,12 +194,12 @@ test_disk_cache_create(void) expect_equal(err, 0, "Removing " CACHE_TEST_TMP); setenv("MESA_GLSL_CACHE_DIR", CACHE_TEST_TMP "/mesa-glsl-cache-dir", 1); - cache = disk_cache_create("test", "make_check"); + cache = disk_cache_create("test", "make_check", 0); expect_null(cache, "disk_cache_create with MESA_GLSL_CACHE_DIR set with" "a non-existing parent directory"); mkdir(CACHE_TEST_TMP, 0755); - cache = disk_cache_create("test", "make_check"); + cache = disk_cache_create("test", "make_check", 0); expect_non_null(cache, "disk_cache_create with MESA_GLSL_CACHE_DIR set"); check_directories_created(CACHE_TEST_TMP "/mesa-glsl-cache-dir/mesa"); @@ -256,7 +256,7 @@ test_put_and_get(void) uint8_t one_KB_key[20], one_MB_key[20]; int count; - cache = disk_cache_create("test", "make_check"); + cache = disk_cache_create("test", "make_check", 0); disk_cache_compute_key(cache, blob, sizeof(blob), blob_key); @@ -298,7 +298,7 @@ test_put_and_get(void) disk_cache_destroy(cache); setenv("MESA_GLSL_CACHE_MAX_SIZE", "1K", 1); - cache = disk_cache_create("test", "make_check"); + cache = disk_cache_create("test", "make_check", 0); one_KB = calloc(1, 1024); @@ -363,7 +363,7 @@ test_put_and_get(void) disk_cache_destroy(cache); setenv("MESA_GLSL_CACHE_MAX_SIZE", "1M", 1); - cache = disk_cache_create("test", "make_check"); + cache = disk_cache_create("test", "make_check", 0); disk_cache_put(cache, blob_key, blob, sizeof(blob)); disk_cache_put(cache, string_key, string, sizeof(string)); @@ -438,7 +438,7 @@ test_put_key_and_get_key(void) { 0, 1, 42, 43, 44, 45, 46, 47, 48, 49, 50, 55, 52, 53, 54, 55, 56, 57, 58, 59}; - cache = disk_cache_create("test", "make_check"); + cache = disk_cache_create("test", "make_check", 0); /* First test that disk_cache_has_key returns false before disk_cache_put_key */ result = disk_cache_has_key(cache, key_a); diff --git a/src/gallium/drivers/nouveau/nouveau_screen.c b/src/gallium/drivers/nouveau/nouveau_screen.c index 15cb965453a..13b76d76816 100644 --- a/src/gallium/drivers/nouveau/nouveau_screen.c +++ b/src/gallium/drivers/nouveau/nouveau_screen.c @@ -158,7 +158,7 @@ nouveau_disk_cache_create(struct nouveau_screen *screen) if (res != -1) { screen->disk_shader_cache = disk_cache_create(nouveau_screen_get_name(&screen->base), - timestamp_str); + timestamp_str, 0); free(timestamp_str); } } diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c index 38a92190f0e..10e9a294fbe 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.c +++ b/src/gallium/drivers/radeon/r600_pipe_common.c @@ -868,7 +868,7 @@ static void r600_disk_cache_create(struct r600_common_screen *rscreen) if (res != -1) { rscreen->disk_shader_cache = disk_cache_create(r600_get_chip_name(rscreen), - timestamp_str); + timestamp_str, 0); free(timestamp_str); } } diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c index cf5d518f096..138d7ec174f 100644 --- a/src/util/disk_cache.c +++ b/src/util/disk_cache.c @@ -161,7 +161,8 @@ concatenate_and_mkdir(void *ctx, const char *path, const char *name) } struct disk_cache * -disk_cache_create(const char *gpu_name, const char *timestamp) +disk_cache_create(const char *gpu_name, const char *timestamp, + uint64_t driver_flags) { void *local; struct disk_cache *cache = NULL; @@ -356,6 +357,9 @@ disk_cache_create(const char *gpu_name, const char *timestamp) size_t ptr_size_size = sizeof(ptr_size); cache->driver_keys_blob_size += ptr_size_size; + size_t driver_flags_size = sizeof(driver_flags); + cache->driver_keys_blob_size += driver_flags_size; + cache->driver_keys_blob = ralloc_size(cache, cache->driver_keys_blob_size); if (!cache->driver_keys_blob) @@ -365,6 +369,8 @@ disk_cache_create(const char *gpu_name, const char *timestamp) memcpy(cache->driver_keys_blob + ts_size, gpu_name, gpu_name_size); memcpy(cache->driver_keys_blob + ts_size + gpu_name_size, &ptr_size, ptr_size_size); + memcpy(cache->driver_keys_blob + ts_size + gpu_name_size + ptr_size_size, + &driver_flags, driver_flags_size); /* Seed our rand function */ s_rand_xorshift128plus(cache->seed_xorshift128plus, true); diff --git a/src/util/disk_cache.h b/src/util/disk_cache.h index 2bb1cf537d0..72f44638a55 100644 --- a/src/util/disk_cache.h +++ b/src/util/disk_cache.h @@ -93,7 +93,8 @@ disk_cache_get_function_timestamp(void *ptr, uint32_t* timestamp) * assistance in computing SHA-1 signatures. */ struct disk_cache * -disk_cache_create(const char *gpu_name, const char *timestamp); +disk_cache_create(const char *gpu_name, const char *timestamp, + uint64_t driver_flags); /** * Destroy a cache object, (freeing all associated resources). @@ -171,7 +172,8 @@ disk_cache_compute_key(struct disk_cache *cache, const void *data, size_t size, #else static inline struct disk_cache * -disk_cache_create(const char *gpu_name, const char *timestamp) +disk_cache_create(const char *gpu_name, const char *timestamp, + uint64_t driver_flags) { return NULL; } |