JDK-6438225 : OGL: regression test sun/java2d/SunGraphics2D/PolyVertTest.java fails
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 6
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_10
  • CPU: sparc
  • Submitted: 2006-06-13
  • Updated: 2011-04-05
  • Resolved: 2011-04-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7
6u4Fixed 7 b08Fixed
Description
Java Version:
       build 1.6.0-rc-b87
and nightly build: 1.6.0-internal-jcg-integrator_08_Jun_2006_20_37-b00

Platform: Solaris-Sparc10

Problems:
The regression test fails in the nightly test bed, and re-test it in the promoted build b87, it fails again.
The jtr file as following:
#Test Results (version 2)
#Tue Jun 13 16:43:31 PDT 2006
#checksum:43ceef5f30c1ccbd
#-----testdescription-----
$file=/net/jre.sfbay/p/v06/jdk/6.0/rc/b87/ws/j2se/test/sun/java2d/SunGraphics2D/PolyVertTest.java
$root=/net/jre.sfbay/p/v06/jdk/6.0/rc/b87/ws/j2se/test
keywords=bug4678208 bug4771101 bug6328481 othervm
run=USER_SPECIFIED main PolyVertTest\nUSER_SPECIFIED main/othervm -Dsun.java2d.opengl=True PolyVertTest -hwonly\n
source=PolyVertTest.java
title=verify the pixelization of degenerate polylines and polygons

#-----environment-----

#-----testresult-----
description=file:///net/jre.sfbay/p/v06/jdk/6.0/rc/b87/ws/j2se/test/sun/java2d/SunGraphics2D/PolyVertTest.java
end=Tue Jun 13 16:43:31 PDT 2006
environment=regtest
execStatus=Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: Error at 11, 10 while testing: Screen
javatestOS=SunOS 5.10 (sparc)
javatestVersion=2.1.6
script=com.sun.javatest.regtest.RegressionScript 
sections=script_messages build main build main
start=Tue Jun 13 16:43:14 PDT 2006
status=Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: Error at 11, 10 while testing: Screen
test=sun/java2d/SunGraphics2D/PolyVertTest.java
work=/net/cady/export4/2d-workDir/sun/java2d/SunGraphics2D

#section:script_messages
----------messages:(4/213)----------
JDK under test: (/java/re/jdk/1.6.0/promoted/rc/b87/binaries/solaris-sparc)
java version "1.6.0-rc"
Java(TM) SE Runtime Environment (build 1.6.0-rc-b87)
Java HotSpot(TM) Client VM (build 1.6.0-rc-b87, mixed mode)

#section:build
----------messages:(3/99)----------
command: build PolyVertTest 
reason: Named class compiled on demand
elapsed time (seconds): 0.0090
result: Passed. No need to compile: PolyVertTest.java

#section:main
----------messages:(3/112)----------
command: main PolyVertTest
reason: User specified action: run main PolyVertTest 
elapsed time (seconds): 11.738
----------System.out:(2/98)----------
0 bad pixels and 6 questionable pixels found while testing Screen
Test done - no bad pixels found
----------System.err:(2/47)----------
6 fuzzy pixels found in 1 tests
STATUS:Passed.
result: Passed. Execution successful

#section:build
----------messages:(3/98)----------
command: build PolyVertTest 
reason: Named class compiled on demand
elapsed time (seconds): 0.011
result: Passed. No need to compile: PolyVertTest.java

#section:main
----------messages:(3/184)----------
command: main  -Dsun.java2d.opengl=TruePolyVertTest-hwonly
reason: User specified action: run main/othervm -Dsun.java2d.opengl=True PolyVertTest -hwonly 
elapsed time (seconds): 4.296
----------System.out:(1/55)----------
OpenGL pipeline enabled for default config on screen 0
----------System.err:(15/866)----------
java.lang.RuntimeException: Error at 11, 10 while testing: Screen
	at PolyVertTest.verify(PolyVertTest.java:445)
	at PolyVertTest.testScreen(PolyVertTest.java:537)
	at PolyVertTest.main(PolyVertTest.java:280)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:589)
	at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:83)
	at java.lang.Thread.run(Thread.java:619)

JavaTest Message: Test threw exception: java.lang.RuntimeException: Error at 11, 10 while testing: Screen
JavaTest Message: shutting down test

STATUS:Failed.`main' threw exception: java.lang.RuntimeException: Error at 11, 10 while testing: Screen
result: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: Error at 11, 10 while testing: Screen


test result: Failed. Execution failed: `main' threw exception: java.lang.RuntimeException: Error at 11, 10 while testing: Screen

How to reproduce the problems:
1. set up JAVA_HOME to b87
2. sh runsolaris.sh 
which as attached.

You can find the test case in:
/java/re/jdk/1.6.0/promoted/rc/b87/ws/j2se/test/sun/java2d/SunGraphics2D/PolyVertTest.java

Comments
EVALUATION Also added "Elite3D" (AFB) boards to the blacklist. Now when running any Java app with -Dsun.java2d.opengl=True on one of these boards, Java 2D will automatically fall back on the default (X11) pipeline to avoid the quality/performance issues associated with these boards. To get more details on the startup process (e.g. to see which board is used and whether it was rejected), set the J2D_TRACE_LEVEL=4 environment variable prior to running the Java application.
12-01-2007

EVALUATION I'm fixing this by adding some code (Solaris/SPARC only) that gets the GL_RENDERER string and checks for "Creator" (FFB2) or "PGX" boards, and if detected, don't bother initializing the OGL pipeline.
11-01-2007

EVALUATION I can reproduce the problem on my SB2000 when displaying to FFB2+, but I cannot reproduce when displaying to XVR-1200 or Expert3D, so it seems to be a minor rasterization issue with Sun's OGL software rasterizer. I modified PolyVertTest to dump the failing image to a file and it looks pretty bad, none of the tests look quite right. We've seen lots of little rasterization problems like this with Sun's OGL software rasterizer in the past (basically affects PGX series and FFB2 boards only) I don't think there is much benefit in being able to turn on the OGL pipeline on these boards (there isn't much hardware acceleration for the kinds of operations we care about), so we should probably just disable the OGL pipeline if we detect one of these boards at startup.
14-06-2006