Fix: Compositor: Unlinked group inputs are ignored

The new CPU compositor ignores group inputs that are unlinked. This
patch fixes that by considering all origin sockets in multi-function
procedures, be it an input or an output.
This commit is contained in:
Omar Emara
2024-12-02 18:52:44 +02:00
parent c2b1b84094
commit 6879d924eb

View File

@@ -172,14 +172,17 @@ Vector<mf::Variable *> MultiFunctionProcedureOperation::get_input_variables(DNod
continue;
}
/* Get the output linked to the input. If it is null, that means the input is unlinked and we
* generate a constant variable for it. */
const DOutputSocket output = get_output_linked_to_input(input);
if (!output) {
input_variables.append(this->get_constant_input_variable(input));
/* The origin socket is an input, that means the input is unlinked and we generate a constant
* variable for it. */
const DSocket origin = get_input_origin_socket(input);
if (origin->is_input()) {
input_variables.append(this->get_constant_input_variable(DInputSocket(origin)));
continue;
}
/* Otherwise, the origin socket is an output, which means it is linked. */
const DOutputSocket output = DOutputSocket(origin);
/* If the origin node is part of the multi-function procedure operation, then the output has an
* existing variable for it. */
if (compile_unit_.contains(output.node())) {