diff --git a/docs/tint/benchmark.md b/docs/tint/benchmark.md
new file mode 100644
index 0000000..691cae1
--- /dev/null
+++ b/docs/tint/benchmark.md
@@ -0,0 +1,44 @@
+# Tint Benchmark
+
+The `tint_benchmark` executable measures the cost of translating shaders from WGSL to each backend language.
+The benchmark uses [Google Benchmark](https://github.com/google/benchmark), and is integrated into [Chromium's performance waterfall](https://chromium.googlesource.com/chromium/src.git/+/HEAD/docs/speed/perf_waterfall.md).
+
+## Benchmark inputs
+
+Shaders used for benchmarking can be provided as either WGSL or SPIR-V.
+The shaders are embedded in the binary at build time in order to avoid runtime dependencies.
+A [Python script](https://source.chromium.org/chromium/chromium/src/+/main:third_party/dawn/src/tint/cmd/bench/generate_benchmark_inputs.py) is used to generate a header file that contains all of the benchmark shaders, and the macros that register benchmarks with the Google Benchmark harness.
+
+SPIR-V shaders are converted to WGSL as an offline step using Tint, as the SPIR-V reader is not available on the waterfall bots.
+The generated WGSL files are checked in to the repo and the same script is used by CQ to check that the generated files are up to date.
+
+The script lists the paths to all of the benchmark shaders, which are either in the end-to-end test directory (`test/tint/benchmark/`) or provided as external shaders in `third_party/benchmark_shaders/`.
+
+## Adding benchmarks
+
+Files that end with `_bench.cc` are automatically included in the benchmark binary.
+To benchmark a component of Tint against the benchmark shaders, define a function that performs the benchmarking and then register it with the `TINT_BENCHMARK_PROGRAMS` macro.
+For example, the SPIR-V backend benchmark code is in [`src/tint/lang/spirv/writer/writer_bench.cc`](https://source.chromium.org/chromium/chromium/src/+/main:third_party/dawn/src/tint/lang/spirv/writer/writer_bench.cc).
+
+Other parts of Tint can be benchmarked independently from the benchmark shader corpus by registering the benchmark function with the `BENCHMARK` macro.
+
+## Chromium performance waterfall
+
+The `tint_benchmark` binary is a dependency of the `performance_test_suite_template_base` template in [chrome/test/BUILD.gn](https://source.chromium.org/chromium/chromium/src/+/refs/tags/131.0.6735.1:chrome/test/BUILD.gn;l=5909).
+
+The [`bot_platforms.py`](https://source.chromium.org/chromium/chromium/src/+/main:tools/perf/core/bot_platforms.py) script controls which platforms run the benchmark.
+The benchmark was added to the waterfall in [this CL](https://chromium-review.googlesource.com/c/chromium/src/+/5815585).
+
+The [chrome.perf console](https://ci.chromium.org/p/chrome/g/chrome.perf/console) shows the status of the builder and tester bots, and can be used to check that changes to the benchmarking setup are working correctly.
+
+## Viewing benchmark data
+
+View benchmark data with the [perf.luci.app](https://perf.luci.app/) dashboard.
+The units for Tint benchmarks are nanoseconds.
+
+The query parameters are:
+
+- `benchmark` - select `tint_benchmark`
+- `bot` - select the waterfall bot from which to view data
+- `test` - select the component of Tint to focus on (e.g. a specific backend)
+- `subtest_1` - select the benchmark shader to focus on
