Pcbnew: Screen refresh and ratsnest glitches while moving items

Bug #1833834 reported by Aleksandr Sh
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KiCad
Expired
Low

Bug Description

If you grab a footprint and move it around, the screen is only updated when you stop your cursor, as seen in the first part of the video.

If you grab not just one footprint, the screen is refreshed always while you're moving the block, as expected.
There seem to be some glitches with ratsnest: sometimes the airwires update while I move the cursor, sometimes, only when I stop.

Application: Pcbnew
Version: (5.1.2-151-gc951ca6f4)-1, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.61.1 OpenSSL/1.1.1 (WinSSL) zlib/1.2.11 brotli/1.0.6 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) nghttp2/1.34.0
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.68.0
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.61.1
    Compiler: GCC 8.2.0 with C++ ABI 1013

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=OFF
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=OFF
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Tags: pcbnew
Revision history for this message
Aleksandr Sh (dsa-t) wrote :
Revision history for this message
Aleksandr Sh (dsa-t) wrote :

I noticed that the first case also happens with multiple selection more complex boards.

It seems to randomly choose to behave in one of the following behaviors while moving:
-to update airwires and screen smoothly;
-to update screen and airwires only when cursor stops,
-to update screen smoothly, but update airwires only when cursor stops.

On the video you can even see it change behavior from 2nd to 3rd while moving the block in complex_hierarchy demo.

description: updated
summary: - Screen not refreshed while moving a footprint
+ Pcbnew: Screen refresh and ratsnest glitches while moving items
Revision history for this message
Aleksandr Sh (dsa-t) wrote :
Revision history for this message
Seth Hillbrand (sethh) wrote :

The ratsnest lines are not drawn on purpose when it takes too long to re-calculate them while moving. I think we might be able to adjust how that happens to make it less jarring.

There shouldn't be a discrepancy between moving a footprint and moving a group, so that's something we can look at as well.

This won't be in 5.1.3 as but might make it into 5.1.4

Changed in kicad:
importance: Undecided → Low
milestone: none → 5.1.3
status: New → Triaged
assignee: nobody → Seth Hillbrand (sethh)
tags: added: pcbnew
Revision history for this message
Aleksandr Sh (dsa-t) wrote :

What is really annoying is that you can't zoom while moving a footprint.

Revision history for this message
Seth Hillbrand (sethh) wrote :

@Aleksandr- Please open a new bug report for unrelated issues. This will help us to track them and fix them.

Revision history for this message
Aleksandr Sh (dsa-t) wrote :

I mean that internally, zooming zooms, but the screen only updates when I stop moving the cursor, which is what this bug is about.

Revision history for this message
Aleksandr Sh (dsa-t) wrote :

On a faster, 6-core Linux machine, the behavior
-to update screen and airwires only when cursor stops,
does not happen, even when moving footprints.

But it still behaves randomly in these ways:
-to update airwires and screen smoothly;
-to update screen smoothly, but update airwires only when cursor stops.

Application: Pcbnew
Version: 5.1.2-br-unknown-df3a57d~84~ubuntu18.04.1, release build
Libraries:
    wxWidgets 3.0.4
    libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Platform: Linux 4.15.0-20-generic x86_64, 64 bit, Little endian, wxGTK
Build Info:
    wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.22
    Boost: 1.65.1
    OpenCASCADE Community Edition: 6.9.1
    Curl: 7.58.0
    Compiler: GCC 7.4.0 with C++ ABI 1011

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=ON
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_PYTHON3=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
    KICAD_SCRIPTING_ACTION_MENU=ON
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Changed in kicad:
milestone: 5.1.3 → 5.1.4
Changed in kicad:
milestone: 5.1.4 → 5.1.5
Revision history for this message
Paul (paul-janicki) wrote :

I'm seeing the same footprint move issues running on Windows 10. Components won't "redraw" whilst being dragged, or are very laggy whilst dragging, depends how quickly you are moving them and how many are selected. Makes pcbnew unusable for me. One of my CPU cores is running just shy of 100% load when it's happening.

I never used to have this behaviour running 5.1.0 and 5.1.2 previously, not sure if a windows update or driver update caused it, still present in 5.1.4. I have tried different versions of the NVidia graphics driver as that is what I update most often, but no change with different versions.

Revision history for this message
Seth Hillbrand (sethh) wrote :

@Paul- Could you downgrade to 5.1.2 and see if the behavior is the same?

Revision history for this message
Aleksandr Sh (dsa-t) wrote :

I tested until version 5.0.0. The issue is present in all of them.
On one of the boards, the footprint freeze issue starts occurring from version 5.0.1_1 ((5.0.1)-rc2) and up.
On the other, the issue reproduces with 32-pin components, but not with 1-4 pin ones.

Application: kicad
Version: (5.0.0), release build
Libraries:
    wxWidgets 3.0.3
    libcurl/7.54.1 OpenSSL/1.0.2l zlib/1.2.11 libssh2/1.8.0 nghttp2/1.23.1 librtmp/2.3
Platform: Windows 8 (build 9200), 64-bit edition, 64 bit, Little endian, wxMSW
Build Info:
    wxWidgets: 3.0.3 (wchar_t,wx containers,compatible with 2.8)
    Boost: 1.60.0
    OpenCASCADE Community Edition: 6.8.0
    Curl: 7.54.1
    Compiler: GCC 7.1.0 with C++ ABI 1011

Build settings:
    USE_WX_GRAPHICS_CONTEXT=OFF
    USE_WX_OVERLAY=OFF
    KICAD_SCRIPTING=ON
    KICAD_SCRIPTING_MODULES=ON
    KICAD_SCRIPTING_WXPYTHON=ON
    KICAD_SCRIPTING_ACTION_MENU=OFF
    BUILD_GITHUB_PLUGIN=ON
    KICAD_USE_OCE=ON
    KICAD_USE_OCC=OFF
    KICAD_SPICE=ON

Revision history for this message
Paul (paul-janicki) wrote :

I have tested with 5.1.0 and 5.1.2 recently. Completely clean installed KiCad, deleted all settings folders and anything else left from uninstalling, for both older versions. It made no difference, see exactly the same behaviour on both versions. It also does it with pcbnew in both accelerated or fallback graphics modes. Legacy Toolset is ok.

Changed in kicad:
milestone: 5.1.5 → 5.1.6
Revision history for this message
Paul (paul-janicki) wrote :

Just to post an update I recently replaced the main ssd in the system I am having these issues on. This forced a full reinstall from scratch with fresh downloads of all drivers/software/windows etc. Still seeing exactly the same lag issues with the latest KiCad (5.1.5) on a fresh install.

Revision history for this message
Maciej Suminski (orsonmmz) wrote :

KiCad has migrated to Gitlab, this issue is available here: https://gitlab.com/kicad/code/kicad/-/issues/1909

Revision history for this message
KiCad Janitor (kicad-janitor) wrote :

KiCad bug tracker has moved to Gitlab. This report is now available here: https://gitlab.com/kicad/code/kicad/-/issues/1909

Changed in kicad:
status: Triaged → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.