Przeglądaj źródła

Prevent GLES2 bool uniforms from having a precision type set.

When setting the default precision type for uniforms (before compiling
the shader) prevent boolean uniforms from having one set. Booleans can't
have a precision type and on some Android devices this caused a
compilation failure.

Fixes #30317

(cherry picked from commit 10f1e0f63a53a9261101cbef28e1be2b7706a7a7)
Marcus Brummer 6 lat temu
rodzic
commit
055004c589
1 zmienionych plików z 1 dodań i 1 usunięć
  1. 1 1
      drivers/gles2/shader_compiler_gles2.cpp

+ 1 - 1
drivers/gles2/shader_compiler_gles2.cpp

@@ -318,7 +318,7 @@ String ShaderCompilerGLES2::_dump_node_code(SL::Node *p_node, int p_level, Gener
 
 				// use highp if no precision is specified to prevent different default values in fragment and vertex shader
 				SL::DataPrecision precision = E->get().precision;
-				if (precision == SL::PRECISION_DEFAULT) {
+				if (precision == SL::PRECISION_DEFAULT && E->get().type != SL::TYPE_BOOL) {
 					precision = SL::PRECISION_HIGHP;
 				}