Huge JavaFX performance drop in Debian Jessie

Kevin Rushforth kevin.rushforth at oracle.com
Tue Dec 22 15:57:12 UTC 2015


This is the normal stack trace I would expect when waiting for rendering 
to complete and the rendering is taking a long time.

So in short: I see nothing strange or remarkable about the stack trace.

-- Kevin


Markus KARG wrote:
> Thanks for the stacktrace. This is definitively a separate issue. Yours
> actually waits for the renderer to complete the previous frame. Mine is
> heavily working inside ToolbarSkin. Technically unrelated, but leading to
> the same outcome: frozen UI.
>
> What seems odd is that the object reference the JavaFX thread is waiting for
> is not locked by any other thread, particularly *not* the renderer. Never
> saw something like that.
>
> One more thing I noticed in your stacktrace: The prism font dispose has
> locked an object and now waits for exactly that object. That looks strange.
> How can a thread wait for an object which itself has locked?!
>
> -Markus
>
> -----Original Message-----
> From: Chris Newland [mailto:cnewland at chrisnewland.com] 
> Sent: Dienstag, 22. Dezember 2015 10:06
> To: Chien Yang; Markus KARG
> Cc: openjfx-dev at openjdk.java.net
> Subject: Re: Huge JavaFX performance drop in Debian Jessie
>
> Hi Chien,
>
> Thanks, using -Dprism.order=sw prevents the multi-second hangs but JavaFX
> desktop performance is still noticably worse than in Wheezy (probably
> because the CPU is now doing all the work and this little Atom is maxed
> out).
>
> Something has definitely changed under the hood in Jessie but it's
> probably only noticeable in these low powered GPUs. Slowdown is with
> LXDE+lightdm and also Gnome3.
>
> Markus,
>
> Here is what the threads are doing when the scrollbar is hanging (with es2)
>
> Regards,
>
> Chris
>
> 2015-12-22 09:00:30
> Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.66-b17 mixed mode):
>
> "Attach Listener" #14 daemon prio=9 os_prio=0 tid=0x00007fec58001000
> nid=0x17f9 waiting on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
> "Prism Font Disposer" #13 daemon prio=10 os_prio=0 tid=0x00007fec2c192800
> nid=0x17e1 in Object.wait() [0x00007fec3a5b2000]
>    java.lang.Thread.State: WAITING (on object monitor)
> 	at java.lang.Object.wait(Native Method)
> 	- waiting on <0x00000000e10486f8> (a
> java.lang.ref.ReferenceQueue$Lock)
> 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
> 	- locked <0x00000000e10486f8> (a java.lang.ref.ReferenceQueue$Lock)
> 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
> 	at com.sun.javafx.font.Disposer.run(Disposer.java:93)
> 	at java.lang.Thread.run(Thread.java:745)
>
> "JavaFX Application Thread" #12 prio=5 os_prio=0 tid=0x00007fec4c093800
> nid=0x17e0 waiting on condition [0x00007fec4412e000]
>    java.lang.Thread.State: WAITING (parking)
> 	at sun.misc.Unsafe.park(Native Method)
> 	- parking to wait for  <0x00000000f67d7668> (a
> java.util.concurrent.CountDownLatch$Sync)
> 	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
> 	at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(
> AbstractQueuedSynchronizer.java:836)
> 	at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterru
> ptibly(AbstractQueuedSynchronizer.java:997)
> 	at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterrupt
> ibly(AbstractQueuedSynchronizer.java:1304)
> 	at
> java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)
> 	at
> com.sun.javafx.tk.quantum.PaintCollector.waitForRenderingToComplete(PaintCol
> lector.java:157)
> 	at
> com.sun.javafx.tk.quantum.GlassScene.waitForRenderingToComplete(GlassScene.j
> ava:127)
> 	at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2410)
> 	at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:355)
> 	at com.sun.javafx.tk.Toolkit$$Lambda$359/1368562994.run(Unknown
> Source)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:354)
> 	at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:381)
> 	at
> com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:510)
> 	at
> com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:490)
> 	at
> com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$404(QuantumToolki
> t.java:319)
> 	at
> com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$47/1617205338.run(Unknown
> Source)
> 	at
> com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java
> :95)
> 	at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
> 	at
> com.sun.glass.ui.gtk.GtkApplication.lambda$null$49(GtkApplication.java:139)
> 	at
> com.sun.glass.ui.gtk.GtkApplication$$Lambda$43/357920869.run(Unknown
> Source)
> 	at java.lang.Thread.run(Thread.java:745)
>
> "Thread-2" #11 daemon prio=5 os_prio=0 tid=0x00007fec4c08f800 nid=0x17df
> in Object.wait() [0x00007fec70143000]
>    java.lang.Thread.State: WAITING (on object monitor)
> 	at java.lang.Object.wait(Native Method)
> 	at java.lang.Object.wait(Object.java:502)
> 	at
> com.sun.glass.ui.InvokeLaterDispatcher.run(InvokeLaterDispatcher.java:126)
> 	- locked <0x00000000e0ffc670> (a java.lang.StringBuilder)
>
> "QuantumRenderer-0" #9 daemon prio=5 os_prio=0 tid=0x00007fec4c04c000
> nid=0x17de runnable [0x00007fec7118b000]
>    java.lang.Thread.State: RUNNABLE
> 	at com.sun.prism.es2.GLContext.nDrawIndexedQuads(Native Method)
> 	at com.sun.prism.es2.GLContext.drawIndexedQuads(GLContext.java:724)
> 	at
> com.sun.prism.es2.ES2VertexBuffer.drawQuads(ES2VertexBuffer.java:65)
> 	at com.sun.prism.impl.VertexBuffer.flush(VertexBuffer.java:105)
> 	at
> com.sun.prism.impl.BaseContext.flushVertexBuffer(BaseContext.java:111)
> 	at
> com.sun.prism.impl.ps.BaseShaderContext.setRenderTarget(BaseShaderContext.ja
> va:747)
> 	at
> com.sun.prism.impl.BaseContext.setRenderTarget(BaseContext.java:121)
> 	at com.sun.prism.impl.BaseGraphics.<init>(BaseGraphics.java:105)
> 	at
> com.sun.prism.impl.ps.BaseShaderGraphics.<init>(BaseShaderGraphics.java:86)
> 	at com.sun.prism.es2.ES2Graphics.<init>(ES2Graphics.java:42)
> 	at com.sun.prism.es2.ES2Graphics.create(ES2Graphics.java:50)
> 	at
> com.sun.prism.es2.ES2RTTexture.createGraphics(ES2RTTexture.java:312)
> 	at
> com.sun.prism.impl.ps.BaseShaderGraphics.initLCDSampleRT(BaseShaderGraphics.
> java:1929)
> 	at
> com.sun.prism.impl.ps.BaseShaderGraphics.drawString(BaseShaderGraphics.java:
> 2059)
> 	at com.sun.javafx.sg.prism.NGText.renderText(NGText.java:312)
> 	at com.sun.javafx.sg.prism.NGText.renderContent2D(NGText.java:270)
> 	at com.sun.javafx.sg.prism.NGShape.renderContent(NGShape.java:261)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
> 	at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
> 	at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
> 	at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
> 	at
> com.sun.javafx.sg.prism.CacheFilter.impl_renderNodeToCache(CacheFilter.java:
> 671)
> 	at com.sun.javafx.sg.prism.CacheFilter.render(CacheFilter.java:575)
> 	at com.sun.javafx.sg.prism.NGNode.renderCached(NGNode.java:2358)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2044)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
> 	at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
> 	at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
> 	at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
> 	at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
> 	at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
> 	at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
> 	at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
> 	at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
> 	at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
> 	at com.sun.javafx.sg.prism.NGNode.renderForClip(NGNode.java:2294)
> 	at com.sun.javafx.sg.prism.NGNode.renderRectClip(NGNode.java:2188)
> 	at com.sun.javafx.sg.prism.NGNode.renderClip(NGNode.java:2214)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2047)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at com.sun.javafx.sg.prism.NGGroup.renderContent(NGGroup.java:235)
> 	at com.sun.javafx.sg.prism.NGRegion.renderContent(NGRegion.java:576)
> 	at com.sun.javafx.sg.prism.NGNode.doRender(NGNode.java:2053)
> 	at com.sun.javafx.sg.prism.NGNode.render(NGNode.java:1945)
> 	at
> com.sun.javafx.tk.quantum.ViewPainter.doPaint(ViewPainter.java:477)
> 	at
> com.sun.javafx.tk.quantum.ViewPainter.paintImpl(ViewPainter.java:323)
> 	at
> com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:91)
> 	at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> 	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
> 	at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
> 	at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:11
> 42)
> 	at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:6
> 17)
> 	at
> com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRender
> er.java:125)
> 	at java.lang.Thread.run(Thread.java:745)
>
> "JavaFX-Launcher" #8 prio=5 os_prio=0 tid=0x00007fec883c5800 nid=0x17dd
> waiting on condition [0x00007fec71292000]
>    java.lang.Thread.State: WAITING (parking)
> 	at sun.misc.Unsafe.park(Native Method)
> 	- parking to wait for  <0x00000000e0ba48f0> (a
> java.util.concurrent.CountDownLatch$Sync)
> 	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
> 	at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(
> AbstractQueuedSynchronizer.java:836)
> 	at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterru
> ptibly(AbstractQueuedSynchronizer.java:997)
> 	at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterrupt
> ibly(AbstractQueuedSynchronizer.java:1304)
> 	at
> java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)
> 	at
> com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java
> :873)
> 	at
> com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(Launche
> rImpl.java:182)
> 	at
> com.sun.javafx.application.LauncherImpl$$Lambda$2/93122545.run(Unknown
> Source)
> 	at java.lang.Thread.run(Thread.java:745)
>
> "Service Thread" #7 daemon prio=9 os_prio=0 tid=0x00007fec880ba000
> nid=0x17db runnable [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
> "C1 CompilerThread1" #6 daemon prio=9 os_prio=0 tid=0x00007fec880b5000
> nid=0x17da waiting on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
> "C2 CompilerThread0" #5 daemon prio=9 os_prio=0 tid=0x00007fec880b2000
> nid=0x17d9 waiting on condition [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
> "Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007fec880b0800
> nid=0x17d8 runnable [0x0000000000000000]
>    java.lang.Thread.State: RUNNABLE
>
> "Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007fec8807a800 nid=0x17d7
> in Object.wait() [0x00007fec72046000]
>    java.lang.Thread.State: WAITING (on object monitor)
> 	at java.lang.Object.wait(Native Method)
> 	- waiting on <0x00000000e0a33fe8> (a
> java.lang.ref.ReferenceQueue$Lock)
> 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
> 	- locked <0x00000000e0a33fe8> (a java.lang.ref.ReferenceQueue$Lock)
> 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
> 	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
>
> "Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007fec88078800
> nid=0x17d6 in Object.wait() [0x00007fec72147000]
>    java.lang.Thread.State: WAITING (on object monitor)
> 	at java.lang.Object.wait(Native Method)
> 	- waiting on <0x00000000e0a34028> (a java.lang.ref.Reference$Lock)
> 	at java.lang.Object.wait(Object.java:502)
> 	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
> 	- locked <0x00000000e0a34028> (a java.lang.ref.Reference$Lock)
>
> "main" #1 prio=5 os_prio=0 tid=0x00007fec8800a000 nid=0x17d2 waiting on
> condition [0x00007fec8edbb000]
>    java.lang.Thread.State: WAITING (parking)
> 	at sun.misc.Unsafe.park(Native Method)
> 	- parking to wait for  <0x00000000e0ffcda8> (a
> java.util.concurrent.CountDownLatch$Sync)
> 	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
> 	at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(
> AbstractQueuedSynchronizer.java:836)
> 	at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterru
> ptibly(AbstractQueuedSynchronizer.java:997)
> 	at
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterrupt
> ibly(AbstractQueuedSynchronizer.java:1304)
> 	at
> java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)
> 	at
> com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:
> 200)
> 	at
> com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:
> 143)
> 	at javafx.application.Application.launch(Application.java:252)
> 	at
> org.adoptopenjdk.jitwatch.ui.JITWatchUI.<init>(JITWatchUI.java:185)
> 	at org.adoptopenjdk.jitwatch.launch.LaunchUI.main(LaunchUI.java:18)
>
> "VM Thread" os_prio=0 tid=0x00007fec88073800 nid=0x17d5 runnable
>
> "GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007fec8801f000
> nid=0x17d3 runnable
>
> "GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007fec88021000
> nid=0x17d4 runnable
>
> "VM Periodic Task Thread" os_prio=0 tid=0x00007fec880bd000 nid=0x17dc
> waiting on condition
>
> JNI global references: 1037
>
>
>
>
>
>
>
> On Tue, December 22, 2015 08:00, Chien Yang wrote:
>   
>> Hi Chris,
>>
>>
>> JavaFX may run on Intel GMA 3150, but it is not a supported GPU. There
>> is a high likelihood that the drop in performance is caused by the switch
>> from sw pipe (Debian Wheezy) to es2 pipe (Debian Jessie). GMA 3150 is an
>> underpowered GPU for JavaFX's es2 pipe. You can try forcing JavaFX to use
>> its sw pipe by specifying -Dprism.order=sw in the run command.
>>
>> - Chien
>>
>>
>> On 12/21/2015 03:02 PM, Chris Newland wrote:
>>
>>     
>>> 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:4
>>> 0)
>>> 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(La
>>> uncherImpl.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