GerbView: Very Slow and incorrect display when opening many gerbers.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
KiCad |
Fix Released
|
Unknown
|
Bug Description
Hi,
When opening a large number of reasonably complex gerbers, GerbView slows down dramatically and eventually becomes unresponsive.
We have a complex project and are looking to view around 40 layers at once.
Even though we can correctly view a comparatively small number of layers (say, 4-6 at a time), when we try to view more than that, GerbView slows down dramatically ("Loading Gerbers Progress Bar").
Moreover, when trying to display more than around 30 gerbers (Not sure what the exact number is, but it's somewhere between 28 and 36), gerbview slows down dramatically, and the rendering breaks, with layers looking completely wrong. Regions that should be completely filled end up looking torn and jagged, and the resulting view is just wrong.
I've attached a screenshot of this to the report.
If you try and work around this, by opening a small number of gerbers at a time, and then incrementally adding more, it is still very slow. If we try and do this to open all 40, gerbview becomes unresponsive for a ridiculously long time (>3min), and then eventually puts up a progress bar ("Loading Gerber Files...").
After about 30s of seeing the progress bar, all the rendering breaks again, and it looks like the attached screen shot.
---
Application: kicad
Version: (5.1.0-
Libraries:
wxWidgets 3.0.4
libcurl/7.64.0 OpenSSL/1.1.1b zlib/1.2.11 libidn2/2.1.1 libpsl/0.20.2 (+libidn2/2.1.1) libssh2/1.8.1 nghttp2/1.36.0
Platform: Linux 5.0.2-arch1-1-ARCH x86_64, 64 bit, Little endian, wxGTK
Build Info:
wxWidgets: 3.0.4 (wchar_t,wx containers,
Boost: 1.69.0
OpenCASCADE Community Edition: 6.9.1
Curl: 7.64.0
Compiler: GCC 8.2.1 with C++ ABI 1013
Build settings:
USE_
USE_
KICAD_
KICAD_
KICAD_
KICAD_
KICAD_
KICAD_
BUILD_
KICAD_
KICAD_
KICAD_SPICE=ON
tags: | added: gerbview |
Changed in kicad: | |
milestone: | none → 6.0.0-rc1 |
Changed in kicad: | |
importance: | Low → Unknown |
status: | Expired → Fix Released |
Probably we are running into GAL limitations here. I have also seen these slowdowns when I was doing performance testing last year. If any developers feel like diving into the graphics stack, we clearly have some work to do here to optimize things. GerbView is kind of a worst-case stress test since Gerber layers can have way more graphics data than the equivalent PcbNew objects that generate them.