sane default option values for Linux

Philip Race philip.race at oracle.com
Wed Mar 18 19:36:33 UTC 2020


Some of the latest Linuxes don't even include GTK2 by default !
Its only a step away from them not being even available as an optional 
download.

 > ...although I honestly don't think this was a regression introduced 
in JavaFX...
 > literally every graphical application segfaults now, including games 
like Minecraft..

Since Minecraft does not use Swing, Java2D, AWT or JavaFx *at all* - not 
even loading them - it
definitely there can't be anything in the Java client stack that is 
causing it.
So if switching to GTK2 miraculously cures it, then that seems like a 
coincidence
and not anything we are doing. It could be a change elsewhere in the 
JDK, if it
reproduces today with 12+ but not 11, but bringing it up on this list, 
or requesting
this workaround, both seem to be pointing in the wrong direction.
And Kevin's suggestion of a driver bug seems possible + worth looking into.

-phl

On 3/18/20, 5:04 AM, Kevin Rushforth wrote:
>
> > Regardless, the other issues are still valid. Can we please have 
> GTK2 set as default along with force painter uploading?
>
> No, we are not going to do this. GTK 2 is on its way out. GTK 3 has 
> been the default for both AWT and JavaFX since JDK 11 / JavaFX 11. I'd 
> much rather see energy going into fixing any remaining GTK 3 issues 
> than take a step backwards.
>
> The other issues you are seeing relating to the need for 
> "forceUploadingPainter" and the crash in libnvidia-glcore are 
> indicative of a possible graphics driver bug. We do plenty of testing 
> on Linux and haven't see reports of the problems you are having. The 
> likely solution would be to blacklist that driver and fall back to the 
> software pipeline. You might consider "-Dprism.order=sw" rather than 
> using forceUploadingPainter (the latter is only intended for testing 
> and not recommended for production).
>
> -- Kevin
>
>
> On 3/18/2020 12:48 AM, Ty Young wrote:
>> After going through varies JDK versions from OpenJDK from 8 to 
>> present, it seems like the segfault issues was introduced elsewhere 
>> at about JDK12/13.
>>
>>
>> Regardless, the other issues are still valid. Can we please have GTK2 
>> set as default along with force painter uploading?
>>
>>
>> On 3/17/20 6:54 AM, Ty Young wrote:
>>> Hi all,
>>>
>>>
>>> After many months of being unable to run my JavaFX application due 
>>> to transitioning to the new Project Panama MemoryAccess API(for 
>>> native C calling, of course), I've finally gotten things to 
>>> semi-working order and able to tryout JavaFX 14... only to find out 
>>> that JavaFX on Linux is still buggy without specifying runtime args.
>>>
>>>
>>> To recap for those who don't develop JavaFX on Linux or use it, if 
>>> you don't have -Dprism.forceUploadingPainter=true set, JavaFX 
>>> applications will suffer from buffer zeroing when resizing an 
>>> application. This affects *ALL* JavaFX applications. There are still 
>>> GTK3 bugs and regressions that, since it was enabled by default back 
>>> in JavaFX 11(IIRC) still haven't been fixed. If you try to use GTK3 
>>> right now with JavaFX 14 you get a GDK warning:
>>>
>>>
>>> (java:64002): Gdk-WARNING **: 06:23:04.022: Native Windows wider or 
>>> taller than 32767 pixels are not supported
>>>
>>>
>>> This is not so if GTK 2 is specified by doing: -Djdk.gtk.version=2. 
>>> No application code requests a window that tall or wide.
>>>
>>>
>>> As a bonus, something new that was introduced in Java 13(12?) and 
>>> later is that exiting a JavaFX application will cause a segfault:
>>>
>>>
>>> # A fatal error has been detected by the Java Runtime Environment:
>>> #
>>> #  SIGSEGV (0xb) at pc=0x00007fbfbad22d9d, pid=68034, tid=68044
>>> #
>>> # JRE version: OpenJDK Runtime Environment (15.0) (build 
>>> 15-internal+0-adhoc.ty.panama-foreign-foreign-jextractnew)
>>> # Java VM: OpenJDK 64-Bit Server VM 
>>> (15-internal+0-adhoc.ty.panama-foreign-foreign-jextractnew, mixed 
>>> mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
>>> # Problematic frame:
>>> # C  [libnvidia-glcore.so.440.64+0xa95d9d]
>>>
>>>
>>> ...although I honestly don't think this was a regression introduced 
>>> in JavaFX... literally every graphical application segfaults now, 
>>> including games like Minecraft... but regardless it happens when 
>>> exiting a JavaFX application too. Originally I thought it was a bug 
>>> caused by the Project Panama builds but it's been persistent for 
>>> over a year now. I'm guessing something broke in JDK proper.
>>>
>>>
>>> Anyway, point of this email isn't to complain that no one is testing 
>>> JavaFX on Linux(clearly no one is, by the by), but to ask why sane 
>>> defaults aren't being used. Anyone developing a JavaFX application 
>>> on and/or for Linux(god help them) is not going to know how to fix 
>>> problems caused by GTK3 or by not forcing painter uploading, so, if 
>>> no one is going to fix these issues(which is fine, I guess), why not 
>>> use config options that are known to work properly?
>>>
>


More information about the openjfx-dev mailing list