I wasn’t asking how to bump up the number of segments; I’ve already done that in
DRAWSEGMENT::TransformShapeWithClearanceToPolygon()
Eldar’s bisect showed that the polygon change killed zone filling performance, not the parallelism issue.
(I did re-instate pooled-thread zone-filling, but my guess is that Eldar is going to find that it doesn’t help this case.)
Is there something order-n-squared in the zone filling for the number of segments in a polygon? It sounds like it’s gone from ~4 seconds to ~1000 seconds.
Hmm… it just occurs to me that the new segment-calculating algorithm assumes an arc with a substantial sweep. (It bases the number of segments on the arc radius.) A very flat (large radius) but short arc (small sweep) would end up with a whole lot of segments.
Eldar, what’s the radius on your board edge?
Cheers,
Jeff.
> On 5 Mar 2018, at 10:15, Tomasz Wlostowski <email address hidden> wrote:
>
> Hey,
>
> I guess it was related to the change by Jeff (rewrite of ZONE_FILLER to
> use std::thread instead of OpenMP) where parallelization was list.
>
> @Eldar: now that John brought back parallel threading, could you test
> the latest nightly and see if the speed is back?
>
> @Jeff: Sure. Have a look at SHAPE_ARC::ConvertToPolyline(). It
> calculates the number of necessary segments based on the required
> accuracy (default = 1% = 0.01).
>
> Tom
>
> --
> You received this bug notification because you are a member of KiCad Bug
> Squad, which is subscribed to KiCad.
> https://bugs.launchpad.net/bugs/1753224
>
> Title:
> pcbnew: Zones->Fill All is became so slow for complex boards
>
> Status in KiCad:
> New
>
> Bug description:
> After some updates Zone filling for complex boards became so slow.
>
> Application: kicad
> Version: 5.0.0-rc2-dev-unknown-aeae32b~62~ubuntu17.10.1, release build
> Libraries:
> wxWidgets 3.0.3
> libcurl/7.55.1 OpenSSL/1.0.2g zlib/1.2.11 libidn2/2.0.2 libpsl/0.18.0 (+libidn2/2.0.2) librtmp/2.3
> Platform: Linux 4.13.0-36-generic x86_64, 64 bit, Little endian, wxGTK
> Build Info:
> wxWidgets: 3.0.3 (wchar_t,wx containers,compatible with 2.8) GTK+ 2.24
> Boost: 1.62.0
> Curl: 7.55.1
> Compiler: GCC 7.2.0 with C++ ABI 1011
>
> Build settings:
> USE_WX_GRAPHICS_CONTEXT=OFF
> USE_WX_OVERLAY=OFF
> KICAD_SCRIPTING=ON
> KICAD_SCRIPTING_MODULES=ON
> KICAD_SCRIPTING_WXPYTHON=ON
> KICAD_SCRIPTING_ACTION_MENU=ON
> BUILD_GITHUB_PLUGIN=ON
> KICAD_USE_OCE=ON
> KICAD_SPICE=ON
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/kicad/+bug/1753224/+subscriptions
Hi Tom,
I think you perhaps misunderstood my comment.
I wasn’t asking how to bump up the number of segments; I’ve already done that in :TransformShape WithClearanceTo Polygon( )
DRAWSEGMENT:
Eldar’s bisect showed that the polygon change killed zone filling performance, not the parallelism issue.
(I did re-instate pooled-thread zone-filling, but my guess is that Eldar is going to find that it doesn’t help this case.)
Is there something order-n-squared in the zone filling for the number of segments in a polygon? It sounds like it’s gone from ~4 seconds to ~1000 seconds.
Hmm… it just occurs to me that the new segment-calculating algorithm assumes an arc with a substantial sweep. (It bases the number of segments on the arc radius.) A very flat (large radius) but short arc (small sweep) would end up with a whole lot of segments.
Eldar, what’s the radius on your board edge?
Cheers,
Jeff.
> On 5 Mar 2018, at 10:15, Tomasz Wlostowski <email address hidden> wrote: :ConvertToPolyl ine(). It /bugs.launchpad .net/bugs/ 1753224 dev-unknown- aeae32b~ 62~ubuntu17. 10.1, release build compatible with 2.8) GTK+ 2.24 GRAPHICS_ CONTEXT= OFF _MODULES= ON _WXPYTHON= ON _ACTION_ MENU=ON PLUGIN= ON /bugs.launchpad .net/kicad/ +bug/1753224/ +subscriptions
>
> Hey,
>
> I guess it was related to the change by Jeff (rewrite of ZONE_FILLER to
> use std::thread instead of OpenMP) where parallelization was list.
>
> @Eldar: now that John brought back parallel threading, could you test
> the latest nightly and see if the speed is back?
>
> @Jeff: Sure. Have a look at SHAPE_ARC:
> calculates the number of necessary segments based on the required
> accuracy (default = 1% = 0.01).
>
> Tom
>
> --
> You received this bug notification because you are a member of KiCad Bug
> Squad, which is subscribed to KiCad.
> https:/
>
> Title:
> pcbnew: Zones->Fill All is became so slow for complex boards
>
> Status in KiCad:
> New
>
> Bug description:
> After some updates Zone filling for complex boards became so slow.
>
> Application: kicad
> Version: 5.0.0-rc2-
> Libraries:
> wxWidgets 3.0.3
> libcurl/7.55.1 OpenSSL/1.0.2g zlib/1.2.11 libidn2/2.0.2 libpsl/0.18.0 (+libidn2/2.0.2) librtmp/2.3
> Platform: Linux 4.13.0-36-generic x86_64, 64 bit, Little endian, wxGTK
> Build Info:
> wxWidgets: 3.0.3 (wchar_t,wx containers,
> Boost: 1.62.0
> Curl: 7.55.1
> Compiler: GCC 7.2.0 with C++ ABI 1011
>
> Build settings:
> USE_WX_
> USE_WX_OVERLAY=OFF
> KICAD_SCRIPTING=ON
> KICAD_SCRIPTING
> KICAD_SCRIPTING
> KICAD_SCRIPTING
> BUILD_GITHUB_
> KICAD_USE_OCE=ON
> KICAD_SPICE=ON
>
> To manage notifications about this bug go to:
> https:/