Hans Goudey
0b1049b41d
BMesh: Optimize copying attributes from many elements at once
...
Fixes #115776
Create a minimal structure that contains the instructions necessary to
copy from one custom data format to another. This structure is similar
to the one used in dfacaf4f40 . It should have been used in
9175d9b7c2 , which instead introduced quadratic performance
relative to the number of layers when copying every element.
In this commit, copying the entire mesh and adding new custom data
are explicitly changed to use the new map to speed up copying many
elements at a time.
The non-map attribute copy functions are also changed to check for when
the source and result BMeshes are the same. In that case it's much
faster to call the "same format" function from 9175d9b7c2 .
For numbers, the timings are arbitrarily influenced by how many layers
I add in my testing. With 50 or so layers, a 10x difference is easily
observable though.
Pull Request: https://projects.blender.org/blender/blender/pulls/115824
2023-12-09 05:37:37 +01:00
..
2023-05-31 16:19:06 +02:00
2023-11-16 11:41:55 +01:00
2023-09-26 18:18:56 +02:00
2023-12-05 15:10:27 +01:00
2023-08-16 00:20:26 +10:00
2023-12-01 20:38:54 +01:00
2023-11-16 11:41:55 +01:00
2023-12-01 20:38:54 +01:00
2023-08-28 15:01:05 +02:00
2023-08-16 00:20:26 +10:00
2023-12-07 10:38:54 +11:00
2023-12-08 16:40:06 -05:00
2023-09-06 00:48:50 +02:00
2023-12-05 15:10:27 +01:00
2023-12-05 15:10:27 +01:00
2023-11-16 11:41:55 +01:00
2023-12-05 16:01:28 +01:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-10-30 21:40:35 +01:00
2023-12-06 16:05:14 +01:00
2023-11-22 15:48:42 -05:00
2023-12-07 15:33:28 +01:00
2023-08-16 00:20:26 +10:00
2023-12-01 20:38:54 +01:00
2023-11-07 15:42:52 +11:00
2023-09-03 13:37:50 +02:00
2023-11-18 13:11:39 +01:00
2023-09-03 13:37:50 +02:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-08-16 00:20:26 +10:00
2023-12-07 10:39:03 +11:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-11-14 09:30:40 +01:00
2023-12-01 20:38:54 +01:00
2023-12-05 11:53:55 +01:00
2023-12-01 20:38:54 +01:00
2023-12-06 16:05:14 +01:00
2023-12-01 20:38:54 +01:00
2023-09-06 00:48:50 +02:00
2023-12-01 20:38:54 +01:00
2023-08-16 00:20:26 +10:00
2023-09-25 17:06:04 +10: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
2023-08-16 00:20:26 +10:00
2023-11-16 11:41:55 +01:00
2023-11-28 16:40:43 -05:00
2023-12-01 20:38:54 +01:00
2023-11-14 09:30:40 +01:00
2023-08-10 14:51:40 +03:00
2023-11-16 11:41:55 +01:00
2023-11-21 14:12:23 +01:00
2023-12-04 17:13:47 +01:00
2023-12-01 20:38:54 +01:00
2023-11-18 13:11:39 +01:00
2023-12-08 16:40:06 -05:00
2023-09-01 21:37:11 +02:00
2023-12-01 20:38:54 +01:00
2023-11-16 11:41:55 +01:00
2023-10-30 21:40:35 +01:00
2023-08-16 00:20:26 +10:00
2023-11-28 16:05:12 -05:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-11-15 14:02:48 +01:00
2023-12-01 20:38:54 +01:00
2023-11-16 11:41:55 +01:00
2023-08-16 00:20:26 +10:00
2023-12-06 16:05:14 +01:00
2023-10-30 21:40:35 +01:00
2023-12-01 20:38:54 +01:00
2023-08-16 00:20:26 +10:00
2023-12-09 05:37:37 +01:00
2023-11-16 11:41:55 +01:00
2023-11-20 14:19:16 +01:00
2023-12-08 16:40:06 -05:00
2023-12-08 16:40:06 -05:00
2023-11-28 16:05:12 -05:00
2023-12-08 16:40:06 -05:00
2023-08-16 00:20:26 +10:00
2023-11-16 11:41:55 +01:00
2023-12-04 15:23:24 -05:00
2023-11-16 11:41:55 +01:00
2023-11-16 16:28:06 +01:00
2023-11-28 16:40:43 -05:00
2023-08-16 00:20:26 +10:00
2023-11-16 11:41:55 +01:00
2023-12-08 13:09:11 +01:00
2023-11-16 11:41:55 +01:00
2023-12-09 05:06:10 +01:00
2023-12-09 05:06:10 +01:00
2023-12-08 16:40:06 -05:00
2023-11-07 16:33:19 +11:00
2023-10-30 21:40:35 +01:00
2023-12-01 11:23:00 +01:00
2023-12-01 11:23:00 +01:00
2023-12-01 11:23:00 +01:00
2023-12-01 11:23:00 +01:00
2023-12-01 11:23:00 +01:00
2023-12-01 11:23:00 +01:00
2023-12-01 11:23:00 +01:00
2023-10-30 21:40:35 +01:00
2023-12-05 13:28:29 +01:00
2023-12-01 11:23:00 +01:00
2023-12-01 20:38:54 +01:00
2023-12-08 16:40:06 -05:00
2023-12-01 20:38:54 +01:00
2023-11-28 16:05:12 -05:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-12-01 20:38:54 +01:00
2023-12-05 11:01:42 +01:00
2023-08-16 00:20:26 +10:00
2023-09-05 16:05:12 +02:00
2023-08-16 00:20:26 +10:00
2023-09-01 21:37:11 +02:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-12-05 17:11:03 +11:00
2023-12-01 20:38:54 +01:00
2023-07-04 17:03:02 +02:00
2023-09-14 13:25:24 +10:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-09-01 21:37:11 +02:00
2023-12-01 20:38:54 +01:00
2023-08-16 00:20:26 +10:00
2023-12-01 20:38:54 +01:00
2023-10-30 21:40:35 +01:00
2023-12-01 20:38:54 +01:00
2023-08-16 00:20:26 +10:00
2023-12-08 16:40:06 -05:00
2023-08-16 00:20:26 +10:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-12-01 20:38:54 +01:00
2023-09-06 00:48:50 +02:00
2023-12-08 16:40:06 -05:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-08-16 00:20:26 +10:00
2023-11-30 19:51:22 +01:00
2023-11-30 19:51:22 +01:00
2023-12-07 12:45:27 +11:00
2023-12-01 20:38:54 +01:00
2023-11-30 19:51:22 +01:00
2023-12-01 20:38:54 +01:00
2023-12-07 12:45:27 +11:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-02 11:07:25 -08:00
2023-12-05 11:53:55 +01:00
2023-09-25 18:00:28 +02:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-07 12:45:27 +11:00
2023-12-07 12:45:27 +11:00
2023-11-16 11:41:55 +01:00
2023-11-07 16:33:19 +11:00
2023-12-01 20:38:54 +01:00
2023-12-08 16:40:06 -05:00
2023-12-07 10:38:54 +11:00
2023-12-01 20:38:54 +01:00
2023-12-08 16:40:06 -05:00
2023-11-16 11:41:55 +01:00
2023-11-28 15:19:20 +11:00
2023-12-08 16:40:06 -05:00
2023-12-08 16:40:06 -05:00
2023-12-08 16:40:06 -05:00
2023-12-06 23:33:46 -05:00
2023-11-20 17:42:01 +01:00
2023-12-04 15:23:24 -05:00
2023-12-08 16:40:06 -05:00
2023-11-29 14:16:37 +01:00
2023-12-08 16:40:06 -05:00
2023-12-05 23:01:12 +01:00
2023-12-01 11:05:29 +11:00
2023-11-28 16:40:43 -05:00
2023-12-05 23:01:12 +01:00
2023-12-08 16:40:06 -05:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-11-28 16:49:55 -05:00
2023-12-08 16:40:06 -05:00
2023-12-08 16:40:06 -05:00
2023-12-08 16:40:06 -05:00
2023-12-08 16:40:06 -05:00
2023-12-01 20:38:54 +01:00
2023-08-16 00:20:26 +10:00
2023-11-28 12:26:51 -05:00
2023-12-04 07:55:47 -05:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-08-16 00:20:26 +10:00
2023-11-28 12:26:51 -05:00
2023-08-16 00:20:26 +10:00
2023-11-14 09:30:40 +01:00
2023-12-05 23:01:12 +01:00
2023-08-30 23:41:59 +02:00
2023-08-16 00:20:26 +10:00
2023-12-08 16:40:06 -05:00
2023-09-26 18:18:56 +02:00
2023-12-01 20:38:54 +01:00
2023-09-26 20:30:46 +02:00
2023-11-18 13:11:39 +01:00
2023-11-27 10:55:39 +11:00
2023-08-16 00:20:26 +10:00
2023-10-30 21:40:35 +01:00
2023-10-31 13:46:31 +01:00
2023-12-06 16:05:14 +01:00
2023-11-20 09:39:13 +01:00
2023-12-07 12:45:27 +11:00
2023-12-08 16:40:06 -05:00
2023-12-04 15:23:24 -05:00
2023-11-27 16:14:49 +01:00
2023-12-08 16:40:06 -05:00
2023-08-16 00:20:26 +10:00
2023-08-19 23:52:47 +10:00
2023-08-10 14:51:40 +03:00
2023-08-16 00:20:26 +10:00
2023-12-01 20:38:54 +01:00
2023-11-16 11:41:55 +01:00
2023-12-01 20:38:54 +01:00
2023-12-08 16:40:06 -05:00
2023-11-07 16:33:19 +11:00
2023-11-16 11:41:55 +01:00
2023-12-08 16:40:06 -05:00
2023-12-08 16:40:06 -05:00
2023-12-05 22:09:37 -05:00
2023-12-05 23:01:12 +01:00
2023-12-04 12:45:23 -05:00
2023-09-01 21:37:11 +02:00
2023-11-16 11:41:55 +01:00
2023-12-08 11:15:06 +01:00
2023-08-29 11:47:29 -04:00
2023-08-29 17:00:33 +02:00
2023-12-08 16:40:06 -05:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-11-15 18:46:07 +01:00
2023-10-30 21:40:35 +01:00
2023-09-06 18:00:20 +02:00
2023-10-30 21:40:35 +01:00
2023-12-07 10:38:54 +11:00
2023-12-05 23:01:12 +01:00
2023-11-16 11:41:55 +01:00
2023-10-30 21:40:35 +01:00
2023-12-04 15:29:40 -05:00
2023-12-08 16:40:06 -05:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-10-30 21:40:35 +01:00
2023-11-16 11:41:55 +01:00
2023-12-04 07:55:47 -05:00
2023-12-05 23:01:12 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-08-16 00:20:26 +10:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-08-16 00:20:26 +10:00
2023-11-27 15:19:44 +01:00
2023-11-14 09:30:40 +01:00
2023-08-16 00:20:26 +10:00
2023-08-16 00:20:26 +10:00
2023-11-14 09:30:40 +01:00
2023-12-08 16:40:06 -05:00
2023-08-16 00:20:26 +10:00
2023-12-07 10:38:54 +11:00
2023-12-01 20:38:54 +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
2023-08-16 00:20:26 +10: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
2023-10-30 21:40:35 +01:00
2023-11-15 10:53:30 +01:00
2023-11-15 18:56:00 +01:00
2023-12-01 20:38:54 +01:00
2023-11-28 16:05:12 -05:00
2023-12-01 20:38:54 +01:00
2023-11-28 16:05:12 -05:00
2023-11-30 19:51:22 +01:00
2023-11-16 11:41:55 +01:00
2023-11-16 11:41:55 +01:00
2023-12-01 20:38:54 +01:00
2023-12-06 16:05:14 +01:00
2023-12-01 20:38:54 +01:00
2023-12-01 20:38:54 +01:00
2023-12-07 12:45:27 +11:00