Previews for shared buffer PR

Kevin Rushforth kevin.rushforth at oracle.com
Sat Jul 6 16:42:42 UTC 2019


There might be other issues with the early access. The shared NIO buffer 
feature should be behavior-neutral if you don't use it. So either there 
is some other issue with it, or there is a bug.

Given the number of changes since that early access, both in the JavaFX 
13 code base and in the PR itself, it seems worth making a new early 
access for people to try. I'll also do some local testing both with GTK 
2 and GTK3.

-- Kevin


On 7/5/2019 10:35 PM, Ty Young wrote:
>
>
> On 6/7/19 4:40 AM, Johan Vos wrote:
>> The PR discussed in https://github.com/javafxports/openjdk-jfx/pull/472,
>> addressing https://bugs.openjdk.java.net/browse/JDK-8167148 provides 
>> a very
>> much wanted feature. It is important that things are done in the 
>> right way
>> so that the code can be maintained in the long-term future.
>> Therefore, feedback on this PR is extremely important before we can
>> consider merging it. Once this PR is merged, there is no easy way 
>> back. It
>> is possible to add more functionality, hence my preference is to only
>> implement the functionality that is safe and stable, while allowing 
>> other
>> functionality to be added later or by third-party extensions. (e.g.
>> (avoiding) copying from/to GPU)
>>
>> To make it easier to give feedback, we've build early access versions of
>> SDK's including this PR. Note that the PR is not merged, hence not
>> available in the regular EA downloads!
>>
>> If you want to give it a try, download the SDK's from the URL's below.
>> There is a test in tests/manual/graphics/PixelBufferPerformanceTest (
>> https://github.com/arapte/openjdk-jfx/blob/JDK-8167148-NIO-ByteBuffer/tests/manual/graphics/PixelBufferPerformanceTest.java) 
>>
>> that should get you started.
>>
>> https://download2.gluonhq.com/openjfx/forks/pixelbuffer/openjfx-13-pixelbuffer-ea+9_linux-x64_bin-jmods.zip 
>>
>> https://download2.gluonhq.com/openjfx/forks/pixelbuffer/openjfx-13-pixelbuffer-ea+9_linux-x64_bin-sdk.zip 
>>
>> https://download2.gluonhq.com/openjfx/forks/pixelbuffer/openjfx-13-pixelbuffer-ea+9_osx-x64_bin-jmods.zip 
>>
>> https://download2.gluonhq.com/openjfx/forks/pixelbuffer/openjfx-13-pixelbuffer-ea+9_osx-x64_bin-sdk.zip 
>>
>> https://download2.gluonhq.com/openjfx/forks/pixelbuffer/openjfx-13-pixelbuffer-ea+9_windows-x64_bin-jmods.zip 
>>
>> https://download2.gluonhq.com/openjfx/forks/pixelbuffer/openjfx-13-pixelbuffer-ea+9_windows-x64_bin-sdk.zip 
>>
>>
>> - Johan
>
>
> FYI this SDK causes a hard system crash when GTK is set to 2 and/or 
> prism.forceUploadingPainter is set to true. I don't feel like 
> purposefully crashing my system to see which of the various 
> combinations is the issue so forgive me for not providing a more 
> narrowed down cause.
>
> GTK 2 is still necessary as there are still lingering GTK3 bugs that 
> have yet to be fixed even in current JavaFX 13.
>
> prism.forceUploadingPainter is a prism setting that fixes buffer 
> resets and other various GUI glitching under Linux(an issue I tried 
> reporting a long time ago) which affects ALL JavaFX applications under 
> Linux but dramatically increases GPU utilization by 2x-2.5x when doing 
> any kind of application interaction(resizing, scrolling, etc). Is 
> there a reason this isn't enabled by default under Linux besides 
> performance? Where is the documentation for this and other settings? I 
> randomly ran into this from 
> http://werner.yellowcouch.org/log/javafx-8-command-line-options/ and 
> was surprised noone really knows about it nor is it documented 
> anywhere that I can see.
>
>
> Even with GTK 3 this results in a null pointer exception:
>
>
> java.lang.NullPointerException
>     at 
> javafx.graphics/com.sun.prism.es2.ES2SwapChain.createGraphics(ES2SwapChain.java:223)
>     at 
> javafx.graphics/com.sun.prism.es2.ES2SwapChain.createGraphics(ES2SwapChain.java:40)
>     at 
> javafx.graphics/com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:87)
>     at 
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
>     at 
> java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
>     at javafx.graphics/com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
>     at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>     at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>     at 
> javafx.graphics/com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125
>
>
> Please don't merge this into JDK13 or at least provide a switch to 
> disable it. This is extremely busted on Linux.
>
>
> Can the source code for this entire JavaFX build please be linked?
>



More information about the openjfx-dev mailing list