JavaFX Direct3D 12 - Second EA release

Christopher Schnick crschnick at xpipe.io
Tue Dec 9 16:10:11 UTC 2025


I tried this commit, but the problem shows up again. I tested the 
previous commit with the passed property again, and that one still works.

Or should I still pass the property in this commit as well?

On 09/12/2025 4:36 PM, Lukasz Kostyra wrote:
>
> Hi Christopher,
>
> I updated the direct3d12 branch with the fix - 
> https://github.com/openjdk/jfx-sandbox/commit/ffc078b9593c44a8ed0629a74b8bda18357f93a8 
> . Let me know how it works and if the problem has been resolved.
>
> Thanks,
>
> -Lukasz
>
> *From:*openjfx-dev <openjfx-dev-retn at openjdk.org> *On Behalf Of 
> *Lukasz Kostyra
> *Sent:* Thursday, 4 December 2025 11:52
> *To:* Christopher Schnick <crschnick at xpipe.io>
> *Cc:* OpenJFX <openjfx-dev at openjdk.org>
> *Subject:* RE: Re: JavaFX Direct3D 12 - Second EA release
>
> Thanks for checking. I filed 
> https://bugs.openjdk.org/browse/JDK-8373088 to track this since this 
> is unrelated to specifically text, will probably get to it in a few days.
>
> -Lukasz
>
> *From:*Christopher Schnick <crschnick at xpipe.io>
> *Sent:* Wednesday, 3 December 2025 18:53
> *To:* Lukasz Kostyra <lukasz.kostyra at oracle.com>
> *Cc:* OpenJFX <openjfx-dev at openjdk.org>
> *Subject:* [External] : Re: JavaFX Direct3D 12 - Second EA release
>
> 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
>     <https://urldefense.com/v3/__https:/github.com/openjdk/jfx-sandbox/commit/7078d621dc282ab8439800b84b78377dec3eea89__;!!ACWV5N9M2RV99hQ!JFEGrvRPb5-P9TxSZen0sbWuRq_Go_lMwM3kO5m0u_RlMgJW1cDfe8HxdAlgEedAsg4aSm99IyDYzbsN8x-LMbPQ$>
>     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>
>     <mailto:crschnick at xpipe.io>
>     *Sent:* Friday, 28 November 2025 13:25
>     *To:* Lukasz Kostyra <lukasz.kostyra at oracle.com>
>     <mailto:lukasz.kostyra at oracle.com>
>     *Cc:* OpenJFX <openjfx-dev at openjdk.org>
>     <mailto: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/20251209/78f84577/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/20251209/78f84577/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/20251209/78f84577/image002-0001.png>


More information about the openjfx-dev mailing list