Huge JavaFX performance drop in Debian Jessie

Markus KARG markus at headcrashing.eu
Tue Dec 22 08:04:44 UTC 2015


Chris,

can you please check what the JFX thread does whilst the scroll-freeze (e.
g. using jstack or jvisualvm)? It would be great to learn whether it is
related to JDK-8145565.

-Markus

-----Original Message-----
From: openjfx-dev [mailto:openjfx-dev-bounces at openjdk.java.net] On Behalf Of
Chris Newland
Sent: Dienstag, 22. Dezember 2015 00:03
To: openjfx-dev at openjdk.java.net
Subject: Huge JavaFX performance drop in Debian Jessie

Upgraded my netbook (Intel GMA3150 onboard graphics) from Debian Wheezy to
Debian Jessie and JavaFX performance has suffered a huge drop :(

Possibly not JavaFX related but native apps (firefox etc) all seem to
perform the same and glxgears runs full sync framerate and 350fps unsynced.

JavaFX stages open blank and can take 5 seconds to render. Trying to scroll
a scrollbar pegs the CPU (java process at 100%) and hangs the app for 10s+.

Previously stages opened in under 1s and scrolling was instant.

My DemoFX test platform (Canvas based effects) seems to run the same so it
only appears to be windows / stages that are affected.

It's an old (2010) system but JavaFX performance has dropped from slow to
unusable.

Will keep investigating and test on my Debian desktop once I upgrade it to
Jessie.

Cheers,

Chris
@chriswhocodes

JavaFX debug:

Dec 21, 2015 10:35:25 PM com.sun.javafx.jmx.MXExtension
initializeIfAvailable
INFO: Failed to initialize management extension
java.lang.ClassNotFoundException: com.oracle.javafx.jmx.MXExtensionImpl
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at
com.sun.javafx.jmx.MXExtension.initializeIfAvailable(MXExtension.java:40)
	at
com.sun.javafx.application.LauncherImpl.startToolkit(LauncherImpl.java:669)
	at
com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java
:695)
	at
com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(Launche
rImpl.java:182)
	at java.lang.Thread.run(Thread.java:745)

Prism pipeline init order: es2 sw
Using java-based Pisces rasterizer
Using dirty region optimizations
Not using texture mask for primitives
Not forcing power of 2 sizes for textures Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling Prism pipeline name =
com.sun.prism.es2.ES2Pipeline Loading ES2 native library ... prism_es2
Loaded /home/chris/jdk1.8.0_66/jre/lib/ext/../amd64/libprism_es2.so from
relative path
	succeeded.
GLFactory using com.sun.prism.es2.X11GLFactory
(X) Got class = class com.sun.prism.es2.ES2Pipeline Initialized prism
pipeline: com.sun.prism.es2.ES2Pipeline
JavaFX: using com.sun.javafx.tk.quantum.QuantumToolkit
Loaded /home/chris/jdk1.8.0_66/jre/lib/ext/../amd64/libglass.so from
relative path Maximum supported texture size: 2048 Non power of two texture
support = true Maximum number of vertex attributes = 16 Maximum number of
uniform vertex components = 16384 Maximum number of uniform fragment
components = 16384 Maximum number of varying components = 32 Maximum number
of texture units usable in a vertex shader = 8 Maximum number of texture
units usable in a fragment shader = 8 Graphics Vendor: Intel Open Source
Technology Center
       Renderer: Mesa DRI Intel(R) IGD
        Version: 2.1 Mesa 10.3.2
 vsync: true vpipe: true
Loaded /home/chris/jdk1.8.0_66/jre/lib/ext/../amd64/libjavafx_font.so from
relative path Loaded
/home/chris/jdk1.8.0_66/jre/lib/ext/../amd64/libjavafx_font_freetype.so
from relative path
Loaded
/home/chris/jdk1.8.0_66/jre/lib/ext/../amd64/libjavafx_font_pango.so from
relative path
ES2ResourceFactory: Prism - createStockShader: FillPgram_Color.frag new
alphas
ES2ResourceFactory: Prism - createStockShader: Texture_Color.frag
ES2ResourceFactory: Prism - createStockShader:
Texture_LinearGradient_PAD.frag
ES2ResourceFactory: Prism - createStockShader: Solid_TextureRGB.frag
ES2ResourceFactory: Prism - createStockShader:
Solid_TextureFirstPassLCD.frag
ES2ResourceFactory: Prism - createStockShader:
Solid_TextureSecondPassLCD.frag
ES2ResourceFactory: Prism - createStockShader:
FillPgram_LinearGradient_PAD.frag
ES2ResourceFactory: Prism - createStockShader: Solid_Color.frag
ES2ResourceFactory: Prism - createStockShader: Mask_TextureSuper.frag new
alphas new alphas
PPSRenderer: scenario.effect - createShader: LinearConvolveShadow_4





More information about the openjfx-dev mailing list