Merge pull request #119375 from Chaosus/shader_fix_material_params

Fix shader crash when using parameter name identical to uniform name
This commit is contained in:
Thaddeus Crews
2026-05-14 09:06:51 -05:00
+20 -2
View File
@@ -929,7 +929,16 @@ String ShaderCompiler::_dump_node_code(const SL::Node *p_node, int p_level, Gene
if (p_default_actions.renames.has(vnode->name)) {
code = p_default_actions.renames[vnode->name];
} else {
if (shader->uniforms.has(vnode->name)) {
bool param_found = false;
if (function) {
for (const SL::FunctionNode::Argument &argument : function->arguments) {
if (argument.name == vnode->name) {
param_found = true;
break;
}
}
}
if (!param_found && shader->uniforms.has(vnode->name)) {
//its a uniform!
const ShaderLanguage::ShaderNode::Uniform &u = shader->uniforms[vnode->name];
if (u.is_texture()) {
@@ -1054,7 +1063,16 @@ String ShaderCompiler::_dump_node_code(const SL::Node *p_node, int p_level, Gene
if (p_default_actions.renames.has(anode->name)) {
code = p_default_actions.renames[anode->name];
} else {
if (shader->uniforms.has(anode->name)) {
bool param_found = false;
if (function) {
for (const SL::FunctionNode::Argument &argument : function->arguments) {
if (argument.name == anode->name) {
param_found = true;
break;
}
}
}
if (!param_found && shader->uniforms.has(anode->name)) {
//its a uniform!
const ShaderLanguage::ShaderNode::Uniform &u = shader->uniforms[anode->name];
if (u.is_texture()) {