Skip to content

Commit 1d386b5

Browse files
committed
Merge pull request godotengine#109882 from precup/shader-cache-return
Treat missing variants as normal cache misses during shader cache lookup
2 parents 8e80127 + 277693b commit 1d386b5

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

servers/rendering/renderer_rd/shader_rd.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -463,9 +463,14 @@ bool ShaderRD::_load_from_cache(Version *p_version, int p_group) {
463463
for (uint32_t i = 0; i < variant_count; i++) {
464464
int variant_id = group_to_variant_map[p_group][i];
465465
uint32_t variant_size = f->get_32();
466-
if (!variants_enabled[variant_id] || variant_size == 0) {
466+
if (!variants_enabled[variant_id]) {
467467
continue;
468468
}
469+
if (variant_size == 0) {
470+
// A new variant has been requested, failing the entire load will generate it
471+
print_verbose(vformat("Shader cache miss for %s due to missing variant %d", name.path_join(group_sha256[p_group]).path_join(_version_get_sha1(p_version)), variant_id));
472+
return false;
473+
}
469474
Vector<uint8_t> variant_bytes;
470475
variant_bytes.resize(variant_size);
471476

0 commit comments

Comments
 (0)