← Back to team overview

kicad-developers team mailing list archive

Re: Some tests.

 

Le 29/11/2017 à 00:32, Tomasz Wlostowski a écrit :
<...>

> I also investigated why the zones are filled slowly - the major reason
> was a bug in the GAL zone filling algorithm, which was filling all zones
> by performing N independent fills of every zone causing the isolated
> copper islands to be checked N times (where N=number of zones in the
> design) instead of just once. The branch [1] contains this bug fixed. It
> also introduces quite a speedup in zone loading/rendering and
> parallelizes all zone filling operations using OpenMP. It refills all
> zones on the "A64-Olinuxino
> board" in less than 3 seconds and something around 10s for the "wrs"
> board on a Core i7-4700MQ, 16GB RAM machine.

<...>

> Cheers,
> Tom
> 
> [1] https://github.com/twlostow/kicad-dev/tree/tom-faster-zones


Hi Tomasz,

I tried to test your branch on msys2 W7 32bits
I had to make a change to be able to compile kicad (issue due to a name collision).
Attached my patch.

Unfortunately the filling zone does not work: Pcbnew hangs with a few boards I tried, when filling
zones.

Note also existing filled areas are no shown in GAL mode after loading a board.

Cheers,

-- 
Jean-Pierre CHARRAS
 common/widgets/progress_reporter.cpp | 4 ++--
 include/widgets/progress_reporter.h  | 8 +++++---
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/common/widgets/progress_reporter.cpp b/common/widgets/progress_reporter.cpp
index 9638e44..a37c0a1 100644
--- a/common/widgets/progress_reporter.cpp
+++ b/common/widgets/progress_reporter.cpp
@@ -53,7 +53,7 @@ void PROGRESS_REPORTER::AdvancePhase( )
 void PROGRESS_REPORTER::Report( const wxString& aMessage )
 {
     std::lock_guard<std::mutex> guard( m_lock );
-    m_message   = aMessage;
+    m_rpt_message   = aMessage;
     updateUI();
 }
 
@@ -98,5 +98,5 @@ void WX_PROGRESS_REPORTER::updateUI()
 {
     int cur = currentProgress();
     SetRange( 1000 );
-    Update( cur, m_message );
+    Update( cur, m_rpt_message );
 }
diff --git a/include/widgets/progress_reporter.h b/include/widgets/progress_reporter.h
index e76813f..eda0b65 100644
--- a/include/widgets/progress_reporter.h
+++ b/include/widgets/progress_reporter.h
@@ -47,9 +47,11 @@ class PROGRESS_REPORTER
         int currentProgress() const;
         virtual void updateUI() = 0;
 
-        wxString m_message;
-        int m_phase, m_numPhases;
-        int m_progress, m_maxProgress;
+        wxString m_rpt_message;
+        int m_phase;
+        int m_progress;
+        int m_maxProgress;
+        int m_numPhases;
 
         std::mutex m_lock;
 };

Follow ups

References