blob: 49d0f746cd346d478df817f58e057851e69e09c4 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>Gold Help</title>
<link rel="shortcut icon" href="/dist/favicon.ico" />
</head>
<body class="body-sk">
<gold-scaffold-sk>
<h1>What is Gold?</h1>
<p>
Gold is a tool to help track and manage the output of visual tests over
a range of commits.
</p>
<h2>Overview and Vocabulary</h2>
<p>
A <dfn>test</dfn> is a bit of code that produces a PNG image which is
uploaded to Gold for cataloging. The images uploaded to Gold are
uniquely identified by a hash digest of their pixel content (and
potentially other metadata like colorspace); thus the term
<dfn>digest</dfn> is frequently used as a synonym of image. Digests are
"triaged" to be correct (positive) or incorrect (negative); this is
generally done by a human inspecting the digests. A digest that has not
been marked positive or negative is said to be "untriaged" and generally
means that a test has started producing different output (and a human
should check if it's correct).
</p>
<p>
When a digest is uploaded to Gold, it is tagged with a number of
key/value pairs. These keys (frequently called <dfn>params</dfn>) are
generally used to label how a digest was produced, for example
OS=Android or GPU=Nvidia770GTX. Params can be arbitrary and Gold will
automatically identify and process any new params produced by a test -
no server-side pre-configuration is necessary. There are two special
keys, one for the "name" of the test and the other is "source_type" (aka
corpus). Data in Gold tends to be grouped first by corpus, and then by
test.
</p>
<p>
A Gold <dfn>trace</dfn> refers to all digests seen belonging to a unique
set of params. These traces are visualized throughout Gold as lines of
colored dots where a color refers to a specific digest. A trace belongs
to exactly one test in exactly one corpus. A trace (or test) is allowed
to have multiple positive digests; in practice this happens due to
things like nondeterminism in anti-aliasing algorithms for certain GPUs.
</p>
<p>
To keep processing tractable, Gold only focuses on the last N commits
for which it has seen data. N is generally between 200 and 500 depending
on settings for an individual instance.
</p>
<h2>Pages on Gold</h2>
<h3>By Blame (default page)</h3>
<p>
On the By Blame page, Gold shows a set of recent commits that Gold
believes have first introduced on or more untriaged digests. There are
links on this page that will lead to the Search Page showing all
untriaged digests and the Details page showing details about individual
digests.
</p>
<h3>Search</h3>
<p>
This is one of Gold's most powerful pages, as it allows one to search
and filter over all the input Gold has processed. By default, it will
show traces that have untriaged digests "at head", that is to say,
traces which have most recently produced an unseen image. These traces
are grouped together by digest, so if multiple traces output the same
digest (for example, a Release and a Debug build), they will be closer
together. Digests will automatically be compared to another digest from
the same test; in fact, the most similar digest.
</p>
<p>
It is common to triage digests on the search page. Additionally, there
is a zoom button that can allow for a closer side-by-side view of the
difference between a digest and another digest. When zoomed in, a common
keyboard shortcut "u" can be used to jump to the largest difference.
</p>
<h3>Details</h3>
<p>
The details page shows information about one digest and any traces the
produce it.
</p>
<!-- TODO(kjlubick) more about the other pages -->
</gold-scaffold-sk>
</body>
</html>