Page MenuHome

Geometry Nodes: Copied reroutes revert to default type, prompting "Node group cycles" error
Closed, ResolvedPublic

Description

System Information
Operating system: Windows-8.1 64 Bits
Graphics card: NVIDIA GeForce GTX 1060 6GB/PCIe/SSE2 4.5.0 NVIDIA 466.47

Blender Version
Broken: 3.0.0 Alpha, branch: master, commit date: 2021-07-13 21:59, hash: ae379714e4f1
Worked: --

Short description of error
It's a visual sore rather than an app-breaking bug, but duplicating reroutes without an input link cause duplicate to lose their original type and throw ERROR (bke.modifier): C:Users\blender\git\blender-vdev\blender.git\source\blender\blendkernel\intern\modifier.c:457', Modifier: '(name)', Node group has cycles.

Edit: Video taken with build 83883ae66ad3.

Exact steps for others to reproduce the error

  1. Create a node tree with a reroute using an input link other than VALUE.
  2. Select it and the output node and duplicate/copy and paste them both.

Event Timeline

Can not reproduce with the mentioned node tree (3.0.0, rBff01070b5ca).

Can you please check with fresh builds?(https://builder.blender.org/download/daily)

Crowe (crowe) updated the task description. (Show Details)EditedJul 20 2021, 4:54 PM

Still experiencing it on build "3.0.0 Alpha, branch: master, commit date: 2021-07-18 23:24, hash: 83883ae66ad3, type: release", just installed and with factory reset for workspace and preferences for good measure. It's no longer throwing an error in the terminal, just losing the reroute type.

The node tree doesn't matter as long the input after the reroute isn't connected to a value input.

I edited the report to include a recording of my latest test.

Original issue is resolved with the commit rBab101d444d30: Fix T89881: ignore unavailable sockets when searching for link cycles

just losing the reroute type.

Could be an intentional behavior (will check the code to find if this is intentional or not)

And thank you for the video :)

That's great!

Could be an intentional behavior (will check the code to find if this is intentional or not)

I suspect it's not intentional. It's not only unexpected to get an incomplete copy but reroutes are acting up a bit and the red highlighting for incompatible links just makes it obvious in Geometry Nodes. Here's another fun reroute type glitch:

Existing reroutes love to become colors. Getting this during regular usage is a hit and miss, but a sure way to trigger it is to select the the reroute victim before adding a new one before it.
Thankfully (or not?) the color type reroutes invalidating the geometry connection still deliver the geometry data to the Group Output.

Here's another fun reroute type glitch:

@Crowe (crowe) , Already a similar issue has been reported: T87536

prompting "Node group cycles" error

Can you please check if the original reported issue is resolved?

Can you please check if the original reported issue is resolved?

Tested on latest build, fafd21b14c23. It's partially solved, with the error gone but reroutes still losing type (and outbound connections links being highlighted in red in the GUI) when duplicating.

Pratik Borhade (PratikPB2123) changed the task status from Needs Triage to Needs Information from Developers.Jul 26 2021, 4:12 AM

but reroutes still losing type (and outbound connections links being highlighted in red in the GUI) when duplicating.

May be developers can answer if this is expected or a issue

If I recall correctly, the reroute type is determined by the nodes before it. So in the example since there are no nodes before it, it just defaults to the default type. The reason that it doesn't check the other way is that there could be ambiguity, e.g. two links going out of the reroute where one is connected to a vector socket and the other to a color socket.

Although it is technically possible to do special casing where if the reroute had no input link and exactly one output link, the type is determined by the other socket of that one link, that seems like a lot of added complexity for something that happens only in a few cases. A reroute without an input link is also not very useful.

So I don't think this should be considered a bug, but I would wait for the opinion of some UI developers.