diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-07-01 10:07:43 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-07-01 10:07:43 +0200 |
commit | 446e7a7c228d19341392ec3b02417244fe7dfe03 (patch) | |
tree | 0c57efd94b8591d02996d9e67c14cc74370ca2b4 | |
parent | e78c4be511e8237b5cc7f16538a4c96a2a726fec (diff) | |
parent | 4bf9f3eb580fc06f13fc927f5c86cef805cbeb3e (diff) | |
download | redot-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.cpp | 6 |
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; |