FreeCAD icon indicating copy to clipboard operation
FreeCAD copied to clipboard

UX: Choppy animation of 'View Fit' shows apparent performance regression in RC1.0

Open GAZ082 opened this issue 1 year ago • 18 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues

Problem description

I have RC1 and another build some kind folk at the Discord shared. I'm doing a View Fit on both. You see that the animation is not smooth, there are "pulls". Also if you check the top right corner of my video and see the CPU usage, it's like 10% higher than the old build. Settings used are the same. Both are APPIMAGES.

https://github.com/user-attachments/assets/6514ef28-f919-464c-ba47-d4b7fe29e667

Full version info

## RC1:
OS: Arch Linux (GNOME/gnome)
Word size of FreeCAD: 64-bit
Version: 1.0.0RC1.38643 (Git) AppImage
Build type: Release
Branch: main
Hash: fe40748c10503eed367840239db3e0f81873e359
Python 3.11.9, Qt 5.15.13, Coin 4.0.2, Vtk 9.2.6, OCC 7.7.2
Locale: English/United States (en_US)
Installed mods: 
  * Render 2024.8.4
  * OpenTheme 2024.9.1
  * QuickMeasure 2022.10.28

## 0.22 compared:
OS: Arch Linux (GNOME/gnome)
Word size of FreeCAD: 64-bit
Version: 0.22.0dev.38506 (Git) AppImage
Build type: Release
Branch: main
Hash: ebf02483af225b502fccfa7111499dfde33999fd
Python 3.11.9, Qt 5.15.13, Coin 4.0.2, Vtk 9.2.6, OCC 7.7.2
Locale: English/United States (en_US)
Installed mods: 
  * Render 2024.8.4
  * OpenTheme 2024.9.1
  * QuickMeasure 2022.10.28

Subproject(s) affected?

None

Anything else?

No response

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct

GAZ082 avatar Sep 10 '24 22:09 GAZ082

I did a VF here, but any kind of model manipulation is choppy. @luzpaz

GAZ082 avatar Sep 10 '24 23:09 GAZ082

Added RC-Blocker tag to make sure this is highlighted.

luzpaz avatar Sep 10 '24 23:09 luzpaz

Still with issues in 1.1.0dev Wonder if this is AMD card specific. I have a AMD Radeon™ RX 550 / 550 Series @skrystosik has a Mac with xr6600xt @luzpaz

GAZ082 avatar Sep 14 '24 14:09 GAZ082

@luzpaz I've changed your tag RC-blocker to blocker as RC is already out. @chennes FYI

maxwxyz avatar Sep 14 '24 15:09 maxwxyz

I have a NVIDIA RTX 3060 Ti, running driver 560.35.03 with Wayland and it works fine.

Rexbas avatar Sep 15 '24 13:09 Rexbas

I have a NVIDIA RTX 3060 Ti, running driver 560.35.03 with Wayland and it works fine.

probably banku you have windows. Problem is on OSX

skrystosik avatar Sep 15 '24 13:09 skrystosik

I think I observed poor performance on RC1 too. Not as hard as in the video above but something was not as fast as before. It tough ot was my design that was getting bit big and complex.

I have NVIDIA but I am using the Nouveau drivers. I am running X11.

I observed a worse behavior when moving the 3d model when working with Trackpad mode, using Draft Polyline.

leoheck avatar Sep 15 '24 13:09 leoheck

This is ridiculous. I renamed my $HOME/.config/FreeCAD files to .old. Restarted, the performance was ok. I renamed back the SAME FILES to restore my configuration, expecting to see again the choppyness, and IT KEPT WORKING FINE.

I do not want to make any conjecture, but this is the second time that messing with the config files "resolved" the issue.

@leoheck see if this works for you as well.

GAZ082 avatar Sep 15 '24 15:09 GAZ082

@skrystosik see if my "solution" worked for you too. Rename the config files to .old, restart FC, see if works fine. And now revert back the .old to the original name to get back your config options and see if the good performance sticks after restarting a second time.

GAZ082 avatar Sep 15 '24 15:09 GAZ082

I see you have this OpenTheme 2024.9.1, I am also using open theme, maybe it is related...

leoheck avatar Sep 15 '24 22:09 leoheck

@skrystosik see if my "solution" worked for you too. Rename the config files to .old, restart FC, see if works fine. And now revert back the .old to the original name to get back your config options and see if the good performance sticks after restarting a second time.

Actually after going back to 0.22 and upgrade to 1.0 RC that was out 3 days ago I don't see this issue anymore. I have only choppines while using space mouse without dominant mode but this is probably because of zoom step. Without dominant mode it's constantly changing even if I don't zoom and this makes this not smooth. I'll use to use dominant mode and I'm happy for now.

skrystosik avatar Sep 16 '24 07:09 skrystosik

I'm dropping the Blocker tag here since it seems to be a strangely intermittent (and therefore difficult to reproduce and debug). Issue. I will leave the Issue open, but the devs at this morning's meeting didn't feel like this should stop the release of 1.0.

chennes avatar Sep 16 '24 16:09 chennes

I don't have this choppy animation. But I am experiencing a reduced speed while designing. It was not like that 2 or 3 weeklies before.

leoheck avatar Sep 16 '24 16:09 leoheck

Yeah, i'm also noticing this.

GAZ082 avatar Sep 21 '24 19:09 GAZ082

JFYI ,speed optimization in Assembly wb pending #16787
Not convinced it's totally related but it could be ?

luzpaz avatar Sep 25 '24 15:09 luzpaz

Every bit helps! Thanks for the heads up.

GAZ082 avatar Sep 25 '24 15:09 GAZ082

Can we get more eyes on this to fish out the intermittency of this bug ?

luzpaz avatar Oct 11 '24 18:10 luzpaz

Don't know if this helps but I get a smooth animation with Nvidia latest propietary drivers on debian+KDE. Buuuut Fit All smoothly animates to final orientation and Fit Selection jumps to final orientation. Also, there appears to be no difference in final orientation. Meaning any face on the object using Fit Selection produces the same final image as just using Fit All. Here's my build info:

OS: Debian GNU/Linux 12 (bookworm) (KDE/plasma)
Word size of FreeCAD: 64-bit
Version: 1.0.0RC2.38806 (Git) AppImage
Build type: Release
Branch: (HEAD detached at 1.0rc2)
Hash: 3d63fc6c2f665a8d5e6468845a419bcac80756c7
Python 3.11.9, Qt 5.15.13, Coin 4.0.3, Vtk 9.2.6, OCC 7.7.2
Locale: English/United States (en_US)
Stylesheet/Theme/QtStyle: FreeCAD Dark.qss/FreeCAD Dark/Fusion

ChrisJones79 avatar Oct 19 '24 12:10 ChrisJones79

@ChrisJones79 can you also check the weekly build, if you don't mind? (https://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/weekly-builds) TIA

luzpaz avatar Oct 23 '24 14:10 luzpaz

1.0.0RC2.38806

Is that what you're looking for?

ChrisJones79 avatar Oct 23 '24 14:10 ChrisJones79

@ChrisJones79 that is Release Candiddate. I'm asking if you would kindly test the development version (which we call 'weekly' but is actually generated more that once a week)

luzpaz avatar Oct 23 '24 14:10 luzpaz

Ok, I understand. Yes, I'll do that. Is there a way to automatically update, or, at least be notified when a new build is ready?

ChrisJones79 avatar Oct 23 '24 14:10 ChrisJones79

@ChrisJones79 if you are using linux i can send you the script i use to run it, it automatically downloads and run the latest weekly Appimage.

GAZ082 avatar Oct 23 '24 15:10 GAZ082

@ChrisJones79 i see you do. You may want to change or delete the "notify send" commands, dont know if these work for KDE (gnome user here). And update binaryLocation.


clear
cd /tmp
binaryLocation="/opt/FreeCAD"
binary="/opt/FreeCAD/FreeCAD.AppImage"
remoteFileURL=$(curl https://api.github.com/repos/FreeCAD/FreeCAD-Bundle/releases/tags/weekly-builds | jq '.assets[].browser_download_url' | grep -Eo 'https.*Linux-x86_64.*AppImage' | head -n1)
remoteFile=$(echo $remoteFileURL | grep -Eo "FreeCAD_.*AppImage$")
# remoteFileURL="https://github.com/FreeCAD/FreeCAD-Bundle/releases/download/weekly-builds/FreeCAD_weekly-builds-37100-conda-Linux-x86_64-py311.AppImage"
remoteVer=$(echo $remoteFileURL | grep -Eo "[0-9]{5,}")
touch $binaryLocation/last_version_downloaded
localVer=$(cat $binaryLocation/last_version_downloaded)
if [ "$remoteVer" = "$localVer" ]; then
    echo "-------------------------"
    echo "-Running latest version!-"
    echo "-------------------------"
    $binary
    else
    notify-send "Updating FreeCAD"
    echo "-------------"
    echo "-Updating...-"
    echo "-------------"
    echo $remoteFileURL
    wget $remoteFileURL
    echo $remoteVer > $binaryLocation/last_version_downloaded
    mv $remoteFile $binary
    chmod +x $binary
    notify-send "Done."
    $binary
fi```

GAZ082 avatar Oct 23 '24 15:10 GAZ082

Thank you! I'll check out the script this evening.

ChrisJones79 avatar Oct 23 '24 15:10 ChrisJones79

This issue emerged again. There is something in the config that triggers this. Used the Safe Mode and works fine. (Black mode my customized one, white is Safe Mode).

OS: Arch Linux (GNOME/gnome/xcb) Word size of FreeCAD: 64-bit Version: 1.1.0dev.39092 (Git) AppImage Build type: Release Branch: main Hash: a65d05c6e495038168eefcba6a1e43218fbb3a20 Python 3.11.9, Qt 5.15.13, Coin 4.0.3, Vtk 9.2.6, OCC 7.7.2 Locale: English/United States (en_US) Stylesheet/Theme/QtStyle: unset/unset/Qt default

https://github.com/user-attachments/assets/0098b880-1cf3-4aac-83b7-294329da9c78

GAZ082 avatar Nov 01 '24 02:11 GAZ082

Can you attach the backed-up config file in question ?

luzpaz avatar Nov 01 '24 18:11 luzpaz

I suppose you refer to my actual config files. Yes. files.zip

I'm trying to figure out a way to compare with the vanilla files Safe Mode is using.

@luzpaz

GAZ082 avatar Nov 02 '24 12:11 GAZ082

@luzpaz do you happen to run yours as a scheduled job? cron? Or do you manually run this?

Also, what is the dev release frequency?

@ChrisJones79 i see you do. You may want to change or delete the "notify send" commands, dont know if these work for KDE (gnome user here). And update binaryLocation.


clear
cd /tmp
binaryLocation="/opt/FreeCAD"
binary="/opt/FreeCAD/FreeCAD.AppImage"
remoteFileURL=$(curl https://api.github.com/repos/FreeCAD/FreeCAD-Bundle/releases/tags/weekly-builds | jq '.assets[].browser_download_url' | grep -Eo 'https.*Linux-x86_64.*AppImage' | head -n1)
remoteFile=$(echo $remoteFileURL | grep -Eo "FreeCAD_.*AppImage$")
# remoteFileURL="https://github.com/FreeCAD/FreeCAD-Bundle/releases/download/weekly-builds/FreeCAD_weekly-builds-37100-conda-Linux-x86_64-py311.AppImage"
remoteVer=$(echo $remoteFileURL | grep -Eo "[0-9]{5,}")
touch $binaryLocation/last_version_downloaded
localVer=$(cat $binaryLocation/last_version_downloaded)
if [ "$remoteVer" = "$localVer" ]; then
    echo "-------------------------"
    echo "-Running latest version!-"
    echo "-------------------------"
    $binary
    else
    notify-send "Updating FreeCAD"
    echo "-------------"
    echo "-Updating...-"
    echo "-------------"
    echo $remoteFileURL
    wget $remoteFileURL
    echo $remoteVer > $binaryLocation/last_version_downloaded
    mv $remoteFile $binary
    chmod +x $binary
    notify-send "Done."
    $binary
fi```

ChrisJones79 avatar Nov 09 '24 14:11 ChrisJones79

Also, what is the dev release frequency?

For the past many months, the "weekly" development releases have happened twice a week. Usually late Monday and late Friday (US Central time -- UTC-6). For example, I see fresh releases about 13 hours ago. https://github.com/FreeCAD/FreeCAD-Bundle/releases/tag/weekly-builds

JohnOCFII avatar Nov 09 '24 15:11 JohnOCFII