- 17 Jun, 2020 1 commit
-
-
Markus Stange authored
Bug 1642603 - Make TransformAndClipBounds stop discarding the corner positions of empty rectangles. r=kip, a=RyanVM Differential Revision: https://phabricator.services.mozilla.com/D79582
-
- 02 Apr, 2020 1 commit
-
-
Markus Stange authored
Bug 1595038 - Make sure that TransformAndClipBounds returns an empty clipped rect when the clip itself is already empty. r=kip The test added in this changeset is already fixed by the no-normalization change, but there are probably cases that require the explicit check that this patch adds. When we were still normalizing the plane normals, the TransformAndClipBounds call in the added test was returning (1023.999878, 1023.999878, 0.000061, 0.000122). Depends on D68703 Differential Revision: https://phabricator.services.mozilla.com/D68704 --HG-- extra : moz-landing-system : lando
-
- 01 Apr, 2020 1 commit
-
-
Markus Stange authored
Bug 1595038 - Stop normalizing the plane normals, in order reduce error from floating point inaccuracies. r=kip For example, if the clipping rectangle has aClip.X() == 1024, then the normal for the clipping plane induced by the left edge of the clip will now be (1, 0, 0, -1024) rather than (0.0009765620343390458, 0, 0, -0.9999995231631829). This change is mathematically valid: - The dot products computed from these vectors become multiplied by planeNormal.Length() (compared to before this patch). - The sign of the dot products is not affected, so the "intersection with plane" check is not affected: `if ((nextDot >= 0.0) != (prevDot >= 0.0)) {` - The value of the dot products is only used to compute `t`, as follows: `F t = -prevDot / (nextDot - prevDot);` Here, the length now appears both in the numerator and in the denominator, canceling itself out. As a result from this change, the existing tests no longer require integer nudging in order to pass. Depends on D68702 Differential Revision: https://phabricator.services.mozilla.com/D68703 --HG-- extra : moz-landing-system : lando
-
- 25 Mar, 2020 1 commit
-
-
Botond Ballo authored
Differential Revision: https://phabricator.services.mozilla.com/D66505 --HG-- extra : moz-landing-system : lando
-
- 16 Oct, 2019 1 commit
-
-
Botond Ballo authored
Differential Revision: https://phabricator.services.mozilla.com/D49486 --HG-- extra : moz-landing-system : lando
-
- 06 Sep, 2019 1 commit
-
-
Markus Stange authored
Bug 1578045 - Correctly return zero vertices if clipping plane 0 or 2 clip away the entire polygon. r=kip This fixes a bug that was introduced three years ago in bug 1268854. What happened was that the final pass over the polygon assumed that the current polygon was living in plane[0]. But due to the double buffering, the "current" polygon alternates between plane[0] and plane[1]. And bug 1268854 had introduced an early exit so that we could hit the final pass at a time where the current, now empty, polygon was in plane[1]. So we would incorrectly treat all 32 points in plane[0] as part of the final polygon. This bug was responsible for intermittently unreasonable numbers in CompositorOGL's fill rate / overdraw overlay, and, since changeset cc84a0e9d5ddde198422f4f11ab6bf85f631d5f0, also caused CompositorOGL to execute unnecessary draw calls. Differential Revision: https://phabricator.services.mozilla.com/D44312 --HG-- extra : moz-landing-system : lando
-