[OpenJDK 2D-Dev] RFR: 8266159: macOS ARM + Metal pipeline shows artifacts on Swing Menu with Java L&F

Ajit Ghaisas aghaisas at openjdk.java.net
Fri Jun 4 11:23:06 UTC 2021


This PR fixes an issue exclusively seen on Apple M1 systems when SwingSet2 demo is run with uiScale=1.0.

**Issue :**
SwingSet2 Demo - As reported in JBS description
J2DDemo - As reported in a comment on JBS

**Root Cause :** 
DrawPixel path is used only with uiScale=1.0. 
MTLPrimitiveTypePoint is used to draw a pixel while encoding a render command.
As mentioned in the documentation -
https://developer.apple.com/documentation/metal/mtlprimitivetype/mtlprimitivetypepoint?language=objc

"The vertex shader must provide [[point_size]], or the point size is undefined."

In our shader functions, we do not define this point size. It is harmless on x86_64 based mac systems, but causes visual artifacts on M1 mac systems.

**Solution :**
 Explicitly define point size in shader functions that draw MTLPrimitiveTypePoint.

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

Commit messages:
 - r

Changes: https://git.openjdk.java.net/jdk/pull/4356/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4356&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8266159
  Stats: 6 lines in 1 file changed: 6 ins; 0 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/4356.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/4356/head:pull/4356

PR: https://git.openjdk.java.net/jdk/pull/4356


More information about the 2d-dev mailing list