← Back to team overview

kicad-developers team mailing list archive

PATCH: Dirty flag to prevent double-commit of routing in PNS

 

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

The current PNS_LINE_PLACER::GetModifiedNets() always returns the net
being routed, even if it hasn't changed since the last FixRouting()
call. This leads to unnecessary rebuilds of the ratsnest, which can
take several hundred milliseconds on large boards.

My patch (on launchpad at
https://code.launchpad.net/~azonenberg/kicad/performance-patches) adds
a dirty flag to PNS_PLACEMENT_ALGO, currently only used by
PNS_LINE_PLACER, that indicates whether the placer has had any changes
made to it since the last time routing was committed.

On my current design, this reduces the UI hang after drawing a ground
track from ~700 ms to ~350 ms.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBAgAGBQJWvX6PAAoJEDRhermzHH18kucP/AjKoZzS+yMtyIByA3hvhgqq
mCzE9bPkwnahfxsyawQIIE4wf8dvRYSeSA/c9fRol5nFrWWHiF7AjJB/n7AeJkTy
/TdqF5fL2T/AtxnDeT1YdJ88aVtudy2DQjtNIQOU61LWs702NZucGwnMp4C8DNR2
oF3eR1/oDeL7o1DYj3A8HW97d7ZFmsIStSN3vnbkGLWeD2JPXReYw9kmFgevyXwK
V7OUCpuOclWzDhLcGGYzjttBSIydnD3rHvCWpRTcGnNfbV/5/UKDCrcBkxVKEN1j
Kx6R20neu8/6fMDFFR+Q8cJTYmg74aZNNc1GVvQPJLOGbL6cXgHRUIchnwFJuNUc
9dmd4trNRghPODBpK9ZEr02/l354UB0hTctE18YAc6Fl8qLMT2fUbQHCxndFYs1P
8VSz2o6w/6KI/I9xkaYJwwseXrYcT2XmRCbnj/cHaw+UhxIymUQtyZHep8awvzSd
s6OPEErSsZNw6/TyMG07MW8qoUmBNvlp8LPAHl84ZAtmkGMbCAzoDIcyaLn/0zPN
YR+k+YE6wI2Kl3x5r2KsOt+PbdGrQ5MugeAC6jEtAMvzWbnpw6IplbFDvor4bGB+
qFoa+BoEBJRB9DRdu4ACCpsW5NyvS17VO5qL6b0QFi9yJONZCve7poYA1asYZMUz
suto/8qc5ob8qnrkMVU2
=FFf5
-----END PGP SIGNATURE-----