kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #34648
Re: Mac HighDPI performance
FWIW, I don't find the existing performance to be unusable, it's just not
up to the standards of PcbNew/GAL. I don't think it's worth any effort
beyond easy fixes, we should put that energy into the GAL port.
-Jon
On Sun, Mar 4, 2018, 14:34 Bernhard Stegmaier <stegmaier@xxxxxxxxxxxxx>
wrote:
> I would judge it wrt eeschema GAL conversion.
> If that starts with v6, I don’t know if it is worth the effort.
> If it is unsure when this will happen, it might be worth it.
>
>
> On 4. Mar 2018, at 20:30, Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:
>
> Ughh! I don't have a good answer for this one. My best guess is to fix
> the wx macos code first and see what performance issues are left. The
> problem with messing with any of this is that if you break something it
> will break all of the legacy canvas rendering not just the schematic
> editor. I would move extremely carefully here. I would prefer that we
> don't go too crazy this late in the v5 release cycle. If the
> performance is truly not usable on macos, then we may have no choice.
>
> On 03/04/2018 02:07 PM, Jeff Young wrote:
>
> It turns out the fonts aren’t really the problem.
>
> It starts with this gem in wxWidgets:
>
> voidwxWidgetCocoaImpl::ScrollRect(constwxRect*rect,intdx,intdy)
>
> {
>
> #if1
>
> SetNeedsDisplay();
>
> #else
>
> //Weshoulddosomethinglikethis,butitwasn'tworkingin10.4.
>
> if(GetNeedsDisplay())
>
> {
>
> SetNeedsDisplay() ;
>
> }
>
> NSRectr=wxToNSRect([m_osxViewsuperview],*rect);
>
> NSSizeoffset=NSMakeSize((float)dx,(float)dy);
>
> [m_osxViewscrollRect:rby:offset];
>
> #endif
>
> }
>
>
> SetNeedsDisplay() with no rectangle argument invalidates the entire window.
>
> Even if you fix that (to scroll most of the window and only invalidate
> the newly-exposed parts), you run into this:
>
>
> voidwxWidgetCocoaImpl::drawRect(void*rect,WXWidgetslf,void*WXUNUSED(_cmd))
>
> {
>
> //preparingtheupdateregion
>
> wxRegionupdateRgn;
>
>
>
> //sinceaddingmanyrectstoaregionisacostlyprocess,bydefaultusetheboundingrect
>
> #if0
>
> constNSRect*rects;
>
> NSIntegercount;
>
> [slfgetRectsBeingDrawn:&rectscount:&count];
>
> for(inti=0;i<count;++i)
>
> {
>
> updateRgn.Union(wxFromNSRect(slf,rects[i]));
>
> }
>
> #else
>
> updateRgn.Union(wxFromNSRect(slf,*(NSRect*)rect));
>
> #endif
>
>
> …which will /also/ cause the whole window to be repainted if there’s
> both an invalidated horizontal strip and a vertical one.
>
> And the latter turns out to be pretty much guaranteed by this one, which
> batches repaints:
>
> voidwxNonOwnedWindow::Update()
>
> {
>
> if(clock()-s_lastFlush>CLOCKS_PER_SEC/30)
>
> {
>
> s_lastFlush=clock();
>
> m_nowpeer->Update();
>
> }
>
> }
>
>
> But even Kicad isn’t blameless. Once you fix all those there’s still no
> checking in SCH_SCREEN::Draw() to see if the individual draw items
> intersect the update region. (Sure, the actually drawing is clipped in
> the end, but you still go through a /lot/ of code to get there.)
>
> All of these are fixable, and we’ve already crossed the Rubicon of
> having our own OSX wxWidgets branch.
>
> But it’s still a reasonable amount of work, with a non-trivial risk
> profile. Should I continue?
>
> Cheers,
> Jeff.
>
>
>
> On 4 Mar 2018, at 01:30, Bernhard Stegmaier <stegmaier@xxxxxxxxxxxxx
> <mailto:stegmaier@xxxxxxxxxxxxx <stegmaier@xxxxxxxxxxxxx>>> wrote:
>
> No.
>
> On 4. Mar 2018, at 01:51, Andrey Kuznetsov <kandrey89@xxxxxxxxx
> <mailto:kandrey89@xxxxxxxxx <kandrey89@xxxxxxxxx>>> wrote:
>
> Would it be an easy fix to change the text/font such that it does not
> affect performance so significantly on MacOS?
>
> On Sat, Mar 3, 2018 at 5:20 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx
> <mailto:stambaughw@xxxxxxxxx <stambaughw@xxxxxxxxx>>> wrote:
>
> On 03/03/2018 07:33 AM, Jeff Young wrote:
>
> Hi Andrey,
>
> I did some profiling and I’d guess that the difference in
> eeschema and pcbnew-legacy performance is down to there being
> more text in the schema. Since we use a stroke font, there’s
> a lot of stroke segments in each letter.
>
> @Devs,
>
> I understand why we use a stroke font on the PCB, but there’s
> not much reason in eeschema, is there?
>
>
> This is possibly one of the things that I plan on changing after
> the new schematic file format is written. The new file format
> will support font definitions so replacing the stroke font in
> Eeschema should be doable. Whether or not I have time to make
> this change remains to be seen.
>
> Wayne
>
>
> Cheers,
> Jeff.
>
>
> On 3 Mar 2018, at 08:18, Andrey Kuznetsov
> <kandrey89@xxxxxxxxx <mailto:kandrey89@xxxxxxxxx
> <kandrey89@xxxxxxxxx>>
> <mailto:kandrey89@xxxxxxxxx <kandrey89@xxxxxxxxx>
> <mailto:kandrey89@xxxxxxxxx <kandrey89@xxxxxxxxx>>>> wrote:
>
> The motherboard project is not very complex, I would say
> that performance should be tolerable UP to that size
> complexity, if we set the bar any lower, usability will
> suffer and people won't like KiCad because it's sluggish
> and interface lag is the worst kind of lag.
> My project isn't finished and Chris' project is available
> now, is just the right complexity and has layout that can
> be used for testing as well as a schematic.
>
> *LG 5K 27" display running 3200x1800 (the highest
> resolution without making text blurry, using this for
> work every day, so it's extravagant, it's practical)*
>
> *Actions:* pan with middle mouse, zoom back and forth.
>
> *eeschema:*
> Low Res - at least 2 times slower than would be
> considered normal, I would have to guess ~400ms lag
> Normal - 4-5x slower compared to low res mode ~1700ms lag
> Even in low res mode, and removing 75% of the items from
> Chris' schematic, the lag is still ~200-300ms, that's
> just not right. Additionally, I filed
> https://bugs.launchpad.net/kicad/+bug/1753054
> <https://bugs.launchpad.net/kicad/+bug/1753054> because
> the mouse zoom is screwed up in eeschema, coupled with
> the lag, it's unusable. Maybe the pan lag is related to
> the zoom, maybe there are multiple steps being rendered
> when it should just jump to where the mouse ended up at,
> I don't know.
>
> *pcbnew - **Normal Resolution:*
> Accelerated: No-AA, <50ms
> Fallback: 500-1000ms for panning, 300-600ms for zoom
> Legacy: 1300-1700ms for panning, 600ms for zoom
> Low Res mode: did not notice speed increase, except maybe
> Fallback was ~400ms faster.
>
> I'm not saying halt the horses, certain modes are
> obviously limited, ie Legacy and Fallback by the nature
> of the task presented, but eeschema is barely displaying
> 10% of the content pcbnew is but lagging so much worse!
>
> Just thought I'd include rendering of the Accelerated
> Graphics (top to bottom: Supersampling 4x, Subpixel AA
> (Ultra Quality), No AA)
> All 3 modes are responsive, probably <50-100ms lag, I'd
> consider this performance great, considering the amount
> of elements on screen.
> <image.png>
>
> How long should it take to delete this many selected
> elements in pcbnew?
> Answer: about 50x too long! I think it was like 3mins,
> perhaps ESC key should be available to press anytime to
> undo the delete action and restore to pre-delete screen
> when accidental actions are triggered that take forever
> to complete?
> <image.png>
>
> On Fri, Mar 2, 2018 at 9:53 AM, Bernhard Stegmaier
> <stegmaier@xxxxxxxxxxxxx <mailto:stegmaier@xxxxxxxxxxxxx
> <stegmaier@xxxxxxxxxxxxx>>
> <mailto:stegmaier@xxxxxxxxxxxxx <stegmaier@xxxxxxxxxxxxx>
> <mailto:stegmaier@xxxxxxxxxxxxx <stegmaier@xxxxxxxxxxxxx>>>>
> wrote:
>
> Hi,
>
> to be honest, I don’t really know what this is about.
>
> @Andrey:
> You looked for a very complex (foreign) project
> (Chris mainboard?)
> to prove that eeschema is slow on Mac?
> Well, we know that and we told you already some
> weeks/months ago
> why it is like it is (if memory serves me right).
>
> Or, do you have an own project that is so
> ridiculously slow, that
> you can’t work with it?
> If so, please provide it so that we can analyse why
> this specific
> project behaves like that.
> If you can’t or don’t want to provide it we could
> tell you how to
> do some performance measurements so that we might see
> something.
>
> Obviously, there are a number of Mac users here and
> also over at
> the KiCad forum who might also be happy to get some more
> performance here and there, but who are in general
> reasonably able
> to work on their projects (including myself, on a
> 2012 Retina
> MacBook with only an i5).
>
>
> Regards,
> Bernhard
>
> > On 2. Mar 2018, at 17:59, Andy Peters
> <devel@xxxxxxxxx <mailto:devel@xxxxxxxxx <devel@xxxxxxxxx>>
> <mailto:devel@xxxxxxxxx <devel@xxxxxxxxx> <
> mailto:devel@xxxxxxxxx <devel@xxxxxxxxx>>>> wrote:
> >
> >
> >
> >> On Mar 1, 2018, at 8:53 PM, Seth Hillbrand
> <seth.hillbrand@xxxxxxxxx
> <mailto:seth.hillbrand@xxxxxxxxx <seth.hillbrand@xxxxxxxxx>>
> <mailto:seth.hillbrand@xxxxxxxxx <seth.hillbrand@xxxxxxxxx>
> <mailto:seth.hillbrand@xxxxxxxxx <seth.hillbrand@xxxxxxxxx>>>>
> wrote:
> >>
> >> Andrey-
> >>
> >> I'm moving this to a new thread so that we don't
> conflate the
> OpenMP discussion with this.
> >>
> >> Can you test running Kicad with the "Open in Low
> Resolution"
> mode enabled? You can activate this by choosing "Get
> Info" on the
> main KiCad application and checking the option that
> says "Open in
> Low Resolution". You may need to do the same for the
> other
> applications (Eeschema, pcbnew, etc) as well.
> >
> > testing on my 2017” touch-bar MBP …
> >
> > Good g-d, low-res mode looks fuzzy and weird!
> >
> > I don’t notice any specific differences in EESchema
> performance.
> Maybe my schematic isn’t busy enough? I’m a fan of
> using more
> smaller sheets with less info on each than one big
> sheet with
> everything.
> >
> > I know, anecdote is not evidence.
> >
> > -a
> >
> >
> >>
> >> -Seth
> >>
> >> 2018-03-01 18:09 GMT-08:00 Andrey Kuznetsov
> <kandrey89@xxxxxxxxx <mailto:kandrey89@xxxxxxxxx
> <kandrey89@xxxxxxxxx>>
> <mailto:kandrey89@xxxxxxxxx <kandrey89@xxxxxxxxx> <
> mailto:kandrey89@xxxxxxxxx <kandrey89@xxxxxxxxx>>>>:
> >> Hi,
> >>
> >> So for now I've had a chance to test the
> motherboard project on
> my Retina macbook display.
> >> eeschema: horrible zoom, feels like elastic band
> zoom and I
> have all scroll wheel accelerations and similar
> disabled, zoom
> response is super laggy, cannot work like this, will
> need to make
> schematics on windows.
> >> pcbnew by order of slowness:
> >> legacy - pretty slow, zoom lag is major, boo boo
> >> modern (fallback) - decent, but the lag can be
> felt, zoom lag
> is minor
> >> modern (accelerated) - almost cannot feel the lag,
> very nice,
> nice zoom responsiveness
> >>
> >> I'll report tomorrow on 5K LG display.
> >>
> >
> >
> > _______________________________________________
> > Mailing list:
> https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> <https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>>
> > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <kicad-developers@xxxxxxxxxxxxxxxxxxx>
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> > Unsubscribe :
> https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> <https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>>
> > More help : https://help.launchpad.net/ListHelp
> <https://help.launchpad.net/ListHelp>
> <https://help.launchpad.net/ListHelp
> <https://help.launchpad.net/ListHelp>>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> <https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>>
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <kicad-developers@xxxxxxxxxxxxxxxxxxx>
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> Unsubscribe : https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> <https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>>
> More help : https://help.launchpad.net/ListHelp
> <https://help.launchpad.net/ListHelp>
> <https://help.launchpad.net/ListHelp
> <https://help.launchpad.net/ListHelp>>
>
>
>
>
> --
> Remember The Past, Live The Present, Change The Future
> Those who look only to the past or the present are
> certain to miss the future [JFK]
>
> kandrey89@xxxxxxxxx <mailto:kandrey89@xxxxxxxxx
> <kandrey89@xxxxxxxxx>>
> <mailto:kandrey89@xxxxxxxxx <kandrey89@xxxxxxxxx> <
> mailto:kandrey89@xxxxxxxxx <kandrey89@xxxxxxxxx>>>
> Live Long and Prosper,
> Andrey
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <kicad-developers@xxxxxxxxxxxxxxxxxxx>
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> Unsubscribe : https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> More help : https://help.launchpad.net/ListHelp
> <https://help.launchpad.net/ListHelp>
>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> Unsubscribe : https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> More help : https://help.launchpad.net/ListHelp
> <https://help.launchpad.net/ListHelp>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> Unsubscribe : https://launchpad.net/~kicad-developers
> <https://launchpad.net/~kicad-developers>
> More help : https://help.launchpad.net/ListHelp
> <https://help.launchpad.net/ListHelp>
>
>
>
>
> --
> Remember The Past, Live The Present, Change The Future
> Those who look only to the past or the present are certain to miss
> the future [JFK]
>
> kandrey89@xxxxxxxxx <mailto:kandrey89@xxxxxxxxx <kandrey89@xxxxxxxxx>>
> Live Long and Prosper,
> Andrey
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> <kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help : https://help.launchpad.net/ListHelp
>
Follow ups
References
-
Re: Mac HighDPI performance
From: Seth Hillbrand, 2018-03-02
-
Re: Mac HighDPI performance
From: Andy Peters, 2018-03-02
-
Re: Mac HighDPI performance
From: Bernhard Stegmaier, 2018-03-02
-
Re: Mac HighDPI performance
From: Andrey Kuznetsov, 2018-03-03
-
Re: Mac HighDPI performance
From: Jeff Young, 2018-03-03
-
Re: Mac HighDPI performance
From: Wayne Stambaugh, 2018-03-03
-
Re: Mac HighDPI performance
From: Andrey Kuznetsov, 2018-03-04
-
Re: Mac HighDPI performance
From: Bernhard Stegmaier, 2018-03-04
-
Re: Mac HighDPI performance
From: Jeff Young, 2018-03-04
-
Re: Mac HighDPI performance
From: Wayne Stambaugh, 2018-03-04
-
Re: Mac HighDPI performance
From: Bernhard Stegmaier, 2018-03-04