git: openjdk/jfx-sandbox: direct3d12: 3 new changesets

duke duke at openjdk.org
Mon May 12 13:15:22 UTC 2025


Changeset: 6e1aa1a9
Branch: direct3d12
Author:    Lukasz Kostyra <lukasz.kostyra at oracle.com>
Date:      2025-05-12 10:15:33 +0000
URL:       https://git.openjdk.org/jfx-sandbox/commit/6e1aa1a9dd092d8900b13ae31bc7f85c84de6b8a

Workaround issues with 3D rendering glitches

Adds a wait in RingContainer to stabilize the backend.

There is a bug somewhere which causes CPU-side to overwrite mid-frame
data before GPU consumed it fully. This causes flickering and can result
in device being removed. This patch mitigates this, however it also
reduces CPU-GPU parallelism, which impacts performance.

The actual bug needs more investigation, so for stabilization purposes
this workaround is temporarily added and will be removed when proper
solution will be found.

! modules/javafx.graphics/src/main/native-prism-d3d12/D3D12NativeTexture.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12RingContainer.cpp

Changeset: f3f77693
Branch: direct3d12
Author:    Lukasz Kostyra <lukasz.kostyra at oracle.com>
Date:      2025-04-15 08:53:47 +0000
URL:       https://git.openjdk.org/jfx-sandbox/commit/f3f7769324d14b14260581ce14730abad445d80d

Enable some logs on Release and DRED

To aid debugging D3D12 backend will now leave some logs compiled in on
Release builds. Debug/Trace logs are still compiled out, however Errors,
Warnings and Info logs are left in. To enable them use -Dprism.verbose
property.

To aid debugging further DRED (Device Removed Extended Data) support
was added. Whenever we encounter an error/bug which causes D3D12 device
to be removed we will be able to (provided runtime/driver support it)
get some additional information on what and where happened. DRED has to
be enabled with -Dprism.d3d12.dred property and is disabled by default.
DRED adds some memory overhead but performance overhead is minimal.

! modules/javafx.graphics/src/main/native-prism-d3d12/D3D12Common.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/D3D12NativeShader.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/D3D12NativeSwapChain.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/D3D12NativeTexture.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12Buffer.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12CommandListPool.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12Config.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12Config.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12Debug.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12Debug.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12DescriptorHeap.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12Logger.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12Logger.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12PSOManager.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12RingBuffer.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12RootSignatureManager.cpp

Changeset: 6d2ec984
Branch: direct3d12
Author:    Lukasz Kostyra <lukasz.kostyra at oracle.com>
Date:      2025-05-12 15:08:08 +0000
URL:       https://git.openjdk.org/jfx-sandbox/commit/6d2ec9849b6a59104b85e38d65dc2ce6e852c902

Add prism.d3d12.midframeWait property

Temporarily added, this property enables/disables waiting for GPU
right after Ring Container decides to flush the current Command List.
This allows to turn on/off the workaround for JDK-8356029.

This property is enabled by default, disabling it might cause glitches
and/or cause D3D12 device to be removed. It will be removed once
JDK-8356029 is properly fixed.

! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12Config.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12Config.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12RingContainer.cpp



More information about the openjfx-changes mailing list