Skip to content

Pan, zoom freezing due to netname redraw on complex boards.

Description

If I pan in PCB editor slowly, or frequently stopping the movement, or zoom closely to tracks, then the canvas frequently freezes for about 0.5 seconds to update the netnames.

In PCB_EDIT_FRAME::redrawNetnames, all tracks are updated with flag KIGFX::REPAINT which seem to cause cached containers on all layers to update.

Steps to reproduce

  1. Open a complex board
  2. Try panning slowly, or with frequent stopping of movement, or zooming near areas with tracks
  3. See that the canvas frequently freezes during slow movement.

KiCad Version

Application: KiCad PCB Editor (64-bit)

Version: (6.99.0-3423-g8a0384e2f6), release build

Libraries:
	wxWidgets 3.1.7
	FreeType 2.11.1
	HarfBuzz 4.2.0
	FontConfig 2.14.0
	libcurl/7.83.1-DEV Schannel zlib/1.2.12

Platform: Windows 10 (build 19044), 64-bit edition, 64 bit, Little endian, wxMSW

Build Info:
	Date: Sep 16 2022 03:13:58
	wxWidgets: 3.1.7 (wchar_t,wx containers)
	Boost: 1.79.0
	OCC: 7.6.0
	Curl: 7.83.1-DEV
	Compiler: Visual C++ 1933 without C++ ABI

Build settings:
	KICAD_SPICE=OFF