瀏覽代碼

Verify gles3 cached shader load successful

ChibiDenDen 2 年之前
父節點
當前提交
14e9a61ebc
共有 1 個文件被更改,包括 7 次插入0 次删除
  1. 7 0
      drivers/gles3/shader_gles3.cpp

+ 7 - 0
drivers/gles3/shader_gles3.cpp

@@ -564,6 +564,13 @@ bool ShaderGLES3::_load_from_cache(Version *p_version) {
 			specialization.id = glCreateProgram();
 			specialization.id = glCreateProgram();
 			glProgramBinary(specialization.id, variant_format, variant_bytes.ptr(), variant_bytes.size());
 			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);
 			_get_uniform_locations(specialization, p_version);
 
 
 			specialization.ok = true;
 			specialization.ok = true;