[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