System Information
Operating system: Windows-10-10.0.19044-SP0 64 Bits
Graphics card: GeForce GTX 1080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 456.71
Blender Version
Broken: version: 3.1.0 Alpha, branch: master, commit date: 2022-01-20 00:21, hash: rBb47a1867e8bc
Worked: n/a
Short description of error
Geometry nodes modifier will use the output attribute result for attribute evaluations further down the stack, instead of the original value.
Exact steps for others to reproduce the error
- Open test file below
- The GN modifier has two outputs A and B, and one input. Input A reads from an attribute "Attribute" (declared in mesh data) which defaults to 0. One output also writes back to "Attribute"
- Nodes replace "Attribute" value with 0.5, and the second output adds 2.0 to "Attribute" value.
Observed: B output value is 2.5, it uses the modified value of "Attribute" 0.5 instead of the original value of 0.0.
Expected: B should be using the original input of "Attribute", so output should be A==0.5, B==2.0.
The behavior also depends on ordering: If output B is moved to the top it gets evaluated before A and uses the original value as expected (this can be used a workaround if outputs can be sorted by dependency). The result of the modifier should not depend on the order of output attributes.

