Skip to content

Commit 5cdd171

Browse files
author
Sulekha Kulkarni
committed
Adding an updated working directory.
1 parent 262e958 commit 5cdd171

File tree

131 files changed

+14382
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

131 files changed

+14382
-0
lines changed

MM-Dev/Governance.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# MotionMark Governance Policy
2+
3+
MotionMark uses multistakeholder governance. This allows participating organizations to collaborate and
4+
develop the benchmark with the goal of maintaining and developing the benchmark to represent rendering-
5+
related workloads on the web. This also provides a structure that can endure to provide maintenance and
6+
adapt to the future web.
7+
8+
An eligible “browser project” is a core end-to-end web browser engine with an integrated JavaScript engine
9+
which distributes implementations widely. The project may delegate decision making within MotionMark
10+
to multiple representatives (for example, to review code commits or to provide consensus for major changes).
11+
The participating browser projects at this time are [Blink](https://www.chromium.org/blink/),
12+
[Gecko](https://developer.mozilla.org/en-US/docs/Glossary/Gecko), and [WebKit](https://webkit.org).
13+
Additions to this list can be proposed via filing an issue in this GitHub repository, and additions to this
14+
list count as a Major change (described below).
15+
16+
The intent is that the working team should be able to move quickly for most changes,
17+
with a higher level of process and consensus expected based on the impact of the change. The working team
18+
consists of the contributors to MotionMark, and their respective browser projects.
19+
20+
- **Trivial change** - This is a change that has no effect on the official benchmark and includes changes
21+
to whitespaces, comments, documentation outside policies and governance model, and unofficial test cases.
22+
A trivial change requires approval by a reviewer, who is not the author of the change,
23+
from one of the participating browser projects. The current reviewership policies for the participating
24+
browser projects can be found
25+
[here](https://chromium.googlesource.com/chromium/src/+/master/docs/code_reviews.md),
26+
[here](https://wiki.mozilla.org/Firefox/Code_Review), and
27+
[here](https://webkit.org/commit-and-review-policy/).
28+
The intent is to ensure basic code quality & license compatibility, not to reach agreement.
29+
For example, one participating browser project might be both writing and reviewing a new benchmark in
30+
a subfolder to test in their own CI, or reviewing code written by an external contributor.
31+
- **Non-trivial change** - This is a change that has small impact on the official benchmark and includes
32+
changes to official test cases, test runners, bug fixes, and the appearance of the benchmark.
33+
A non-trivial change requires approval by at least two of the participating browser projects
34+
(including either authoring or reviewing the change) and none other strongly opposed to the change
35+
within 10 business days.
36+
- **Major change** - This is a change that has major implications on the official benchmark such as
37+
releasing of a new version of the benchmark or any revisions to governance policies and processes,
38+
including changes to the participating browser projects.
39+
A major change requires a consensus, meaning approvals by each of the participating browser projects.
40+
41+
This governance policy and associated code will be hosted inside the MotionMark repository within
42+
the WebKit GitHub organization under the 2-clause BSD license.

MM-Dev/LICENSE

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Copyright (C) 2017-2023 Apple Inc. All rights reserved.
2+
3+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
4+
5+
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
6+
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
7+
8+
THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

MM-Dev/MotionMark/about.html

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
<!--
2+
Copyright (C) 2015-2020 Apple Inc. All rights reserved.
3+
4+
Redistribution and use in source and binary forms, with or without
5+
modification, are permitted provided that the following conditions
6+
are met:
7+
1. Redistributions of source code must retain the above copyright
8+
notice, this list of conditions and the following disclaimer.
9+
2. Redistributions in binary form must reproduce the above copyright
10+
notice, this list of conditions and the following disclaimer in the
11+
documentation and/or other materials provided with the distribution.
12+
13+
THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15+
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16+
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17+
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23+
THE POSSIBILITY OF SUCH DAMAGE.
24+
-->
25+
<!DOCTYPE html>
26+
<html>
27+
<head>
28+
<meta charset="utf-8">
29+
<meta name="viewport" content="width=device-width, user-scalable=no">
30+
31+
<title>About MotionMark</title>
32+
33+
<link rel="stylesheet" href="resources/runner/motionmark.css">
34+
35+
<script src="resources/strings.js"></script>
36+
</head>
37+
<body class="images-loaded">
38+
<main>
39+
<section id="about" class="selected">
40+
<div class="logo"><svg><use xlink:href="resources/runner/logo.svg#root" /></svg></div>
41+
42+
<div class="body">
43+
<h1>About MotionMark <span class="version"></span></h1>
44+
45+
<p>MotionMark is a web benchmark that focuses on graphics performance. It draws multiple rendering elements, each of which uses the same set of graphics primitives. An element could be an SVG node, an HTML element with CSS style, or a series of canvas operations. Slight variations among the elements avoid trivial caching optimizations by the browser. Although fairly simple, the effects were chosen to reflect techniques commonly used on the web. Tests are visually rich, being designed to stress the graphics system rather than JavaScript.</p>
46+
47+
<p>After an initial warm-up, each test runs for a fixed period of time. Based on measurements of the browser’s frame rate, MotionMark adjusts the number of elements to draw, and concentrates around a narrow range where the browser starts to fail animating at the target frame rate (typically 60 frames per second). A piecewise linear regression is applied to the data, and the change point is reported as the test's score. The confidence interval is calculated through <a href="https://en.wikipedia.org/wiki/Bootstrapping_(statistics)">bootstrapping</a>. MotionMark calculates the geometric mean of all of the tests’ scores to report the single score for the run.</p>
48+
49+
<p>MotionMark can be run on a wide variety of devices. Using the device’s screen dimensions it adjusts the drawing area into one of three sizes:</p>
50+
51+
<ol>
52+
<li>Small (568 x 320), targeted at mobile phones</li>
53+
<li>Medium (900 x 600), targeted at tablets and laptops</li>
54+
<li>Large (1600 x 800), targeted at desktops</li>
55+
</ol>
56+
57+
<p>The design of the benchmark is modular. This makes it easy to write new tests and use different controllers, which can assist a developer working on improving the performance of a web engine. For the purpose of a public benchmark, the MotionMark core suite tests a variety of drawing operations using techniques including CSS, SVG, and Canvas:</p>
58+
59+
<ul>
60+
<li><strong>Multiply</strong>: CSS border radius, transforms, opacity</li>
61+
<li><strong>Canvas Arcs</strong>: Canvas path fills and arcs</li>
62+
<li><strong>Leaves</strong>: CSS-transformed elements, opacity</li>
63+
<li><strong>Canvas Paths</strong>: Canvas line, quadratic, and Bezier paths</li>
64+
<li><strong>Canvas Lines</strong>: Canvas line segments</li>
65+
<li><strong>Images</strong>: Canvas <code>getImageData()</code> and <code>putImageData()</code></li>
66+
<li><strong>Design</strong>: HTML text rendering</li>
67+
<li><strong>Suits</strong>: SVG clip paths, gradients and transforms</li>
68+
</ul>
69+
70+
<p>To achieve consistent results on mobile devices, put the device in landscape orientation. On laptops and desktops, use the default display resolution and make the browser window fullscreen. Make sure that screen automatic display sleep is turned off or set to longer than 8 minutes.</p>
71+
72+
<p id="set-display-fps">The MotionMark benchmark relies on the requestAnimationFrame() JavaScript API, which provides callbacks at a consistent frequency related to screen refresh rate. However, browsers have made different choices about whether requestAnimationFrame() should strictly follow screen refresh rate. Safari currently fires requestAnimationFrame() callbacks at 60Hz on 120Hz screens, while other browsers fire it at 120Hz. This affects the benchmark score, so to compare browser scores across browsers, be sure to set the screen refresh rate to 60Hz (for example on macOS, this can be done in the Displays panel in System Settings).</p>
73+
74+
<h3>Version history</h3>
75+
<ul id="log">
76+
<li><strong>1.3.1</strong>:
77+
<ul>
78+
<li><a href="https://github.com/WebKit/MotionMark/commit/c5f2326e9a982cd0d6c8bc15320020ac57147156">Increase the max complexity of the Multiply subtest</a></li>
79+
<li><a href="https://github.com/WebKit/MotionMark/commit/f3034d6f7754eefcebd5df76657082344fc629ee">When a subtest hits maximum complexity, make its reported score be the maximum score.</a></li>
80+
<li><a href="https://github.com/WebKit/MotionMark/commit/3f6115f9ea26fc74e723cb2eb55580dd93bac3d9">Ensure the stage is correctly sized when running from a URL with test parameters</a></li>
81+
<li><a href="https://github.com/WebKit/MotionMark/commit/f1c7edb54b8d5aaa47303a577487a0a6bbe0e144">Make frame rate detection more reliable</a></li>
82+
</ul>
83+
</li>
84+
<li><strong>1.3</strong>:
85+
<ul>
86+
<li><a href="https://github.com/WebKit/MotionMark/commit/37c610115c8c3fae8a74a18305727064c1fd4edc">Ignore mutation frames when scoring</li>
87+
<li><a href="https://github.com/WebKit/MotionMark/commit/da952728b532387c1d93789f36a44115e2d3cb84">The first frame of each ramp has an erroneously long frame duration</li>
88+
<li><a href="https://github.com/WebKit/MotionMark/commit/c0a884c2df3287362a126484cd8c07c940015463">Add support for non-60Hz <code>requestAnimationFrame</code> rates</a></li>
89+
<li><a href="https://github.com/WebKit/MotionMark/commit/9edd41ad33d24cc10b60576b8eb9626178f66122">Change the Multiply subtest to use <code>display:none</code> for non-animating elements</a></li>
90+
<li><a href="https://github.com/WebKit/MotionMark/commit/2b2e9d4e89dbd83922e7960872e8ad5f2d23d043">Increase the maximum complexity of the Multiply subtest</a></li>
91+
<li><a href="https://github.com/WebKit/MotionMark/commit/3090053c0fca81a9feb037075ef934275c690f3e">Make the Paths test workload more consistent</a></li>
92+
<li><a href="https://github.com/WebKit/MotionMark/commit/ff00967f5d6e92624d4e50e92f719a5ad7de95b7">Fix instability in the Design subtest</a></li>
93+
<li><a href="https://github.com/WebKit/MotionMark/commit/465dd49026a40a7bd8d30d64a264492165c711e8">Make the 'slope' profile the default profile</a></li>
94+
</ul>
95+
</li>
96+
<li><strong>1.2</strong>: Fix <a href="https://bugs.webkit.org/show_bug.cgi?id=220847">bug</a>, <a href="https://bugs.webkit.org/show_bug.cgi?id=221075">bug</a>, and <a href="https://bugs.webkit.org/show_bug.cgi?id=219984">bug</a> to reduce test variance and sensitivity to individual long frames.</li>
97+
<li><strong>1.1.1</strong>: Fix <a href="https://bugs.webkit.org/show_bug.cgi?id=210640">bug</a> in the calculation of timestamps used for animation during warm up phase of tests.</li>
98+
<li><a href="https://webkit.org/blog/8434/motionmark-1-1/"><strong>1.1</strong></a>: Update Multiply test to increase max capacity and expand methods for hiding elements. Update Leaves test to use range of sizes and opacity.</li>
99+
<li><a href="https://webkit.org/blog/6943/motionmark-a-new-graphics-benchmark/"><strong>1.0</strong></a>: Initial release.</li>
100+
</ul>
101+
102+
<center><button onclick="location.href='./'">Return to homepage</button></center>
103+
</div>
104+
</section>
105+
</main>
106+
107+
<script>
108+
document.title = "About MotionMark " + Strings.version;
109+
document.querySelector(".version").textContent = Strings.version;
110+
</script>
111+
</body>
112+
</html>

0 commit comments

Comments
 (0)