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:cnewl...@chrisnewland.com] Sent: Dienstag, 22. Dezember 2015 10:06
To: Chien Yang; Markus KARG
Cc: openjfx-dev@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






Reply via email to