Remove sorting by priority before filling.
We can't fill lower-priority zones until the higher-priority ones have been tesselated, and as the tesselation step always gets pushed to the back of the queue after the fill finishes having them sorted by priority accomplishes little. (We're also going to push all other layers of the high-priority zone to the back as the first layer will have the lock, further degrading the usefulness of sorting.)
This commit is contained in:
parent
0c8f95aa02
commit
bf4b9ef6e2
|
@ -1107,7 +1107,6 @@ bool ZONE::BuildSmoothedPoly( SHAPE_POLY_SET& aSmoothedPoly, PCB_LAYER_ID aLayer
|
||||||
|
|
||||||
auto smooth = [&]( SHAPE_POLY_SET& aPoly )
|
auto smooth = [&]( SHAPE_POLY_SET& aPoly )
|
||||||
{
|
{
|
||||||
|
|
||||||
if( !smooth_requested )
|
if( !smooth_requested )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -156,14 +156,6 @@ bool ZONE_FILLER::Fill( std::vector<ZONE*>& aZones, bool aCheck, wxWindow* aPare
|
||||||
static_cast<PCB_VIA*>( track )->ClearZoneConnectionCache();
|
static_cast<PCB_VIA*>( track )->ClearZoneConnectionCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort by priority to reduce deferrals waiting on higher priority zones.
|
|
||||||
//
|
|
||||||
std::sort( aZones.begin(), aZones.end(),
|
|
||||||
[]( const ZONE* lhs, const ZONE* rhs )
|
|
||||||
{
|
|
||||||
return lhs->HigherPriority( rhs );
|
|
||||||
} );
|
|
||||||
|
|
||||||
for( ZONE* zone : aZones )
|
for( ZONE* zone : aZones )
|
||||||
{
|
{
|
||||||
// Rule areas are not filled
|
// Rule areas are not filled
|
||||||
|
|
Loading…
Reference in New Issue