Merge pull request #87096 from jsjtxietian/save-to-cache

Add `shader_cache_dir_valid` check to `_save_to_cache`
This commit is contained in:
Rémi Verschelde 2024-01-15 13:29:03 +01:00
commit bf7e19887e
No known key found for this signature in database
GPG key ID: C3336907360768E1
3 changed files with 5 additions and 1 deletions

View file

@ -611,6 +611,7 @@ void ShaderGLES3::_save_to_cache(Version *p_version) {
#ifdef WEB_ENABLED // not supported in webgl
return;
#else
ERR_FAIL_COND(!shader_cache_dir_valid);
#if !defined(ANDROID_ENABLED) && !defined(IOS_ENABLED)
if (RasterizerGLES3::is_gles_over_gl() && (glGetProgramBinary == NULL)) { // ARB_get_program_binary extension not available.
return;

View file

@ -209,7 +209,9 @@ protected:
_compile_specialization(s, p_variant, version, p_specialization);
version->variants[p_variant].insert(p_specialization, s);
spec = version->variants[p_variant].lookup_ptr(p_specialization);
_save_to_cache(version);
if (shader_cache_dir_valid) {
_save_to_cache(version);
}
}
} else if (spec->build_queued) {
// Still queued, wait

View file

@ -463,6 +463,7 @@ bool ShaderRD::_load_from_cache(Version *p_version, int p_group) {
}
void ShaderRD::_save_to_cache(Version *p_version, int p_group) {
ERR_FAIL_COND(!shader_cache_dir_valid);
String sha1 = _version_get_sha1(p_version);
String path = shader_cache_dir.path_join(name).path_join(group_sha256[p_group]).path_join(sha1) + ".cache";