Status: fail
Result: fail
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: FAIL rgba8, db, z24, s8, win+pmap, id 33 Actual MRD is too large (may waste depth-buffer range) Depth-slope related offset was too small; first failure at: Angle = 0 degrees, axis = (1, 0, 0) Failing offset was 0 Allowable range is (0.01563024567440274, 0.01910399490050307) Ideal MRD at near plane is 1.192092609070272e-07 (nominally 2 bits) Actual MRD at near plane is 0.007813454141796905 (nominally 131088 bits) Ideal MRD at infinity is 5.197647730796487e-08 (nominally 1 bit) Actual MRD at infinity is 0.01562690828359376 (nominally 262176 bits) polygonOffset: FAIL rgba8, db, z24, s8, win+pmap, id 34 Actual MRD is too large (may waste depth-buffer range) Depth-slope related offset was too small; first failure at: Angle = 0 degrees, axis = (1, 0, 0) Failing offset was 0 Allowable range is (0.01563024567440274, 0.01910399490050307) Ideal MRD at near plane is 1.192092609070272e-07 (nominally 2 bits) Actual MRD at near plane is 0.007813454141796905 (nominally 131088 bits) Ideal MRD at infinity is 1.006431147383864e-08 (nominally 0 bits) Actual MRD at infinity is 0.01562690828359379 (nominally 262176 bits) polygonOffset: FAIL rgba8, z24, win+pmap, id 112 Actual MRD is too large (may waste depth-buffer range) Depth-slope related offset was too small; first failure at: Angle = 0 degrees, axis = (1, 0, 0) Failing offset was 0 Allowable range is (0.01563024567440274, 0.01910399490049264) Ideal MRD at near plane is 1.192092504707139e-07 (nominally 2 bits) Actual MRD at near plane is 0.007813454141796905 (nominally 131088 bits) Ideal MRD at infinity is 5.960464655174746e-08 (nominally 1 bit) Actual MRD at infinity is 0.01562690828359375 (nominally 262176 bits) |