I am seeing serious issues trying to run JavaFX apps on Windows 8 - looking for any input. As it stands, JavaFX appears to be useless on Windows 8...
Consistently, when I try to launch a particular stage, via stage.show() - the JavaFX Application Thread silently crashes. No logs, no stack trace, nothing. Just a completely hung GUI, and the thread is gone.
In another example, if I try to launch a Popup instance, the JavaFX thread hangs:
Thread [JavaFX Application Thread] (Suspended)
Unsafe.park(boolean, long) line: not available [native method]
LockSupport.park(Object) line: 175
ReentrantLock$NonfairSync(AbstractQueuedSynchronizer).parkAndCheckInterrupt() line: 836
ReentrantLock$NonfairSync(AbstractQueuedSynchronizer).acquireQueued(AbstractQueuedSynchronizer$Node, int) line: 870
ReentrantLock$NonfairSync(AbstractQueuedSynchronizer).acquire(int) line: 1199
ReentrantLock$NonfairSync.lock() line: 209
ReentrantLock.lock() line: 285
QuantumToolkit.runWithRenderLock(Supplier<T>) line: 405
GlassViewEventHandler$ViewEventNotification.run() line: 781
GlassViewEventHandler$ViewEventNotification.run() line: 749
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
GlassViewEventHandler.lambda$handleViewEvent$369() line: 828
107533352.get() line: not available
QuantumToolkit.runWithoutRenderLock(Supplier<T>) line: 389
GlassViewEventHandler.handleViewEvent(View, long, int) line: 827
WinView(View).handleViewEvent(long, int) line: 539
WinView(View).notifyResize(int, int) line: 875
WinWindow._setBounds(long, int, int, boolean, boolean, int, int, int, int, float, float) line: not available [native method]
WinWindow(Window).setBounds(int, int, boolean, boolean, int, int, int, int, float, float) line: 572
WindowStage.setBounds(float, float, boolean, boolean, float, float, float, float, float, float) line: 318
Window$TKBoundsConfigurator.apply() line: 1274
Window$TKBoundsConfigurator.pulse() line: 1290
Toolkit.lambda$runPulse$31(TKPulseListener) line: 348
1678236021.run() line: not available
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
QuantumToolkit(Toolkit).runPulse(TKPulseListener, AccessControlContext) line: 347
QuantumToolkit(Toolkit).firePulse() line: 371
QuantumToolkit.pulse(boolean) line: 510
QuantumToolkit.pulse() line: 490
QuantumToolkit.lambda$runToolkit$405() line: 319
1381382387.run() line: not available
InvokeLaterDispatcher$Future.run() line: 95
WinApplication._runLoop(Runnable) line: not available [native method]
WinApplication.lambda$null$149(int, Runnable) line: 191
1750905143.run() line: not available
Thread.run() line: 745
Any thoughts? Or is JavaFX still, really this bad? Now that they closed out their bug tracker, and moved things (without a redirect) into the openjdk bug tracker, one can no longer even report issues to the JavaFX team. Seems to be a sad state of affairs.
I have tried this both with the intel built-in graphics, and the nvidia graphics - in case it was a specific acceleration issue, but the behavior is identical.
This code all works fine on Linux, FYI.
edit I've discovered that this (undocumented) flag helps:
-Dprism.order=sw
This apparently disables hardware rendering.