Hi Lukasz,

(1) Setting "-Dprism.d3d12.clearOpts=false" fixed the rendering artifact.

(2) The "laggy" window dragging disappears when I disable continuous
updates, so you're probably right about it being something dynamic. It
happens on both 2d (Canvas) and 3d (SubScene with meshes) windows. Overall,
that's a very minor issue.

(3) The crash also happens on both types of windows, and also only when
enabling continuous updates. Now I wonder whether I'm doing something
wrong, but the updates are definitely on the FXAT and the same code runs
fine on all other backends. I'll try to find time to put together a minimum
reproducible sample.

A full log file is attached. The initial error after the crash is:

[D3D12-ERROR] <D3D12NativeSwapChain.cpp:226> Failed to Present on Swap
Chain: 887a0005 (The GPU device instance has been suspended. Use
GetDeviceRemovedReason to determine the appropriate action.)
[D3D12-ERROR] <Internal\D3D12Debug.cpp:400> Device removed reason: 887a0006
(The GPU will not respond to more commands, most likely because of an
invalid command passed by the calling application.)
[D3D12-INFO ] <Internal\D3D12Debug.cpp:422> DRED breadcrumbs:
[D3D12-INFO ] <Internal\D3D12Debug.cpp:179>   Breadcrumbs on Command List
(null) (Queue (null)):
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    ->  Unknown
[D3D12-INFO ] <Internal\D3D12Debug.cpp:179>   Breadcrumbs on Command List
(null) (Queue (null)):
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    ->  Unknown
[D3D12-INFO ] <Internal\D3D12Debug.cpp:179>   Breadcrumbs on Command List
(null) (Queue (null)):
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    ->  Unknown
[D3D12-INFO ] <Internal\D3D12Debug.cpp:179>   Breadcrumbs on Command List
(null) (Queue (null)):
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    -   Unknown
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    -   RESOURCEBARRIER
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    -   COPYBUFFERREGION
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    ->  RESOURCEBARRIER
[D3D12-INFO ] <Internal\D3D12Debug.cpp:179>   Breadcrumbs on Command List
(null) (Queue (null)):
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    -   Unknown
[D3D12-INFO ] <Internal\D3D12Debug.cpp:179>   Breadcrumbs on Command List
(null) (Queue (null)):
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    -   Unknown
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    -   RESOURCEBARRIER
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    -   COPYBUFFERREGION
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    -   RESOURCEBARRIER
[D3D12-INFO ] <Internal\D3D12Debug.cpp:179>   Breadcrumbs on Command List
(null) (Queue (null)):
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    -   Unknown
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    -   RESOURCEBARRIER
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    -   CLEARRENDERTARGETVIEW
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    -   DRAWINDEXEDINSTANCED
[D3D12-INFO ] <Internal\D3D12Debug.cpp:184>    -   DRAWINDEXEDINSTANCED

Best,
Florian

On Mon, May 11, 2026 at 5:53 PM Lukasz Kostyra <[email protected]>
wrote:

> >> …jagged 3d lines…
> >
> > I just double-checked on our end and it does seem like MSAA is disabled
> when rendering 3D.
>
> That was indeed the case, on Java-side one RTTexture producer method in
> D3D12ResourceFactory missed using the msaa flag. This should be resolved
> now on direct3d12 branch.
>
> -Lukasz
>
> -----Original Message-----
> From: Lukasz Kostyra <[email protected]>
> Sent: Monday, 11 May 2026 17:15
> To: Florian Enner <[email protected]>
> Cc: openjfx-dev <[email protected]>
> Subject: RE: Re: JavaFX Direct3D 12 - Third EA release
>
> 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