Status: pass
Result: pass
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 1.19209e-07 (nominally 2 bits) Ideal MRD at infinity is 4.47035e-08 (nominally 1 bit) 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 1.19209e-07 (nominally 2 bits) Ideal MRD at infinity is 4.47035e-08 (nominally 1 bit) Actual MRD at infinity is 1.19209e-07 (nominally 2 bits) polygonOffset: PASS rgba8, z24, win+pmap, id 107 Ideal MRD at near plane is 1.19209e-07 (nominally 2 bits) Actual MRD at near plane is 1.19209e-07 (nominally 2 bits) Ideal MRD at infinity is 4.47035e-08 (nominally 1 bit) Actual MRD at infinity is 1.19209e-07 (nominally 2 bits) |