diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-05-17 19:11:28 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-05-17 19:11:28 +0200 |
commit | 72e98fc8e414b3a66342b0e58e6baf6d39cad14f (patch) | |
tree | ee4f2886ac49596e15540f1d6eef48e954ea0adf | |
parent | 05cc281e4d1a7855b1229f06a96d90f06b4943a7 (diff) | |
parent | 14e9a61ebc75c06d42fc41e0eabc28a2e61f3691 (diff) | |
download | redot-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.cpp | 7 |
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; |