Backed out 2 changesets (bug 1419306)for eslint failures on /builds/worker/checkouts/gecko/testing/talos/talos/tests/gfx/benchmarks/rasterflood_gradient.html:32:1 r=backout

Backed out changeset 4948ce7f26a8 (bug 1419306)
Backed out changeset 350a5151f44f (bug 1419306)
This commit is contained in:
Tiberius Oros 2017-12-06 12:06:55 +02:00
Родитель 17d9d94075
Коммит daa1d89a83
6 изменённых файлов: 1 добавлений и 337 удалений

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

@ -47,7 +47,7 @@
"talos_options": ["--disable-stylo"]
},
"g4-e10s": {
"tests": ["basic_compositor_video", "glvideo", "displaylist_mutate", "rasterflood_svg", "rasterflood_gradient"]
"tests": ["basic_compositor_video", "glvideo", "displaylist_mutate"]
},
"g4-stylo-disabled-e10s": {
"tests": ["basic_compositor_video", "glvideo"],

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

@ -963,49 +963,3 @@ class displaylist_mutate(PageloaderTest):
'docshell.event_starvation_delay_hint': 1,
'dom.send_after_paint_to_content': False}
unit = 'ms'
@register_test()
class rasterflood_svg(PageloaderTest):
"""
Test modifying single items in a large display list. Measure transaction speed
to the compositor.
"""
tpmanifest = '${talos}/tests/gfx/rasterflood_svg.manifest'
tpcycles = 1
tppagecycles = 10
tploadnocache = True
tpmozafterpaint = False
tpchrome = False
gecko_profile_interval = 2
gecko_profile_entries = 2000000
win_counters = w7_counters = linux_counters = mac_counters = None
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
"""ASAP mode"""
preferences = {'layout.frame_rate': 0,
'docshell.event_starvation_delay_hint': 1,
'dom.send_after_paint_to_content': False}
unit = 'ms'
@register_test()
class rasterflood_gradient(PageloaderTest):
"""
Test expensive rasterization while the main thread is busy.
"""
tpmanifest = '${talos}/tests/gfx/rasterflood_gradient.manifest'
tpcycles = 1
tppagecycles = 10
tploadnocache = True
tpmozafterpaint = False
tpchrome = False
gecko_profile_interval = 2
gecko_profile_entries = 2000000
win_counters = w7_counters = linux_counters = mac_counters = None
filters = filter.ignore_first.prepare(1) + filter.median.prepare()
"""ASAP mode"""
preferences = {'layout.frame_rate': 0,
'docshell.event_starvation_delay_hint': 1,
'dom.send_after_paint_to_content': False}
lower_is_better = False
unit = 'score'

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

@ -1,132 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Paint-In-Time 2</title>
<style>
.gradient {
position: absolute;
width: 800px;
height: 600px;
opacity: 0.4;
}
</style>
</head>
<body>
<div id="grid">
</div>
</body>
<script>
// Only allow painting a tiny slice of the frame - here, 15ms.
var kFrameBudgetMs = 14;
var kDivCount = 10;
var kMaxTime = 20 * 1000;
var gCrazyCounter = 0;
var gIterations = 0;
var gStart;
var gDivs = [];
function GetColor()
{
var color = GetColor.kColors[GetColor.Index];
GetColor.Index++;
GetColor.Index = (GetColor.Index % GetColor.kColors.length);
return color;
}
GetColor.Index = 0;
GetColor.kColors = ["red", "white", "green", "yellow", "orange", "brown"];
function RadialGradient(offset)
{
this.colors = [GetColor(), GetColor()];
this.percents = [0 + offset, 20 + offset];
this.toStyle = function() {
return "radial-gradient(" +
this.colors[0] + " " + this.percents[0] + "%, " +
this.colors[1] + " " + this.percents[1] + "%)";
};
this.advance = function() {
this.percents[0] += 1;
this.percents[0] %= 80;
this.percents[1] = this.percents[0] + 20;
};
}
function runFrame()
{
var start = performance.now();
// Spin loop.
while (performance.now() - start < kFrameBudgetMs)
gCrazyCounter++;
for (var i = 0; i < gDivs.length; i++) {
var info = gDivs[i];
info.gradient.advance();
info.element.style.background = info.gradient.toStyle();
}
gIterations++;
if (performance.now() - gStart >= kMaxTime) {
if (window.tpRecordTime) {
window.tpRecordTime(gIterations);
}
return;
}
window.requestAnimationFrame(runFrame);
}
function setup()
{
var root = document.getElementById("grid");
for (var i = 0; i < kDivCount; i++) {
var gradient = new RadialGradient(i * 10 / 2);
var div = document.createElement("div");
var info = {
element: div,
gradient: gradient
};
div.classList.add("gradient");
div.style.left = "10px";
div.style.top = "10px";
div.style.background = gradient.toStyle();
root.appendChild(div);
gDivs.push(info);
}
}
function startTest() {
setup();
gStart = performance.now();
window.requestAnimationFrame(runFrame);
}
addEventListener("load", function() {
try {
// Outside of talos, this throws a security exception which no-op this file.
// (It's not required nor allowed for addons since Firefox 17)
// It's used inside talos from non-privileged pages (like during tscroll),
// and it works because talos disables all/most security measures.
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {}
try {
Components.utils.import("resource://gre/modules/Services.jsm");
Services.scriptloader.loadSubScript("chrome://talos-powers-content/content/TalosContentProfiler.js");
TalosContentProfiler.resume("rasterflood_gradient.html loaded", true).then(() => {
startTest();
});
} catch (e) {
startTest();
}
});
</script>
</html>

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

@ -1,156 +0,0 @@
<!DOCTYPE html>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Paint-In-Time</title>
<style>
svg {
width: 600px;
height: 800px;
}
</style>
</head>
<body>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
<defs>
<filter id="filter1">
<feGaussianBlur stdDeviation=".5"></feGaussianBlur>
</filter>
<filter id="filter2">
<feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur1"></feGaussianBlur>
<feSpecularLighting result="specOut" in="blur1" specularExponent="20" lighting-color="#cccccc">
<fePointLight x="50" y="50" z="1"></fePointLight>
</feSpecularLighting>
<feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" k1="0" k2="1" k3="1" k4="0"></feComposite>
</filter>
</defs>
<g fill="none" stroke="blue" stroke-width="20" stroke-dasharray="1" class="rotating">
<rect x="50" y="50" width="80px" height="80px" fill="blue" id="rect1" opacity="0.25" filter="url(#filter2)" transform="rotate(202 64 64)">
</rect>
</g>
<g fill="none" stroke="red" stroke-width="20" lass="rotating">
<rect x="75" y="75" width="80px" height="80px" fill="blue" id="rect2" opacity="0.5" filter="url(#filter1)" transform="rotate(202 89 89)">
</rect>
</g>
<g fill="none" stroke="green" stroke-width="20" class="rotating">
<rect x="100" y="100" width="80px" height="80px" fill="green" id="rect3" opacity="0.75" filter="url(#filter1)" transform="rotate(202 114 114)">
</rect>
</g>
<g fill="none" stroke="yellow" stroke-width="20" stroke-dasharray="1" class="rotating">
<rect x="125" y="125" width="80px" height="80px" fill="green" id="rect4" opacity="1" filter="url(#filter2)" transform="rotate(202 139 139)">
</rect>
</g>
<g fill="none" stroke="pink" stroke-width="20" stroke-dasharray="1" class="rotating">
<rect x="75" y="125" width="80px" height="80px" fill="green" id="rect5" opacity="1" filter="url(#filter2)" transform="rotate(202 89 139)">
</rect>
</g>
</svg>
<script>
// Only allow painting a tiny slice of the frame - here, 15ms.
var kFrameBudgetMs = 14;
var kDegPerFrame = 1;
var kCurrentRotation = 0;
var kMaxIterations = 600;
var kMinSize = 80;
var kMaxSize = 200;
var kOpacityPerFrame = [0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05]
var gCrazyCounter = 0;
var gStart;
var gSizeChangePerFrame = 1;
var gCurrentSize = 50;
var gIterations = 0;
function runFrame()
{
var start = performance.now();
// Spin loop.
while (performance.now() - start < kFrameBudgetMs)
gCrazyCounter++;
// Change rotation.
var elts = [
document.getElementById("rect1"),
document.getElementById("rect2"),
document.getElementById("rect3"),
document.getElementById("rect4"),
document.getElementById("rect5"),
];
kCurrentRotation = (kCurrentRotation + kDegPerFrame) % 360;
// Change size.
if (gCurrentSize >= kMaxSize)
gSizeChangePerFrame = -1;
else if (gCurrentSize <= kMinSize)
gSizeChangePerFrame = 1;
gCurrentSize += gSizeChangePerFrame;
for (var i = 0; i < elts.length; i++) {
var elt = elts[i];
elt.setAttribute("height", gCurrentSize + "px");
elt.setAttribute("width", gCurrentSize + "px");
var bb = elt.getBBox();
var x = bb.x + bb.width / 2;
var y = bb.y + bb.height / 2;
var origin = x + " " + y;
elt.setAttribute("transform", "rotate(" + kCurrentRotation + " " + origin + ")");
var opacity = parseFloat(window.getComputedStyle(elt).getPropertyValue('opacity'));
if (opacity + kOpacityPerFrame[i] >= 1.0) {
opacity = 1.0;
kOpacityPerFrame[i] = -kOpacityPerFrame[i];
} else if (opacity + kOpacityPerFrame[i] < 0.1) {
opacity = 1.0;
kOpacityPerFrame[i] = -kOpacityPerFrame[i];
}
elt.setAttribute("opacity", opacity);
}
if (gIterations >= kMaxIterations) {
var end = performance.now();
if (window.tpRecordTime) {
window.tpRecordTime(end - gStart, gStart);
}
if (parent.reportResults) {
parent.reportResults(end - gStart, gStart);
}
return;
}
window.requestAnimationFrame(runFrame);
gIterations++;
}
function startTest() {
gStart = performance.now();
window.requestAnimationFrame(runFrame);
}
addEventListener("load", function() {
try {
// Outside of talos, this throws a security exception which no-op this file.
// (It's not required nor allowed for addons since Firefox 17)
// It's used inside talos from non-privileged pages (like during tscroll),
// and it works because talos disables all/most security measures.
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
} catch (e) {}
try {
Components.utils.import("resource://gre/modules/Services.jsm");
Services.scriptloader.loadSubScript("chrome://talos-powers-content/content/TalosContentProfiler.js");
TalosContentProfiler.resume("rasterflood_svg.html loaded", true).then(() => {
startTest();
});
} catch (e) {
startTest();
}
});
</script>
</body></html>

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

@ -1 +0,0 @@
% http://localhost/tests/gfx/benchmarks/rasterflood_gradient.html

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

@ -1 +0,0 @@
% http://localhost/tests/gfx/benchmarks/rasterflood_svg.html