[External] : Re: JavaFX Direct3D 12 - Second EA release

Christopher Schnick crschnick at xpipe.io
Sat Nov 15 16:34:48 UTC 2025


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>
> *Sent:* Thursday, 13 November 2025 16:11
> *To:* Lukasz Kostyra <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/20251115/0634b137/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ug1QNh3qK0NH4dEm.png
Type: image/png
Size: 57114 bytes
Desc: not available
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20251115/0634b137/ug1QNh3qK0NH4dEm-0001.png>


More information about the openjfx-dev mailing list