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

Christopher Schnick crschnick at xpipe.io
Sat Nov 15 16:38:40 UTC 2025


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>
>> *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/0103eb63/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/0103eb63/ug1QNh3qK0NH4dEm-0001.png>


More information about the openjfx-dev mailing list