mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2024-11-27 09:31:03 +00:00
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
|
||||
|
||||
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
|
||||
foreach b : ['bswap32', 'bswap64', 'clz', 'clzll', 'ctz', 'expect', 'ffs',
|
||||
'ffsll', 'popcount', 'popcountll', 'unreachable']
|
||||
|
@ -194,6 +194,17 @@ option(
|
||||
value : true,
|
||||
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(
|
||||
'vulkan-icd-dir',
|
||||
type : 'string',
|
||||
|
@ -113,6 +113,13 @@ disk_cache_create(const char *gpu_name, const char *driver_id,
|
||||
max_size = 0;
|
||||
|
||||
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) {
|
||||
char *end;
|
||||
max_size = strtoul(max_size_str, &end, 10);
|
||||
|
Loading…
Reference in New Issue
Block a user