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
