RFR: 8373232: Set default filters and addressing modes for 3D metal textures

Jayathirth D V jdv at openjdk.org
Fri Dec 12 08:27:06 UTC 2025


On Fri, 12 Dec 2025 08:18:14 GMT, Jayathirth D V <jdv at openjdk.org> wrote:

> Currently we don't set any texture filtering & addressing modes for 3D textures in Metal pipeline.
> Default 3D texture filtering is "nearest" for Metal textures, but we use "linear" filtering by default for 3D textures in case of OpenGL.
> Default addressing mode is "clamp_to_edge" in Metal textures, but we use "repeat" addressing mode for 3D textures in OpenGL.
> 
> Metal should use same default filtering & addressing modes for 3D textures as in OpenGL pipeline.
> Under this issue we are trying only to match defaults of Metal to OpenGL pipeline.
> 
> We don't update the filters/addressing modes for 3D textures once created.
> We have open enhancements like https://bugs.openjdk.org/browse/JDK-8324594 where we might provide API's to set sampler states for 3D textures in future.
> 
> Functional and performance testing is green with this update.

modules/javafx.graphics/src/main/java/com/sun/prism/mtl/MTLPhongMaterial.java line 85:

> 83:             hTexture = mtlTex.getNativeHandle();
> 84:         }
> 85:         context.setMap(nativeHandle, map.getType().ordinal(), hTexture, useMipmap);

We use mipmapping only when `(!PlatformUtil.isEmbedded()) && (i == PhongMaterial.DIFFUSE || i == PhongMaterial.SELF_ILLUM);`. We need to pass mipmap information, so that we can pick appropriate sampler state in native code.

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/2005#discussion_r2613347288


More information about the openjfx-dev mailing list