Results for glean/polygonOffset

Overview

Status: pass
Result: pass

Back to summary

Details

Detail Value
returncode 0
info
Returncode: 0

Errors:


Output:
----------------------------------------------------------------------
This test verifies glPolygonOffset.  It is run on every
OpenGL-capable drawing surface configuration that supports
creation of a window, has a depth buffer, and is RGB.

The first subtest verifies that the OpenGL implementation is
using a plausible value for the "minimum resolvable
difference" (MRD).  This is the offset in window coordinates
that is sufficient to provide separation in depth (Z) for any
two parallel surfaces.  The subtest searches for the MRD by
drawing two surfaces at a distance from each other and
checking the resulting image to see if they were cleanly
separated.  The distance is then modified (using a binary
search) until a minimum value is found.  This is the so-called
"ideal" MRD.  Then two surfaces are drawn using
glPolygonOffset to produce a separation that should equal one
MRD.  The depth values at corresponding points on each surface
are subtracted to form the "actual" MRD.  The subtest performs
these checks twice, once close to the viewpoint and once far
away from it, and passes if the largest of the ideal MRDs and
the largest of the actual MRDs are nearly the same.

The second subtest verifies that the OpenGL implementation is
producing plausible values for slope-dependent offsets.  The
OpenGL spec requires that the depth slope of a surface be
computed by an approximation that is at least as large as
max(abs(dz/dx),abs(dz/dy)) and no larger than
sqrt((dz/dx)**2+(dz/dy)**2).  The subtest draws a quad rotated
by various angles along various axes, samples three points on
the quad's surface, and computes dz/dx and dz/dy.  Then it
draws two additional quads offset by one and two times the
depth slope, respectively.  The base quad and the two new
quads are sampled and their actual depths read from the depth
buffer.  The subtest passes if the quads are offset by amounts
that are within one and two times the allowable range,
respectively.

polygonOffset:  PASS rgba8, db, z24, s8, win+pmap, id 33
	Ideal  MRD at near plane is 1.19209e-07 (nominally 2 bits)
	Actual MRD at near plane is 5.96046e-08 (nominally 1 bit)
	Ideal  MRD at infinity is 5.34297e-09 (nominally 0 bits)
	Actual MRD at infinity is 1.19209e-07 (nominally 2 bits)
polygonOffset:  PASS rgba8, db, z24, s8, win+pmap, id 34
	Ideal  MRD at near plane is 1.19209e-07 (nominally 2 bits)
	Actual MRD at near plane is 5.96046e-08 (nominally 1 bit)
	Ideal  MRD at infinity is 7.83724e-08 (nominally 1 bit)
	Actual MRD at infinity is 1.19209e-07 (nominally 2 bits)
polygonOffset:  PASS rgba8, z24, win+pmap, id 112
	Ideal  MRD at near plane is 1.19209e-07 (nominally 2 bits)
	Actual MRD at near plane is 5.96046e-08 (nominally 1 bit)
	Ideal  MRD at infinity is 5.96046e-08 (nominally 1 bit)
	Actual MRD at infinity is 1.19209e-07 (nominally 2 bits)

Back to summary