-
Bug
-
Resolution: Unresolved
-
P4
-
22, 24, 25
-
None
I see test/jdk/sun/awt/font/TestDevTransform.java failing on Ubuntu 24.04
The failure is due to 198 different pixels.
This is out of a total of 3434 "non-white" pixels in each image.
i.e both have the exact same pixel images but there's a very slight difference in the registration of some of the pixels in the largest string.
The test has a margin of error that allows only 5% to be different and this is about 7%.
It is undetectable to the naked eye - you need to overlay drawString and drawGlyphVector in different colors to see it.
If I replace DIALOG with MONOSPACED, the difference is zero pixels.
A combination of the specifics of the font and some code-path specific rounding to device pixels as we accumulate the rotated advance seems to be the issue.
We previously added the margin because of the same kind of problem seen on SuSE : https://bugs.openjdk.org/browse/JDK-8341535
Given a reproducible case like this we could look to see why they diverge.
But we could also adjust the test to use MONOSPACED or a higher margin if we want to keep the test running in the interim.
The failure is due to 198 different pixels.
This is out of a total of 3434 "non-white" pixels in each image.
i.e both have the exact same pixel images but there's a very slight difference in the registration of some of the pixels in the largest string.
The test has a margin of error that allows only 5% to be different and this is about 7%.
It is undetectable to the naked eye - you need to overlay drawString and drawGlyphVector in different colors to see it.
If I replace DIALOG with MONOSPACED, the difference is zero pixels.
A combination of the specifics of the font and some code-path specific rounding to device pixels as we accumulate the rotated advance seems to be the issue.
We previously added the margin because of the same kind of problem seen on SuSE : https://bugs.openjdk.org/browse/JDK-8341535
Given a reproducible case like this we could look to see why they diverge.
But we could also adjust the test to use MONOSPACED or a higher margin if we want to keep the test running in the interim.