GP 3.3 Performance issues on M3 (self built)

Hello! I’d like to build your app from sources but for some reason I get performance issues on git/ganttproject-3.3.3316 (master version seems to be not working properly)

I’m using JDK FX optimized for silicon arch - azul JDK FX 17

/usr/libexec/java_home -V
Matching Java Virtual Machines (5):
    21.0.7 (arm64) "Azul Systems, Inc." - "Zulu 21.42.19" /Library/Java/JavaVirtualMachines/zulu-21.jdk/Contents/Home
    17.0.15 (arm64) "Azul Systems, Inc." - "Zulu JRE 17.58.21" /Library/Java/JavaVirtualMachines/zulu-17.jre/Contents/Home
    17.0.15 (arm64) "Azul Systems, Inc." - "Zulu 17.58.21" /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
    17.0.15+10-LTS (arm64) "BellSoft" - "BellSoft Liberica JDK 17.0.15+10" /Library/Java/JavaVirtualMachines/liberica-jdk-17-full.jdk/Contents/Home
    1.8.451.10 (arm64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
/Library/Java/JavaVirtualMachines/zulu-21.jdk/Contents/Home

JAVA_HOME:

echo ${JAVA_HOME}
/Users/andrei.kiselev/.jenv/versions/zulu64-17.0.15

Performance issue is the same as in the post here:

I’m trying to build the app with this Prism specified flags:
JAVA_OPTS="-Dprism.order=es2,sw -Dprism.verbose=true -Dprism.maxvram=4096M -Danimation.fullspeed=true -Dprism.vsync=false" ./gradlew runApp

But It doesn’t work as I expect - lagging in the gantt tab is still occur

Prebuilt silicon app works flawless, but I’m interested in building software from scratch and can not figure out root cause of the issue

Could you please share recommendations on how does current sillicon dmg optimized for flawless animations and without a lag

Did you try using Liberica JDK? The distro for macOS is bundled with Liberica.

Yes, I did

It’s installed in my system:
17.0.15+10-LTS (arm64) “BellSoft” - “BellSoft Liberica JDK 17.0.15+10” /Library/Java/JavaVirtualMachines/liberica-jdk-17-full.jdk/Contents/Home

Same issue

It is installed, but JAVA_HOME in your example above points to Azul Zulu JDK.

I’m trying to build the app with this Prism specified flags:
JAVA_OPTS="-Dprism.order=es2,sw -Dprism.verbose=true -Dprism.maxvram=4096M -Danimation.fullspeed=true -Dprism.vsync=false" ./gradlew runApp

I am not sure that gradle passes the environment variables defined this way to the Java machine that is used to start the application. It is more reliable to add the VM options directly in the gradle files: ganttproject/build.gradle at 03fb871c4ab26b5510c5c8870809e29b6baa7a72 · bardsoftware/ganttproject · GitHub

Also, try adding this: -Dsun.java2d.metal=true. This is actually the only performance-affecting option that our launcher on macOS uses: ganttproject/build-bin/package-mac.sh at BRANCH_3.3 · bardsoftware/ganttproject · GitHub

Thank you! This script worked like a charm
Seems like metal is not used by default

Sorry, didn’t mention it in my answer explicitly, but I did try use it in my JAVA_HOME during run