[OpenJDK 2D-Dev] request for review: JDK-8007386 On physical machine (video card is Intel Q45)the case of text is blank.

Clemens Eisserer linuxhippy at gmail.com
Sat Sep 28 19:26:35 UTC 2013


Please review my fix for "JDK-8007386 On physical machine (video card
is Intel Q45)the case of text is blank." at:

Problem description:
There has been a number of bug reports by users enabling the xrender
pipeline on outdated systems (old but still supported RHEL and SLES
releases). Sympthoms are hangs (old libXrender version from ~2007) and
rendering corruptions caused by driver bugs.
There have been attempts like parsing the version of libXrender from
package-info files, however (as distributions don't tend to agree
sometimes) this approach fails e.g. on older SLES releases.
Unfortunately a very widespread driver bug was shipped in the intel
video driver with Ubuntu 2012.04 LTS (fixed in 2012.04.02), which
means also not-that-outdated systems are affected - and driver
versions can only be detected by parsing Xorg.log. (
https://bugs.freedesktop.org/show_bug.cgi?id=48045 )

Fix description:
As discussed with Phil, I propose a drastic measure: Defaults to X11
on systems running Linux < 3.5 (Ubuntu <= 12.04.01).
When -Dsun.java2d.xrender=true/True is explicitly specified on the
command line, the pipeline will be enabled regardless of the
kernel-version detected.

I know it is not elegant to base this descision on the kernel-version, however:
- We don't have to parse e.g. /var/log/Xorg and guess arround which
versions of which libraries/drivers/xorg/... are installed
- Change-sensitive RHEL and SLES users will stay at X11 until they upgrade

Also related are bugs:
JDK-8016113 Swing components rendered incorrectly with Nimbus Look and
Feel on SLES
7032904(XRender: Java2Demo : Infinite loop in
Java_sun_java2d_loops_MaskBlit_MaskBlit on OEL 5.6 x64)

Thanks, Clemens

More information about the 2d-dev mailing list