On Mon, 7 Jun 2021 12:03:35 GMT, Ajit Ghaisas <aghai...@openjdk.org> wrote:
>> 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. > > Ajit Ghaisas has updated the pull request incrementally with one additional > commit since the last revision: > > add automated test test/jdk/java/awt/Graphics/DrawOvalTest.java line 54: > 52: render(vi.createGraphics()); > 53: > 54: BufferedImage snapshot = vi.getSnapshot(); I guess we need to obtain this snapshot in a do-while loop to check for volatile image contents is not lost similar to do { vi.validate(gc); render(); vi.getShapshot(); } while(vi.getContentsLost()) ------------- PR: https://git.openjdk.java.net/jdk/pull/4356