United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6438225 OGL: regression test sun/java2d/SunGraphics2D/PolyVertTest.java fails
JDK-6438225 : OGL: regression test sun/java2d/SunGraphics2D/PolyVertTest.java fails

Details
Type:
Bug
Submit Date:
2006-06-13
Status:
Closed
Updated Date:
2011-04-05
Project Name:
JDK
Resolved Date:
2011-04-05
Component:
client-libs
OS:
solaris_10
Sub-Component:
2d
CPU:
sparc
Priority:
P4
Resolution:
Fixed
Affected Versions:
6
Fixed Versions:

Related Reports
Backport:

Sub Tasks

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

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.
                                     
2006-06-14
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.
                                     
2007-01-11
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.
                                     
2007-01-12



Hardware and Software, Engineered to Work Together