JavaFX Direct3D 12 - Second EA release

Christopher Schnick crschnick at xpipe.io
Wed Dec 3 17:52:40 UTC 2025


This commit fixes the problem when the property is set to false and it 
shows up again if the property is not set to false

On 03/12/2025 5:54 PM, Lukasz Kostyra wrote:
>
> Hi Christopher,
>
> I did not find the way to reproduce this locally, but I found a 
> problem with one of the optimizations that is in the backend. To 
> double check if that is in fact the issue I pushed 
> https://github.com/openjdk/jfx-sandbox/commit/7078d621dc282ab8439800b84b78377dec3eea89 
> to disable the optimization (it is on by default, disabling it fixes 
> that specific problem on my end) and I’d like to double-check if this 
> is the correct lead.
>
> When you have a moment, could you build JFX with that change and run 
> your app with “-Dprism.d3d12.clearOpts=false” added to the command line?
>
> If the problem persists with prism.d3d12.clearOpts set to false I 
> would need some more information on how these labels are rendered to 
> track this down.
>
> Thanks,
>
> -Lukasz
>
> *From:*Christopher Schnick <crschnick at xpipe.io>
> *Sent:* Friday, 28 November 2025 13:25
> *To:* Lukasz Kostyra <lukasz.kostyra at oracle.com>
> *Cc:* OpenJFX <openjfx-dev at openjdk.org>
> *Subject:* [External] : Re: JavaFX Direct3D 12 - Second EA release
>
> I did not encounter the vanishing issue anymore with that build, so at 
> least it is usable.
>
> However, the font rendering issue still exists for some nodes:
>
> It is not deterministic, meaning that if I just scroll the scrollpane 
> forward and back, the same text might get rendered correctly.
>
> Also, did you see the performance results I posted for my AMD system? 
> Performance was quite bad there, so this is not in a stage where I can 
> test this in production a bit.
>
> On 28/11/2025 12:41, Lukasz Kostyra wrote:
>
>     Hi Christopher,
>
>     I just pushed a fix for JDK-8371995 onto direct3d12 branch in the
>     sandbox - https://github.com/openjdk/jfx-sandbox/tree/direct3d12
>     <https://urldefense.com/v3/__https:/github.com/openjdk/jfx-sandbox/tree/direct3d12__;!!ACWV5N9M2RV99hQ!KuiGt3yDg1iNtCswOA3yLUbPKFpTnRKQE9clxnsd6xQRhnGJLoz7c697JC77xG2Q4qwsMWDePar6hRx9DY1uTPpy$>
>     . If you find a moment, could you build JFX from that branch and
>     check if your app works correctly?
>
>     -Lukasz
>
>     *From:*openjfx-dev <openjfx-dev-retn at openjdk.org>
>     <mailto:openjfx-dev-retn at openjdk.org> *On Behalf Of *Lukasz Kostyra
>     *Sent:* Monday, 17 November 2025 15:14
>     *To:* Christopher Schnick <crschnick at xpipe.io>
>     <mailto:crschnick at xpipe.io>
>     *Cc:* OpenJFX <openjfx-dev at openjdk.org>
>     <mailto:openjfx-dev at openjdk.org>
>     *Subject:* RE: Re: JavaFX Direct3D 12 - Second EA release
>
>     I might’ve found the problem, there is an assertion that triggers
>     when multiple text objects using different fonts are drawn. It
>     could be related (AFAIK Label controls will eventually end up at
>     the same text rendering routines as Text nodes). Assertions are
>     compiled out on Release for performance, so there is a chance it
>     would corrupt the rendering without anything meaningful shown on
>     screen.
>
>     To track this I just filed
>     https://bugs.openjdk.org/browse/JDK-8371995 . I will check it and
>     let you know when I fix it.
>
>     On your side It might still be handy to build JFX in DebugNative,
>     to confirm if the triggered assertion is the same and to later
>     confirm if the fix is working for you too.
>
>     -Lukasz
>
>     *From:*Christopher Schnick <crschnick at xpipe.io>
>     *Sent:* Saturday, 15 November 2025 17:39
>     *To:* Lukasz Kostyra <lukasz.kostyra at oracle.com>
>     *Cc:* OpenJFX <openjfx-dev at openjdk.org>
>     *Subject:* Re: [External] : Re: JavaFX Direct3D 12 - Second EA release
>
>     Forgot to add, there is nothing out of the ordinary printed in the
>     verbose logs.
>
>     If I find the time, I can look into compiling a debug build.
>
>     But the problem should be reproducible somehow when just
>     automatically creating a lot of labels with random styles, sizes,
>     and text. Some of them should break as they did for me.
>
>     On 15/11/2025 17:34, Christopher Schnick wrote:
>
>         Ok, so I had more time to debug it. The one weird thing I
>         observed when it was working was that some labels have
>         corrupted text rendering:
>
>
>         Not all of them, most are fine. There are no differences in
>         terms of style classes etc. between the labels. When
>         scrolling, the rendering sometimes switches between this
>         corrupted and normal state after some delay.
>
>         After a while I also figured out that text rendering is
>         responsible for the issue of the nodes vanishing: Certain
>         label contents broke the renderer. For example, in my
>         application, the string "Password manager" when assigned to a
>         label broke it and nothing was rendered anymore. I tried to
>         find an easy reproducer but was not able to. It's probably
>         very dependent on all the different style classes that
>         influence the text shape/size/etc.
>
>         On 13/11/2025 16:30, Lukasz Kostyra wrote:
>
>             Thanks for checking.
>
>             It is very possible the D3D12 runtime did not like
>             something, could be related to your specific hardware.
>             D3D12 by now has many extensions which differ depending on
>             hardware and can lift certain restrictions - we already
>             internally had a case where one GPU had some restriction
>             that was not enforced on another GPU and we had to
>             accommodate that.
>
>             The first step would be to try running D3D12 with
>             “-Dprism.verbose=true -Dprism.debug=true”. These should
>             print additional logs that might have some extra information.
>
>             If there’s nothing useful there, next step would be to
>             build JavaFX with -PCONF=DebugNative - this will compile
>             shaders in Debug, add assertions and debug logs to the
>             backend - and then run your app with D3D12 debug layers
>             and GPU debugging enabled by adding
>             “-Dprsim.d3d12.debugLayers=true
>             -Dprism.d3d12.gpuDebug=true”. Those will slow down the app
>             significantly, but will also tell D3D12 to run additional
>             API use and GPU use checks.
>
>             If the problem happens during a render loop and debug
>             layers catch it, there is a chance it will cascade into
>             other errors and spam the console output - you can tell
>             D3D12 debug layers to trigger an assertion on first
>             encountered error with “-Dprism.d3d12.breakOnError=true”.
>
>             I am running out of time today to check this myself, but
>             if you find something let me know - I’ll try to reproduce
>             the problem myself and we’ll see where we go from there.
>
>             Good luck!
>
>             - Lukasz
>
>             *From:*Christopher Schnick <crschnick at xpipe.io>
>             <mailto:crschnick at xpipe.io>
>             *Sent:* Thursday, 13 November 2025 16:11
>             *To:* Lukasz Kostyra <lukasz.kostyra at oracle.com>
>             <mailto:lukasz.kostyra at oracle.com>
>             *Cc:* openjfx-dev at openjdk.org
>             *Subject:* [External] : Re: JavaFX Direct3D 12 - Second EA
>             release
>
>             I just tried to run a project with provided jmods and at
>             some point, certain nodes are just not rendered anymore
>             and the window contents vanish. But they render for a
>             short period of time.
>
>             There is no exception thrown as far as I can see, so not
>             sure what you need for debugging.
>
>             For testing, this is the built application with the d3d12
>             jmods that you can use to attempt to reproduce the
>             problem: https://we.tl/t-DJuX0BeqXm
>             <https://urldefense.com/v3/__https:/we.tl/t-DJuX0BeqXm__;!!ACWV5N9M2RV99hQ!K0ztYeDtYFyIwxlmMB-9MDuvY7Xyd60-LuJK99hex3mclCWl29MJfnxkz2mmECxINzNr5bAdKvQ64O9Xn7hHbsl_$>
>             . It is built from these sources:
>             https://github.com/xpipe-io/kickstartfx
>             <https://urldefense.com/v3/__https:/github.com/xpipe-io/kickstartfx__;!!ACWV5N9M2RV99hQ!K0ztYeDtYFyIwxlmMB-9MDuvY7Xyd60-LuJK99hex3mclCWl29MJfnxkz2mmECxINzNr5bAdKvQ64O9Xn9_QfENu$>
>
>             On 13/11/2025 14:40, Lukasz Kostyra wrote:
>
>                 Hello openjfx-dev,
>
>                 The second Early Access(EA) build of JavaFX with the
>                 Windows Direct3D 12 rendering pipeline is now
>                 available at: https://jdk.java.net/javafxdirect3d12/
>                 <https://urldefense.com/v3/__https:/jdk.java.net/javafxdirect3d12/__;!!ACWV5N9M2RV99hQ!K0ztYeDtYFyIwxlmMB-9MDuvY7Xyd60-LuJK99hex3mclCWl29MJfnxkz2mmECxINzNr5bAdKvQ64O9Xnw7Bj6i8$>
>
>                 Please test this bundle and share your feedback by:
>
>                 - emailing openjfx-dev at openjdk.java.net or
>
>                 - reporting issues via JBS[https://bugs.openjdk.org/]
>                 or at https://bugreport.java.com
>                 <https://urldefense.com/v3/__https:/bugreport.java.com__;!!ACWV5N9M2RV99hQ!K0ztYeDtYFyIwxlmMB-9MDuvY7Xyd60-LuJK99hex3mclCWl29MJfnxkz2mmECxINzNr5bAdKvQ64O9Xn-g1RFIV$>
>
>                 This is the second EA release. The backend is
>                 feature-complete and went through a first optimization
>                 pass, but it still requires some more testing on more
>                 hardware variants before we can consider it complete.
>                 As such, with this release we also would like to call
>                 for help with performance testing the backend (more
>                 details on that will be sent in a separate email thread).
>
>                 Known issues and pending tasks are captured on JBS and
>                 can be accessed using the filter provided on the
>                 Direct3D 12 EA page
>                 [https://jdk.java.net/javafxdirect3d12/
>                 <https://urldefense.com/v3/__https:/jdk.java.net/javafxdirect3d12/__;!!ACWV5N9M2RV99hQ!K0ztYeDtYFyIwxlmMB-9MDuvY7Xyd60-LuJK99hex3mclCWl29MJfnxkz2mmECxINzNr5bAdKvQ64O9Xnw7Bj6i8$>].
>                 Before reporting a new bug, please review the existing
>                 issues to avoid duplicates.
>
>                 Important Notes:
>
>                 1. This is a Windows-specific feature, so only a
>                 Windows-specific bundle is provided.
>
>                 2. The default rendering pipeline is set to d3d12. Use
>                 "-Dprism.order=d3d" or "-Dprism.order=sw" to select
>                 one of the other pipelines for comparison testing.
>
>                 3. It is recommended to use JDK 25 or later.
>
>                 4. At this stage D3D12 backend is feature-complete and
>                 went through the first phase of optimization. It is
>                 worth noting that, while generally we noticed
>                 performance improvements, it might not be on par with
>                 D3D backend on every machine combo  - we already noted
>                 performance being worse on recent NVidia discrete GPUs
>                 [https://bugs.openjdk.org/browse/JDK-8370486] and are
>                 looking for solutions.
>
>                 5. Issue behavior may vary across different hardware,
>                 so please provide detailed information, such as the
>                 output of "java -Dprism.verbose=true" or used
>                 hardware, when reporting or discussing issues.
>
>                 6. Refer: Run HelloWorld using JavaFX SDK
>                 [https://openjfx.io/openjfx-docs/#install-javafx
>                 <https://urldefense.com/v3/__https:/openjfx.io/openjfx-docs/*install-javafx__;Iw!!ACWV5N9M2RV99hQ!K0ztYeDtYFyIwxlmMB-9MDuvY7Xyd60-LuJK99hex3mclCWl29MJfnxkz2mmECxINzNr5bAdKvQ64O9Xn8uMZKUY$>]
>
>                 We look forward to your feedback.
>
>                 Regards,
>
>                 Lukasz
>
>                 Confidential- Oracle Internal
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20251203/be2b5b68/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.png
Type: image/png
Size: 18275 bytes
Desc: not available
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20251203/be2b5b68/image001-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 57114 bytes
Desc: not available
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20251203/be2b5b68/image002-0001.png>


More information about the openjfx-dev mailing list