kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #35814
Re: Some speed up patches
OK thanks for the input. I'll push 1, 2 and 5.
On 4), I didn't think it eliminated checks that were needed. If the zone
updated, everything was checked as before. If only a track changed, it
still checks zone->track but doesn't check zone->zone, zone->via or
zone->pad. Is there a reason that we needed those extra checks?
On 3), I the issues with commutative relationships make sense. However, I
think that when items are routed such that their anchors overlap, then the
relationship is commutative. Or do I miss a subtlety here?
Thanks-
Seth
Am Fr., 18. Mai 2018 um 14:23 Uhr schrieb Tomasz Wlostowski <
tomasz.wlostowski@xxxxxxx>:
> On 18/05/18 20:49, Seth Hillbrand wrote:
> > Gentle ping here. If this doesn't interfere with your connectivity
> > algorithm work Tom, I'd like to merge these as they make routing the
> > board I'm working on now manageable (at least on my old machine).
>
> Hi Seth,
>
> I'm OK with patches 1, 2 and 5, feel free to merge them. 3 and 4 are
> risky, as they reduce the number of collision checks. The issue with the
> current collision check function(s) is that they are not commutative -
> so intersect(itemA, itemB) may not always be equal to intersect(itemB,
> itemA). That's why some of the dirty item checks were disabled, since
> searching only for dirty items' collisions may not find all colliding
> item pairs.
>
> This happens for instance where zone A has only a single vertex inside
> zone B. Same thing may happen when searching for via/track collisions. I
> would like to definitively fix this in V6 by doing full collision search
> (SHAPE_INDEX-based, as in the P&S code), but this means changing class
> BOARD to use R-trees and quite a lot of refactoring of existing code.
>
> Cheers,
> Tom
>
> PS. I have an early version of background thread connectivity branch (it
> also includes other speed optimizations). Have a look if you want:
>
> https://github.com/twlostow/kicad-dev/tree/tom-background-connectivity
>
>
References