-
Notifications
You must be signed in to change notification settings - Fork 89
JavaFX
JavaFX works best when it can use accelerated graphics and runs directly on a host.
Running via ssh -X
might work, but will always be much slower.
Similarly, executing inside a VM tends to be slower.
Thinlinc, a commercial type of VNC, tends to be acceptable.
On Linux, JavaFX uses GTK, and can run with either GTK 2 or GTK 3,
albeit GTK 2 support is deprecated and about to be removed.
It will default to the newer version, but a specific version can be requested
via -Djdk.gtk.version=2
or -Djdk.gtk.version=3
.
If for example drag/drop of panels acts erratically,
try running with -Djdk.gtk.version=2
.
Note that any of these -D..
options need to be added to the launcher script.
If your phobus.sh
currently contains something like this:
java -jar $JAR $OPT "$@" &
change that to for example
java -Djdk.gtk.version=3 -Djdk.gtk.verbose=true -jar $JAR $OPT "$@" &
Starting the application with -Dprism.verbose=true
and -Djdk.gtk.verbose=true
will show which graphics pipeline is used.
es2
, the accelerated graphics pipeline, is good.
sw
, the software pipeline, is slow
and should be avoided except in very rare cases like
https://github.com/ControlSystemStudio/phoebus/issues/512,
where -Dprism.order=sw
can be used to enforce it.
Generally, setting -Dprism.forceGPU=true
can help convince JavaFX to use the accelerated graphics hardware.
See also Graphics Performance