git: openjdk/jfx-sandbox: direct3d12: D3D12Texture: Implement Wrap modes
duke
duke at openjdk.org
Fri Feb 7 14:47:34 UTC 2025
Changeset: 825a9df4
Branch: direct3d12
Author: Lukasz Kostyra <lukasz.kostyra at oracle.com>
Date: 2025-02-07 15:20:19 +0000
URL: https://git.openjdk.org/jfx-sandbox/commit/825a9df4a1306a21c30089fb41b7aa40f819d422
D3D12Texture: Implement Wrap modes
This change implements WrapMode support in D3D12 backend. Until now
backend assumed we are using a set of static samplers, which represent
WrapMode.REPEAT mode. This route was easier to do at first, but now
during the feature-completeness journey it was time to switch to
dynamically assigned Samplers.
SamplerStorage class was implemented which manages all Sampler
Descriptors used during rendering. For now this only consists of three
Samplers representing three WrapMode-s: CLAMP_TO_ZERO (D3D12_..._BORDER),
CLAMP_TO_EDGE (D3D12_..._CLAMP) and REPEAT (D3D12_..._WRAP).
These Sampler Descriptors are allocated only once. During rendering, to
prevent constant CreateSampler() calls, ResourceManager holds a new
Sampler Ring Descriptor Heap and copies Sampler Descriptors to it, which
should be less CPU-intensive.
! modules/javafx.graphics/src/main/java/com/sun/prism/d3d12/D3D12RTTexture.java
! modules/javafx.graphics/src/main/java/com/sun/prism/d3d12/D3D12ResourceFactory.java
! modules/javafx.graphics/src/main/java/com/sun/prism/d3d12/D3D12Texture.java
! modules/javafx.graphics/src/main/java/com/sun/prism/d3d12/ni/D3D12NativeDevice.java
! modules/javafx.graphics/src/main/native-prism-d3d12/D3D12Common.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/D3D12NativeDevice.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/D3D12NativeDevice.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/D3D12NativeRenderTarget.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/D3D12NativeShader.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/D3D12NativeShader.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/D3D12NativeTexture.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/D3D12NativeTexture.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12InternalShader.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12InternalShader.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12MipmapGenComputeShader.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12MipmapGenComputeShader.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12RenderingParameter.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12ResourceManager.cpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12ResourceManager.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12RootSignatureManager.cpp
+ modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12SamplerStorage.cpp
+ modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12SamplerStorage.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/Internal/D3D12Shader.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/hlsl6/D3D12ShaderSlots.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/hlsl6/Internal_D3D12ShaderResourceDataHeader.hpp
! modules/javafx.graphics/src/main/native-prism-d3d12/hlsl6/Mtl1PS.hlsl
! modules/javafx.graphics/src/main/native-prism-d3d12/hlsl6/ShaderCommon.hlsl
More information about the openjfx-changes
mailing list