summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-05-17 19:11:28 +0200
committerRémi Verschelde <rverschelde@gmail.com>2023-05-17 19:11:28 +0200
commit72e98fc8e414b3a66342b0e58e6baf6d39cad14f (patch)
treeee4f2886ac49596e15540f1d6eef48e954ea0adf
parent05cc281e4d1a7855b1229f06a96d90f06b4943a7 (diff)
parent14e9a61ebc75c06d42fc41e0eabc28a2e61f3691 (diff)
downloadredot-engine-72e98fc8e414b3a66342b0e58e6baf6d39cad14f.tar.gz
Merge pull request #77163 from ChibiDenDen/gles_verify_shader_cache
Verify that GLES3 cached shader load is successful
-rw-r--r--drivers/gles3/shader_gles3.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gles3/shader_gles3.cpp b/drivers/gles3/shader_gles3.cpp
index ded5793e8f..abf13fe5ab 100644
--- a/drivers/gles3/shader_gles3.cpp
+++ b/drivers/gles3/shader_gles3.cpp
@@ -564,6 +564,13 @@ bool ShaderGLES3::_load_from_cache(Version *p_version) {
specialization.id = glCreateProgram();
glProgramBinary(specialization.id, variant_format, variant_bytes.ptr(), variant_bytes.size());
+ GLint link_status = 0;
+ glGetProgramiv(specialization.id, GL_LINK_STATUS, &link_status);
+ if (link_status != GL_TRUE) {
+ WARN_PRINT_ONCE("Failed to load cached shader, recompiling.");
+ return false;
+ }
+
_get_uniform_locations(specialization, p_version);
specialization.ok = true;