summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-07-01 10:07:43 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-07-01 10:07:43 +0200
commit446e7a7c228d19341392ec3b02417244fe7dfe03 (patch)
tree0c57efd94b8591d02996d9e67c14cc74370ca2b4
parente78c4be511e8237b5cc7f16538a4c96a2a726fec (diff)
parent4bf9f3eb580fc06f13fc927f5c86cef805cbeb3e (diff)
downloadredot-engine-446e7a7c228d19341392ec3b02417244fe7dfe03.tar.gz
Merge pull request #93793 from Chaosus/shader_fix_bool_op_crash
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;