Files
test/source/blender/blenkernel/intern
Iliya Katueshenock 6bafe65d28 Mesh: Calculate edges with VectorSet instead of Map
Due to legacy reasons (`MEdge`), edge calculation was being done with
idea that edges cannot be temporarily copied. But today, edges are just
`int2`, so using `edge *` instead of `edge` actually made things worse.
And since `OrderedEdge` itself is the same thing as `int2`, it does not
make sense to use `Map` for edges. So, now edges are in a hash set.
To be able to take index of edges, `VectorSet` is used.

The only functional change now is that original edges will be reordered
as well. This should be okay just like an unintentional but stable
indices change.

For 2'000 x 2'000 x 2'000 cube edges calculation, change is around
`3703.47` -> `2911.18` ms.

In order to reduce memory usage, a template parameter is added to
`VectorSet` slots, so they can use a 32 instead of 64 bit index type.
Without that, the performance change is not consistent and might not be
better on a computer with more memory bandwidth.

Co-authored-by: Hans Goudey <hans@blender.org>

Pull Request: https://projects.blender.org/blender/blender/pulls/120224
2024-04-11 04:33:25 +02:00
..
2024-01-30 14:42:13 -05:00
2024-03-26 13:07:04 -04:00
2024-01-30 14:42:13 -05:00
2024-04-10 18:34:52 -07:00
2024-04-08 16:23:25 +10:00
2024-03-26 13:07:04 -04:00
2024-01-31 14:04:56 -05:00
2024-03-21 10:02:53 +11:00
2024-04-03 10:22:05 +11:00
2024-01-19 20:29:38 +01:00
2024-01-19 14:32:28 +01:00
2024-03-26 13:07:04 -04:00
2024-04-03 10:22:05 +11:00
2024-03-26 13:07:04 -04:00