Compose Desktop, when resizing, can never achieve ...
# compose-desktop
w
Compose Desktop, when resizing, can never achieve the native fps. Is this related to Compose's rendering mechanism? When I tested Fleet, Fleet was able to achieve the same effect as native. Since Fleet's technical implementation should be similar to Compose, I believe it is a problem with Compose. I saw several similar issues on Youtrack, but there were no answers, so I want to ask here, is this the current situation?
I am use Macos M3Max. Compose 1.7.1 1.7.0 1.6.11 Kotlin 2.0.21
runRelease
will be better, but there are still some lags.
m
What is the technical implementation of Fleet? Is that documented somewhere? I am just curious.
m
Are you using JBR ?
w
@mohamed rejeb No, I am trying now!
Tried JBR17 and JBR21, still there is a gap. But it has improved a lot. In addition, it was also found that the GPU usage is 0.
j
If that fixed it, it would still mean it'd be an issue for users of the end result package, right? Or do you set JBR to be used & packaged when building a distribution?
w
Maybe I package JBR together. What I'm trying is a new project, which only displays a window. If this can't achieve a native effect, I can't imagine what will happen when a large number of screens are added later.
d
Why would JBR be different to, say, the runtime in OpenJDK for Compose performance - are there specific optimisations?
w
JetBrains Runtime is a fork of OpenJDK available for Windows, Mac OS X, and Linux. It supports enhanced class redefinition (DCEVM), features optional JCEF, a framework for embedding Chromium-based browsers, includes a number of improvements in font rendering, keyboards support, windowing/focus subsystems, HiDPI, accessibility, and performance, provides better desktop integration and bugfixes not yet present in OpenJDK. https://github.com/JetBrains/JetBrainsRuntime
I share fleet java config here. [Application] app.mainmodule=fleet.dock.bootstrap/fleet.dock.bootstrap.FleetBootstrap [JavaOptions] java-options=-Djpackage.app-version=1.42.88 java-options=-ea java-options=-Xmx1G java-options=-XX:+HeapDumpOnOutOfMemoryError java-options=-XX:HeapDumpGzipLevel=1 java-options=-XX:NativeMemoryTracking=summary java-options=-XX:CICompilerCount=2 java-options=-XX:+UnlockDiagnosticVMOptions java-options=-XX:TieredOldPercentage=100000 java-options=-Dfleet.distribution.mode=true java-options=-Dfleet.dock.version=1.42.88 java-options=-Dfleet.build.date=1731420450 java-options=-Dkotlinx.coroutines.debug=off java-options=-Dkotlinx.coroutines.debug.enable.creation.stack.trace=false java-options=-Dfleet.coroutines.debug.probes.enabled=true java-options=-Dfleet.sparkle.enabled=true java-options=-Dfleet.product.name=Fleet java-options=-Dnoria.render.mode=skiko java-options=-Dsun.java2d.uiScale.enabled=true java-options=-Dcom.sun.awt.reportDeadKeysAsNormal=false java-options=-Dskiko.collect.stat=true java-options=--add-opens=java.base/java.lang=fleet.util.modules java-options=-Xdock:name=Fleet java-options=-Dapple.awt.captureNextAppWinKey=false java-options=-Dapple.awt.application.appearance=system java-options=-Dfleet.distribution.app.directory=$APPDIR java-options=-XX:SharedArchiveFile=$APPDIR/cds/fleet-1.42.88.jsa