Backed out changeset ad64ffa1c7f6 (bug 1678938) for causing reftest failures. CLOSED TREE

This commit is contained in:
smolnar 2020-12-12 02:51:33 +02:00
Родитель aa31799d78
Коммит d34a3b49c3
3 изменённых файлов: 2 добавлений и 21 удалений

Просмотреть файл

@ -1,9 +0,0 @@
<style>
:first-of-type {
filter: saturate(70%);
transform: skew(-224.96198773774648grad) matrix3d(79.00629819492802, -0.0, 43.223526565331326, -294.8479790240964, 269.7, 243.87676190037186, 238.83225166324632, 42.507227157006135, 634943.1, 208.66200905121616, 46.19831959954935, -285.43139932334543, -229.39776691490985, -126.46021751791264, 116.46, 137.77);
border-block-end-style: double;
</style>
<dl>
<header>
</html>

Просмотреть файл

@ -198,6 +198,4 @@ load 1650989-very-large-mask.html
load 1650990.html
skip-if(!webrender||AddressSanitizer) load 1652750-deep-scene-stack.html
load 1651882.html
load 1678938-1.html
load 1679477-1.html

Просмотреть файл

@ -3748,13 +3748,7 @@ static int clip_side(int nump, Point3D* p, Interpolants* interp, Point3D* outP,
assert(numClip < nump + 2);
float prevDist = prevCoord - prevSide * prev.w;
float curDist = curCoord - prevSide * cur.w;
// It may happen that after we interpolate by the weight k that due to
// floating point rounding we've underestimated the value necessary to
// push it over the clipping boundary. Just in case, nudge the mantissa
// by a single increment so that we essentially round it up and move it
// further inside the clipping boundary. We use nextafter to do this in
// a portable fashion.
float k = nextafterf(prevDist / (prevDist - curDist), 1.0f);
float k = prevDist / (prevDist - curDist);
outP[numClip] = prev + (cur - prev) * k;
outInterp[numClip] = prevInterp + (curInterp - prevInterp) * k;
numClip++;
@ -3766,9 +3760,7 @@ static int clip_side(int nump, Point3D* p, Interpolants* interp, Point3D* outP,
assert(numClip < nump + 2);
float prevDist = prevCoord - curSide * prev.w;
float curDist = curCoord - curSide * cur.w;
// Calculate interpolation weight k and the nudge it inside clipping
// boundary with nextafter.
float k = nextafterf(prevDist / (prevDist - curDist), 1.0f);
float k = prevDist / (prevDist - curDist);
outP[numClip] = prev + (cur - prev) * k;
outInterp[numClip] = prevInterp + (curInterp - prevInterp) * k;
numClip++;