Title: [199616] trunk/PerformanceTests
- Revision
- 199616
- Author
- [email protected]
- Date
- 2016-04-15 18:02:59 -0700 (Fri, 15 Apr 2016)
Log Message
Animometer test could report a NaN
https://bugs.webkit.org/show_bug.cgi?id=156646
Reviewed by Darin Adler.
Provisionally reviewed by Said Abou-Hallawa.
* Animometer/tests/resources/main.js:
(didFinishInterval): The ramp controller has a first phase where it ramps up the complexity and
reacts based on how well the system handles the load. The assumption was that it would handle at least
1 particle easily. That is not always the case. As a result, an interpolation calculation could
end up setting an upper bound of NaN.
This occurs because we never get out of the first tier, so this._lastTierComplexity is undefined.
Now that we guarantee a minimum complexity of 1, modify the conditional to check for this._lastTierComplexity
before interpolating the upper bound of the first ramp. In the case where the system struggles with
1 particle, set it to currentComplexity.
Modified Paths
Diff
Modified: trunk/PerformanceTests/Animometer/tests/resources/main.js (199615 => 199616)
--- trunk/PerformanceTests/Animometer/tests/resources/main.js 2016-04-16 00:01:59 UTC (rev 199615)
+++ trunk/PerformanceTests/Animometer/tests/resources/main.js 2016-04-16 01:02:59 UTC (rev 199616)
@@ -413,10 +413,11 @@
this._possibleMinimumComplexity = this._minimumComplexity;
this._minimumComplexityEstimator.sample(this._minimumComplexity);
- // Sometimes this last tier will drop the frame length well below the threshold
- // Avoid going down that far since it means fewer measurements are taken in the 60 fps area
- // Interpolate a maximum complexity that gets us around the lowest threshold
- if (this._lastTierComplexity != currentComplexity)
+ // Sometimes this last tier will drop the frame length well below the threshold.
+ // Avoid going down that far since it means fewer measurements are taken in the 60 fps area.
+ // Interpolate a maximum complexity that gets us around the lowest threshold.
+ // Avoid doing this calculation if we never get out of the first tier (where this._lastTierComplexity is undefined).
+ if (this._lastTierComplexity && this._lastTierComplexity != currentComplexity)
this._maximumComplexity = Math.floor(Utilities.lerp(Utilities.progressValue(this.frameLengthSlowestThreshold, this._lastTierFrameLength, currentFrameLength), this._lastTierComplexity, currentComplexity));
else {
// If the browser is capable of handling the most complex version of the test, use that
Modified: trunk/PerformanceTests/ChangeLog (199615 => 199616)
--- trunk/PerformanceTests/ChangeLog 2016-04-16 00:01:59 UTC (rev 199615)
+++ trunk/PerformanceTests/ChangeLog 2016-04-16 01:02:59 UTC (rev 199616)
@@ -1,3 +1,22 @@
+2016-04-15 Jon Lee <[email protected]>
+
+ Animometer test could report a NaN
+ https://bugs.webkit.org/show_bug.cgi?id=156646
+
+ Reviewed by Darin Adler.
+ Provisionally reviewed by Said Abou-Hallawa.
+
+ * Animometer/tests/resources/main.js:
+ (didFinishInterval): The ramp controller has a first phase where it ramps up the complexity and
+ reacts based on how well the system handles the load. The assumption was that it would handle at least
+ 1 particle easily. That is not always the case. As a result, an interpolation calculation could
+ end up setting an upper bound of NaN.
+
+ This occurs because we never get out of the first tier, so this._lastTierComplexity is undefined.
+ Now that we guarantee a minimum complexity of 1, modify the conditional to check for this._lastTierComplexity
+ before interpolating the upper bound of the first ramp. In the case where the system struggles with
+ 1 particle, set it to currentComplexity.
+
2016-04-09 Jon Lee <[email protected]>
Update Animometer to accommodate different screens
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes