diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/glsl/tests/cache_test.c | 5 | ||||
-rw-r--r-- | src/mesa/main/shaderapi.c | 5 | ||||
-rw-r--r-- | src/util/disk_cache.c | 4 | ||||
-rw-r--r-- | src/util/disk_cache.h | 42 |
4 files changed, 56 insertions, 0 deletions
diff --git a/src/compiler/glsl/tests/cache_test.c b/src/compiler/glsl/tests/cache_test.c index f53ef0de145..0ef05aacb26 100644 --- a/src/compiler/glsl/tests/cache_test.c +++ b/src/compiler/glsl/tests/cache_test.c @@ -37,6 +37,8 @@ bool error = false; +#ifdef ENABLE_SHADER_CACHE + static void expect_equal(uint64_t actual, uint64_t expected, const char *test) { @@ -378,10 +380,12 @@ test_put_key_and_get_key(void) disk_cache_destroy(cache); } +#endif /* ENABLE_SHADER_CACHE */ int main(void) { +#ifdef ENABLE_SHADER_CACHE int err; test_disk_cache_create(); @@ -392,6 +396,7 @@ main(void) err = rmrf_local(CACHE_TEST_TMP); expect_equal(err, 0, "Removing " CACHE_TEST_TMP " again"); +#endif /* ENABLE_SHADER_CACHE */ return error ? 1 : 0; } diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index 96a4ce08349..4c67f9564ab 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -1612,6 +1612,7 @@ _mesa_LinkProgram(GLuint programObj) "glLinkProgram")); } +#ifdef ENABLE_SHADER_CACHE /** * Generate a SHA-1 hash value string for given source string. */ @@ -1723,6 +1724,8 @@ read_shader(const gl_shader_stage stage, const char *source) return buffer; } +#endif /* ENABLE_SHADER_CACHE */ + /** * Called via glShaderSource() and glShaderSourceARB() API functions. * Basically, concatenate the source code strings into one long string @@ -1795,6 +1798,7 @@ _mesa_ShaderSource(GLuint shaderObj, GLsizei count, source[totalLength - 1] = '\0'; source[totalLength - 2] = '\0'; +#ifdef ENABLE_SHADER_CACHE /* Dump original shader source to MESA_SHADER_DUMP_PATH and replace * if corresponding entry found from MESA_SHADER_READ_PATH. */ @@ -1805,6 +1809,7 @@ _mesa_ShaderSource(GLuint shaderObj, GLsizei count, free(source); source = replacement; } +#endif /* ENABLE_SHADER_CACHE */ shader_source(sh, source); diff --git a/src/util/disk_cache.c b/src/util/disk_cache.c index 76bdfe8e8b6..6de608c2e4a 100644 --- a/src/util/disk_cache.c +++ b/src/util/disk_cache.c @@ -21,6 +21,8 @@ * IN THE SOFTWARE. */ +#ifdef ENABLE_SHADER_CACHE + #include <ctype.h> #include <string.h> #include <stdlib.h> @@ -705,3 +707,5 @@ disk_cache_has_key(struct disk_cache *cache, cache_key key) return memcmp(entry, key, CACHE_KEY_SIZE) == 0; } + +#endif /* ENABLE_SHADER_CACHE */ diff --git a/src/util/disk_cache.h b/src/util/disk_cache.h index 0b20665e970..7e9cb809b59 100644 --- a/src/util/disk_cache.h +++ b/src/util/disk_cache.h @@ -40,6 +40,8 @@ struct disk_cache; /* Provide inlined stub functions if the shader cache is disabled. */ +#ifdef ENABLE_SHADER_CACHE + /** * Create a new cache object. * @@ -129,6 +131,46 @@ disk_cache_put_key(struct disk_cache *cache, cache_key key); bool disk_cache_has_key(struct disk_cache *cache, cache_key key); +#else + +static inline struct disk_cache * +disk_cache_create(void) +{ + return NULL; +} + +static inline void +disk_cache_destroy(struct disk_cache *cache) { + return; +} + +static inline void +disk_cache_put(struct disk_cache *cache, cache_key key, + const void *data, size_t size) +{ + return; +} + +static inline uint8_t * +disk_cache_get(struct disk_cache *cache, cache_key key, size_t *size) +{ + return NULL; +} + +static inline void +disk_cache_put_key(struct disk_cache *cache, cache_key key) +{ + return; +} + +static inline bool +disk_cache_has_key(struct disk_cache *cache, cache_key key) +{ + return false; +} + +#endif /* ENABLE_SHADER_CACHE */ + #ifdef __cplusplus } #endif |