summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuri Rubinsky <chaosus89@gmail.com>2024-06-30 22:09:45 +0300
committerYuri Rubinsky <chaosus89@gmail.com>2024-06-30 22:24:25 +0300
commit4bf9f3eb580fc06f13fc927f5c86cef805cbeb3e (patch)
tree29a4b2117c5dff2792013e068f149234acb2b768
parent4ab8fb809396fa38ba929fec97cfcb7193f1c44d (diff)
downloadredot-engine-4bf9f3eb580fc06f13fc927f5c86cef805cbeb3e.tar.gz
Prevent shader crash when doing invalid operation on boolean vector
-rw-r--r--servers/rendering/shader_language.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp
index 5b4931edec..5f1643229c 100644
--- a/servers/rendering/shader_language.cpp
+++ b/servers/rendering/shader_language.cpp
@@ -1547,7 +1547,7 @@ bool ShaderLanguage::_validate_operator(OperatorNode *p_op, DataType *r_ret_type
}
DataType na = p_op->arguments[0]->get_datatype();
- valid = na > TYPE_BOOL && na < TYPE_MAT2;
+ valid = na > TYPE_BVEC4 && na < TYPE_MAT2;
ret_type = na;
} break;
case OP_ADD:
@@ -1567,7 +1567,7 @@ bool ShaderLanguage::_validate_operator(OperatorNode *p_op, DataType *r_ret_type
}
if (na == nb) {
- valid = (na > TYPE_BOOL && na <= TYPE_MAT4);
+ valid = (na > TYPE_BVEC4 && na <= TYPE_MAT4);
ret_type = na;
} else if (na == TYPE_INT && nb == TYPE_IVEC2) {
valid = true;
@@ -1776,7 +1776,7 @@ bool ShaderLanguage::_validate_operator(OperatorNode *p_op, DataType *r_ret_type
DataType nb = p_op->arguments[1]->get_datatype();
if (na == nb) {
- valid = (na > TYPE_BOOL && na <= TYPE_MAT4);
+ valid = (na > TYPE_BVEC4 && na <= TYPE_MAT4);
ret_type = na;
} else if (na == TYPE_IVEC2 && nb == TYPE_INT) {
valid = true;