Jacques Lucke
e726357962
Fix: Geometry Nodes: bad attribute propagation with multiple group outputs and warning node
...
The issue was that sometimes the group inputs of a node group were shuffled
around unexpectedly and thus inputs were passed to the wrong sockets.
The `or_socket_usages` function sorts the given span so that the key is more
likely to be reused, reducing the number of nodes inserted in the graph. The
issue was that `build_warning_node` passes `group_output_used_sockets_` into the
function the order of which is important. It thus should not be reordered.
The fix is to just never reorder the span passed to `or_socket_usages` but to
make a local copy instead which can be sorted without problems. Often this copy
is done already anyway when the span is inserted into
`graph_params.socket_usages_combination_cache` as `Vector`.
This fix also makes an assumption about `Map.lookup_or_add_cb` which was not
documented before. Namely it assumes that the key is moved into the map only
after the callback has been called. This behavior is now documented and there is
a unit test for it.
Pull Request: https://projects.blender.org/blender/blender/pulls/135528
2025-03-06 09:47:44 +01:00
..
2025-02-06 14:29:09 +01:00
2025-03-06 09:47:44 +01:00
2023-08-16 00:20:26 +10:00
2024-11-04 11:44:06 +01:00
2025-01-31 17:03:17 +01:00
2025-01-07 12:39:13 +01:00
2025-01-23 17:34:30 +01:00
2025-01-07 12:39:13 +01:00
2025-01-07 12:39:13 +01:00
2024-05-07 13:07:02 +10:00
2024-04-25 02:31:27 +02:00
2025-01-31 17:03:17 +01:00
2023-08-16 00:20:26 +10:00
2024-01-06 01:47:39 +01:00
2024-04-19 15:57:06 +10:00
2024-08-05 13:50:06 -04:00
2025-01-07 12:39:13 +01:00
2024-08-29 12:15:33 +02:00
2024-05-22 15:28:35 +02:00
2025-01-07 12:39:13 +01:00
2024-10-07 12:59:39 +02:00
2024-08-29 12:15:33 +02:00
2024-01-06 01:47:39 +01:00
2024-08-29 12:15:33 +02:00
2024-03-05 11:29:04 -05:00
2024-01-03 13:38:14 +01:00
2024-03-05 14:32:48 +01:00
2025-01-31 17:03:17 +01:00
2025-01-07 12:39:13 +01:00
2025-01-07 12:39:13 +01:00
2024-11-28 12:37:26 +01:00
2023-08-16 00:20:26 +10:00
2024-01-19 20:29:38 +01:00
2024-05-06 09:20:05 +10:00
2024-03-06 16:14:34 +01:00
2025-02-19 13:56:06 +01:00
2024-05-07 12:59:21 +10:00
2025-01-31 17:03:17 +01:00
2025-01-07 12:39:13 +01:00
2023-08-16 00:20:26 +10:00
2024-02-19 15:59:59 +01:00
2024-06-14 19:25:07 +02:00
2025-01-07 12:39:13 +01:00
2023-08-16 00:20:26 +10:00
2025-01-07 12:39:13 +01:00
2024-01-09 16:21:31 -05:00
2025-01-07 12:39:13 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2025-01-31 17:03:17 +01:00
2023-08-16 00:20:26 +10:00
2025-01-07 12:39:13 +01:00
2023-08-16 00:20:26 +10:00
2024-01-06 09:06:20 -05:00
2024-04-20 12:41:23 +10:00
2024-05-20 10:29:22 +10:00
2025-01-02 14:46:55 +11:00
2025-01-07 12:39:13 +01:00
2023-10-10 15:36:15 +02:00
2024-03-26 14:25:33 +01:00
2025-03-05 13:18:29 +11:00
2025-01-31 17:03:17 +01:00
2025-01-07 12:39:13 +01:00
2024-07-22 16:35:36 +02:00
2025-01-07 12:39:13 +01:00
2024-05-10 20:28:01 +02:00
2024-07-22 16:35:36 +02:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2025-01-31 17:03:17 +01:00
2023-08-16 00:20:26 +10:00
2024-04-23 16:09:45 +10:00
2023-12-27 12:34:49 -05:00
2024-02-02 19:55:06 +01:00
2024-02-19 15:59:59 +01:00
2024-02-02 19:55:06 +01:00
2025-01-31 17:03:17 +01:00
2023-08-16 00:20:26 +10:00
2025-01-07 12:39:13 +01:00
2025-01-07 12:39:13 +01:00
2025-01-07 12:39:13 +01:00
2025-01-31 17:03:17 +01:00
2023-08-16 00:20:26 +10:00
2024-11-13 13:39:49 +01:00
2024-03-17 09:52:32 +01:00
2024-08-29 19:34:22 +02:00
2025-03-06 10:33:21 +11:00
2025-01-31 17:03:17 +01:00
2025-01-07 12:39:13 +01:00
2024-08-29 12:15:33 +02:00
2023-08-16 09:51:37 +02:00
2025-01-07 12:39:13 +01:00
2025-01-07 12:39:13 +01:00
2025-01-08 11:31:43 +11:00
2023-08-16 00:20:26 +10:00
2024-03-05 11:29:04 -05:00
2023-08-16 00:20:26 +10:00
2024-07-12 15:59:56 +02:00
2024-02-28 22:22:21 +01:00
2025-01-31 17:03:17 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2024-04-23 16:09:45 +10:00
2024-10-01 15:43:06 +02:00
2024-10-10 03:17:15 +02:00
2025-01-07 12:39:13 +01:00
2025-03-06 09:47:44 +01:00
2024-01-09 18:05:12 +01:00
2025-01-07 12:39:13 +01:00
2025-01-31 17:03:17 +01:00
2025-01-07 12:39:13 +01:00
2025-01-07 12:39:13 +01:00
2025-01-31 17:03:17 +01:00
2024-06-28 12:16:56 +02:00
2025-01-07 12:39:13 +01:00
2023-08-16 00:20:26 +10:00
2025-01-07 12:39:13 +01:00
2025-01-21 18:05:56 +01:00
2025-01-07 12:39:13 +01:00
2025-01-08 11:31:43 +11:00
2025-01-31 17:03:17 +01:00
2023-08-16 00:20:26 +10:00
2025-01-07 12:39:13 +01:00
2024-09-22 17:39:54 +02:00
2024-11-25 16:03:33 +01:00
2025-01-07 12:39:13 +01:00
2025-01-07 12:39:13 +01:00
2025-02-06 14:29:09 +01:00
2023-08-16 00:20:26 +10:00
2024-01-09 18:05:12 +01:00
2023-11-20 09:39:13 +01:00
2024-06-06 19:26:40 +02:00
2023-08-16 00:20:26 +10:00
2025-01-07 12:39:13 +01:00
2025-01-07 12:39:13 +01:00
2024-01-09 18:05:12 +01:00
2025-01-07 12:39:13 +01:00
2025-01-07 12:39:13 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2025-01-27 18:38:14 +01:00
2024-09-16 13:06:16 +02:00
2025-01-07 12:39:13 +01:00
2025-01-07 12:39:13 +01:00
2025-01-07 12:39:13 +01:00
2025-01-07 12:39:13 +01:00
2024-05-07 13:07:02 +10:00
2025-01-06 18:07:03 +01:00
2024-08-16 17:20:19 +02:00
2025-01-07 12:39:13 +01:00
2025-01-07 12:39:13 +01:00
2025-02-17 16:28:56 +01:00
2025-01-07 12:39:13 +01:00
2024-11-02 17:27:09 +11:00
2025-01-07 12:39:13 +01:00
2023-10-30 21:40:35 +01:00
2025-01-21 12:53:24 +01:00
2025-01-07 12:39:13 +01:00
2024-08-30 16:42:29 +02:00
2025-01-21 19:09:01 -05:00
2024-02-19 15:59:59 +01:00
2025-01-31 17:03:17 +01:00
2025-01-31 17:03:17 +01:00
2025-01-14 13:49:25 +11:00
2025-01-07 12:39:13 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2025-01-31 17:03:17 +01:00
2025-01-07 12:39:13 +01:00
2024-12-04 11:29:28 -05:00
2025-01-31 17:03:17 +01:00
2024-02-19 15:59:59 +01:00
2023-08-16 00:20:26 +10:00
2025-01-07 12:39:13 +01:00
2025-01-31 17:03:17 +01:00
2025-01-31 17:03:17 +01:00
2025-01-07 12:39:13 +01:00
2024-12-17 13:35:07 +01:00
2025-01-31 17:03:17 +01:00
2024-05-02 20:05:51 +02:00
2024-12-20 15:05:56 -05:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2024-11-29 16:28:56 +01:00
2025-01-07 12:39:13 +01:00
2023-08-16 00:20:26 +10:00
2024-02-19 15:59:59 +01:00
2025-01-07 12:39:13 +01:00
2025-01-31 17:03:17 +01:00
2025-01-31 17:03:17 +01:00
2024-04-02 21:52:57 +02:00
2025-01-29 12:12:27 +01:00
2025-01-31 17:03:17 +01:00
2024-05-07 13:07:02 +10:00
2023-11-20 09:39:13 +01:00
2024-09-20 16:18:12 +02:00
2024-06-06 09:55:13 +10:00
2025-01-07 12:39:13 +01:00
2024-11-08 23:17:36 +01:00
2025-01-31 17:03:17 +01:00
2024-09-11 16:25:25 +10:00
2025-01-31 17:03:17 +01:00
2024-03-04 11:42:02 +11:00
2024-06-10 18:11:41 +02:00
2024-02-19 15:59:59 +01:00
2024-02-19 15:59:59 +01:00
2025-01-07 12:39:13 +01:00
2023-11-13 10:42:29 +01:00
2023-08-16 00:20:26 +10:00
2024-11-19 11:05:57 +01:00
2025-01-31 17:03:17 +01:00
2024-01-03 13:38:14 +01:00
2023-12-06 16:05:14 +01:00
2023-08-16 00:20:26 +10:00
2025-01-07 12:39:13 +01:00
2023-08-16 00:20:26 +10:00
2024-02-20 15:20:11 +01:00
2024-03-08 17:15:08 +11:00
2023-08-16 00:20:26 +10:00
2025-01-07 12:39:13 +01:00
2025-01-31 17:03:17 +01:00
2024-12-20 11:36:44 +01:00
2024-02-04 11:55:45 +01:00
2025-01-31 17:03:17 +01:00
2023-08-16 00:20:26 +10:00
2023-11-28 13:30:18 -05:00
2023-11-01 01:44:51 +01:00
2024-01-03 13:38:14 +01:00
2025-01-31 17:03:18 +01:00