diff options
author | Timothy Arceri <[email protected]> | 2016-09-28 08:55:02 +1000 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2016-09-28 09:16:31 +1000 |
commit | 87ab26b2ab35a29d446ae66f1795d40c184c0739 (patch) | |
tree | 18db7f28e1cb85d6338c91f5df6087a587d70fd8 /src/compiler/Makefile.sources | |
parent | 44bcf1ffcced04fd7f2b537a922ffa85dd1418e2 (diff) |
glsl: Add initial functions to implement an on-disk cache
This code provides for an on-disk cache of objects. Objects are stored
and retrieved via names that are arbitrary 20-byte sequences,
(intended to be SHA-1 hashes of something identifying for the
content). The directory used for the cache can be specified by means
of environment variables in the following priority order:
$MESA_GLSL_CACHE_DIR
$XDG_CACHE_HOME/mesa
<user-home-directory>/.cache/mesa
By default the cache will be limited to a maximum size of 1GB. The
environment variable:
$MESA_GLSL_CACHE_MAX_SIZE
can be set (at the time of GL context creation) to choose some other
size. This variable is a number that can optionally be followed by
'K', 'M', or 'G' to select a size in kilobytes, megabytes, or
gigabytes. By default, an unadorned value will be interpreted as
gigabytes.
The cache will be entirely disabled at runtime if the variable
MESA_GLSL_CACHE_DISABLE is set at the time of GL context creation.
Many thanks to Kristian Høgsberg <[email protected]> for the initial
implementation of code that led to this patch. In particular, the idea
of using an mmapped file, (indexed by a portion of the SHA-1), for the
efficent implementation of cache_has_key was entirely his
idea. Kristian also provided some very helpful advice in discussions
regarding various race conditions to be avoided in this code.
Signed-off-by: Timothy Arceri <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/compiler/Makefile.sources')
-rw-r--r-- | src/compiler/Makefile.sources | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/compiler/Makefile.sources b/src/compiler/Makefile.sources index f5b4f9c0b98..712b33aa74c 100644 --- a/src/compiler/Makefile.sources +++ b/src/compiler/Makefile.sources @@ -136,6 +136,10 @@ LIBGLSL_FILES = \ glsl/s_expression.cpp \ glsl/s_expression.h +LIBGLSL_SHADER_CACHE_FILES = \ + glsl/cache.c \ + glsl/cache.h + # glsl_compiler GLSL_COMPILER_CXX_FILES = \ |