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 10f1e0f63a)
This commit is contained in:
Marcus Brummer 2019-07-05 00:26:25 +02:00 committed by Rémi Verschelde
parent c441a2921d
commit 055004c589
1 changed files with 1 additions and 1 deletions

View File

@ -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 // use highp if no precision is specified to prevent different default values in fragment and vertex shader
SL::DataPrecision precision = E->get().precision; 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; precision = SL::PRECISION_HIGHP;
} }