Hi Florian,

Thanks for checking and for the video. I watched it and below are my thoughts:

> …odd rendering artifacts…

If this is the file path rendering looking weird in Settings you’ve shown at 
0:22 in the video, it might be because of clear region optimization. Could you 
rerun this with “-Dprism.d3d12.clearOpts=false”? This might be similar root 
cause to what Glavo mentioned this morning that I filed under 
https://bugs.openjdk.org/browse/JDK-8384276

> …jagged 3d lines…

I just double-checked on our end and it does seem like MSAA is disabled when 
rendering 3D. I didn’t find an obvious solution to this at first glance, for 
now I created https://bugs.openjdk.org/browse/JDK-8384306 to track the problem.

> …laggy window movements…

Not quite sure what is the problem here, I tried to reproduce this with our 
testing apps and failed to do so. The contents of the Stage in your video were 
constantly refreshed though, perhaps this would require something more dynamic 
to trigger this, so I’ll keep working on a reproducer and get back to you.

> …and a non-recoverable crash when opening more than 3 windows

Similar to the above, I couldn’t find a way to reproduce this locally with our 
test programs. I do notice one thing though, usually when D3D12 falls in a 
constant loop like that is because of an earlier problem that caused it to 
enter this state. In short, these logs in the video are the aftermath, but the 
real problem is probably logged somewhere on top of the terminal. Could you 
check if there’s a different error on top that started this crash?

There might be a case where you’ll only find a D3D12 Device Lost error without 
much more information. This is because most runtime checks are part of a 
separate D3D12 API layer (aka. debug layers) that is excluded from Release 
builds. You can enable them, but you’d have to rebuild JavaFX locally in 
DebugNative configuration. If you have time and would like to give it a try:
    1. Clone https://github.com/openjdk/jfx-sandbox and checkout `direct3d12` 
branch
    2. Build SDK using “gradle -PCONF=DebugNative sdk” - results should be in 
build/sdk subdirectory. If you prefer jmods over jars, you can run “gradle 
-PCONF=DebugNative jmods” instead and find the results in build/jmods.
    3. Run debug build with a set of Java properties: “-Dprism.verbose=true 
-Dprism.debug=true -Dprism.d3d12.debugLayers=true -Dprism.d3d12.gpuDebug=true”.

This will enable verbosity, debug logging, D3D12 debug layers and GPU debugging 
respectively. Note that because of all these facilities performance might tank 
significantly, especially when initially loading all the shaders - this is 
normal and expected, on my machine some more complex shaders can take even 
10-20 seconds to compile before app regains responsiveness. Similarly, if you 
stumble upon a wall of errors, look for the first error on top of logs. In the 
meantime I’ll keep looking for a reproducer for this and laggy window movements.

Let me know what you find,
-Lukasz


From: Florian Enner <[email protected]>
Sent: Monday, 11 May 2026 16:04
To: Lukasz Kostyra <[email protected]>
Subject: [External] : Re: JavaFX Direct3D 12 - Third EA release

Hi Lukasz,

I unfortunately ran into several issues: odd rendering artifacts, jagged 3d 
lines, laggy window movements, and a non-recoverable crash when opening more 
than 3 windows.

Here is a video with D3d (left) vs D3d12 (right): 
https://www.youtube.com/watch?v=wi6UYWWcMjc<https://urldefense.com/v3/__https:/www.youtube.com/watch?v=wi6UYWWcMjc__;!!ACWV5N9M2RV99hQ!OdEsvoUw35h4hP2Ov_IGfROOzbkd2aUAkVAnCo1LBCxi9mpYwL6Rl2zhBoit0knGu75E-6dFUjCqz8hV2ylidfEfBe60$>

This unfortunately touches a lot of different parts of the stack, so it's hard 
to isolate. Let me know in case you need me to dig deeper on anything.

Regards,
Florian



On Fri, May 8, 2026 at 8:55 AM Lukasz Kostyra 
<[email protected]<mailto:[email protected]>> wrote:
Hello openjfx-dev,

The third 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!OdEsvoUw35h4hP2Ov_IGfROOzbkd2aUAkVAnCo1LBCxi9mpYwL6Rl2zhBoit0knGu75E-6dFUjCqz8hV2ylidU0hEJnD$>

Please test this bundle and share your feedback by:
- emailing [email protected]<mailto:[email protected]> or
- reporting issues via JBS[https://bugs.openjdk.org/] or at 
https://bugreport.java.com<https://urldefense.com/v3/__https:/bugreport.java.com__;!!ACWV5N9M2RV99hQ!OdEsvoUw35h4hP2Ov_IGfROOzbkd2aUAkVAnCo1LBCxi9mpYwL6Rl2zhBoit0knGu75E-6dFUjCqz8hV2ylidUnv64lE$>

This is the third EA release. After second EA release and feedback we got from 
you all regarding the backend's performance (thanks once again!) we had to 
rework some parts of the backend to let it better utilize multi-core machines. 
We would like to test these changes with your help for any potential functional 
regressions.

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!OdEsvoUw35h4hP2Ov_IGfROOzbkd2aUAkVAnCo1LBCxi9mpYwL6Rl2zhBoit0knGu75E-6dFUjCqz8hV2ylidU0hEJnD$>].
 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 26 or later.
4. At this stage D3D12 backend is feature-complete and went through more 
optimization work, including improvements for multi-core systems. While there 
should be some performance improvements compared to EA2, we are still tracking 
down and addressing all potential problems.
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!OdEsvoUw35h4hP2Ov_IGfROOzbkd2aUAkVAnCo1LBCxi9mpYwL6Rl2zhBoit0knGu75E-6dFUjCqz8hV2ylidWYzbgyN$>]

We look forward to your feedback.

Regards,
Lukasz

Reply via email to