mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
Merge pull request #110174 from clayjohn/RD-shader-cache
Avoid attempting to load from shader cache when both the user-dir and res-dir are invalid
This commit is contained in:
commit
b919b19f48
2 changed files with 7 additions and 3 deletions
|
@ -437,7 +437,7 @@ bool ShaderRD::_load_from_cache(Version *p_version, int p_group) {
|
||||||
f = FileAccess::open(_get_cache_file_path(p_version, p_group, api_safe_name, true), FileAccess::READ);
|
f = FileAccess::open(_get_cache_file_path(p_version, p_group, api_safe_name, true), FileAccess::READ);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (f.is_null()) {
|
if (f.is_null() && shader_cache_res_dir_valid) {
|
||||||
f = FileAccess::open(_get_cache_file_path(p_version, p_group, api_safe_name, false), FileAccess::READ);
|
f = FileAccess::open(_get_cache_file_path(p_version, p_group, api_safe_name, false), FileAccess::READ);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -539,9 +539,11 @@ void ShaderRD::_compile_version_start(Version *p_version, int p_group) {
|
||||||
p_version->dirty = false;
|
p_version->dirty = false;
|
||||||
|
|
||||||
#if ENABLE_SHADER_CACHE
|
#if ENABLE_SHADER_CACHE
|
||||||
|
if (shader_cache_user_dir_valid || shader_cache_res_dir_valid) {
|
||||||
if (_load_from_cache(p_version, p_group)) {
|
if (_load_from_cache(p_version, p_group)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
CompileData compile_data;
|
CompileData compile_data;
|
||||||
|
@ -823,6 +825,7 @@ void ShaderRD::initialize(const Vector<String> &p_variant_defines, const String
|
||||||
|
|
||||||
void ShaderRD::_initialize_cache() {
|
void ShaderRD::_initialize_cache() {
|
||||||
shader_cache_user_dir_valid = !shader_cache_user_dir.is_empty();
|
shader_cache_user_dir_valid = !shader_cache_user_dir.is_empty();
|
||||||
|
shader_cache_res_dir_valid = !shader_cache_res_dir.is_empty();
|
||||||
if (!shader_cache_user_dir_valid) {
|
if (!shader_cache_user_dir_valid) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -142,6 +142,7 @@ private:
|
||||||
static bool shader_cache_save_compressed_zstd;
|
static bool shader_cache_save_compressed_zstd;
|
||||||
static bool shader_cache_save_debug;
|
static bool shader_cache_save_debug;
|
||||||
bool shader_cache_user_dir_valid = false;
|
bool shader_cache_user_dir_valid = false;
|
||||||
|
bool shader_cache_res_dir_valid = false;
|
||||||
|
|
||||||
enum StageType {
|
enum StageType {
|
||||||
STAGE_TYPE_VERTEX,
|
STAGE_TYPE_VERTEX,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue