kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #32054
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