meson: Add build option to specify default shader disk cache max-size
Added an optional 'shader-cache-max-size' build option to meson, which sets default value of max disk cache size for compiled GLSL programs. Can be overriden by 'MESA_GLSL_CACHE_MAX_SIZE' environment variable. Syntax is the same as environment variable has: a number optionally followed by K, M, G to specify a size in kilobytes, megabytes, or gigabytes. By default, gigabytes will be assumed. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3572 Signed-off-by: Yevhenii Kharchenko <yevhenii.kharchenko@globallogic.com> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: John Bates <jbates@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7217>
This commit is contained in:
parent
0546ceba16
commit
361d143f94
|
@ -937,6 +937,13 @@ if _shader_cache != 'disabled'
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if with_shader_cache
|
||||||
|
shader_cache_max_size = get_option('shader-cache-max-size')
|
||||||
|
if shader_cache_max_size != ''
|
||||||
|
pre_args += '-DMESA_GLSL_CACHE_MAX_SIZE="@0@"'.format(shader_cache_max_size)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
# Check for GCC style builtins
|
# Check for GCC style builtins
|
||||||
foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', 'ffs',
|
foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', 'ffs',
|
||||||
'ffsll', 'popcount', 'popcountll', 'unreachable']
|
'ffsll', 'popcount', 'popcountll', 'unreachable']
|
||||||
|
|
|
@ -194,6 +194,17 @@ option(
|
||||||
value : true,
|
value : true,
|
||||||
description : 'If set to false, the feature is only activated when environment variable MESA_GLSL_CACHE_DISABLE is set to false',
|
description : 'If set to false, the feature is only activated when environment variable MESA_GLSL_CACHE_DISABLE is set to false',
|
||||||
)
|
)
|
||||||
|
option(
|
||||||
|
'shader-cache-max-size',
|
||||||
|
type : 'string',
|
||||||
|
value : '',
|
||||||
|
description : 'Default value for MESA_GLSL_CACHE_MAX_SIZE enviroment variable.
|
||||||
|
If set, determines the maximum size of the on-disk cache of compiled
|
||||||
|
GLSL programs, can be overriden by enviroment variable if needed. Should be set to a number optionally followed by
|
||||||
|
``K``, ``M``, or ``G`` to specify a size in kilobytes, megabytes, or
|
||||||
|
gigabytes. By default, gigabytes will be assumed. And if unset, a
|
||||||
|
maximum size of 1GB will be used.'
|
||||||
|
)
|
||||||
option(
|
option(
|
||||||
'vulkan-icd-dir',
|
'vulkan-icd-dir',
|
||||||
type : 'string',
|
type : 'string',
|
||||||
|
|
|
@ -113,6 +113,13 @@ disk_cache_create(const char *gpu_name, const char *driver_id,
|
||||||
max_size = 0;
|
max_size = 0;
|
||||||
|
|
||||||
max_size_str = getenv("MESA_GLSL_CACHE_MAX_SIZE");
|
max_size_str = getenv("MESA_GLSL_CACHE_MAX_SIZE");
|
||||||
|
|
||||||
|
#ifdef MESA_GLSL_CACHE_MAX_SIZE
|
||||||
|
if( !max_size_str ) {
|
||||||
|
max_size_str = MESA_GLSL_CACHE_MAX_SIZE;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (max_size_str) {
|
if (max_size_str) {
|
||||||
char *end;
|
char *end;
|
||||||
max_size = strtoul(max_size_str, &end, 10);
|
max_size = strtoul(max_size_str, &end, 10);
|
||||||
|
|
Loading…
Reference in New Issue