media-gfx/deqp-runner: Add my multithreaded dEQP runner and its deps.

This is the dEQP runner I wrote that is in use in Mesa's pre-merge CI.
It should let us fix our long autotest times for deqp.

As an example, I used this to test on gles2 on trogdor in 1.5 minutes:

deqp-runner run \
  --deqp /usr/local/deqp/modules/gles2/deqp-gles2 \
  --caselist /usr/local/deqp/master/gles2-master.txt \
  --output /tmp/gles2 \
  -- \
  --deqp-surface-type=pbuffer \
  --deqp-surface-width=256 \
  --deqp-surface-height=256 \
  --deqp-gl-config-name=rgba8888d24s8ms0

BUG=b:171728575
TEST=deqp-runner gles2 on trogdor.

Change-Id: I2af99257930758660cf937b62651bce8754d893a
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/overlays/chromiumos-overlay/+/2580706
Tested-by: Eric Anholt <anholt@google.com>
Reviewed-by: Eric Anholt <anholt@google.com>
Reviewed-by: Chirantan Ekbote <chirantan@chromium.org>
Commit-Queue: Eric Anholt <anholt@google.com>
diff --git a/dev-rust/chrono/Manifest b/dev-rust/chrono/Manifest
index a808c14..e3bdd3a 100644
--- a/dev-rust/chrono/Manifest
+++ b/dev-rust/chrono/Manifest
@@ -1 +1,2 @@
+DIST chrono-0.4.19.crate 155663 BLAKE2B c92c273fb6475bbb2546dfb75eaa23321bc8f9a5fa8a7c652f527649b96ff8718fa932f52b500b02a4acae7837df5bdb14f69cb821d4962be2790dbd1d023a54 SHA512 a119349bfc2243a249f1d18b1ae548a04b30fecb75913a56f26d1ff8c0eb53097a2674d9141e2094018191cbbc1620843fbddaf52999824e077c1157f0907980
 DIST chrono-0.4.2.crate 129309 BLAKE2B 691be25cb01dc36b65dac214b7e0246515f85d646deb2754adb53243ccd30f84d659eef6c2c2d9169af98adfb27b52dc04a345ce6ade3236ece4a37cf097d4e7 SHA512 1433e5293931b41598ff7e50f233c8b17c6297617fb86ea293ae0f6dbea2d074b896ea8eb63edd4fb0f5c16fb8663666370cb76e7b3789efade06af202d6a74d
diff --git a/dev-rust/chrono/chrono-0.4.19.ebuild b/dev-rust/chrono/chrono-0.4.19.ebuild
new file mode 100644
index 0000000..aa11258
--- /dev/null
+++ b/dev-rust/chrono/chrono-0.4.19.ebuild
@@ -0,0 +1,25 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit cros-rust
+
+DESCRIPTION="Aims to be a feature-complete superset of the time library"
+HOMEPAGE="https://github.com/chronotope/chrono"
+SRC_URI="https://crates.io/api/v1/crates/${PN}/${PV}/download -> ${P}.crate"
+
+LICENSE="|| ( MIT Apache-2.0 )"
+SLOT="${PV}/${PR}"
+KEYWORDS="*"
+
+DEPEND=">=dev-rust/num-integer-0.1.36:=
+	=dev-rust/num-traits-0.2*:=
+	>=dev-rust/num-iter-0.1.35:=
+	>=dev-rust/rustc-serialize-0.3.20:=
+	=dev-rust/serde-1*:=
+	=dev-rust/serde_derive-1*:=
+	=dev-rust/serde_json-1*:=
+	>=dev-rust/time-0.1.43:= <dev-rust/time-0.2.0
+	=dev-rust/bincode-0.8*:=
+"
diff --git a/dev-rust/criterion/OWNERS b/dev-rust/criterion/OWNERS
new file mode 100644
index 0000000..12f21f8
--- /dev/null
+++ b/dev-rust/criterion/OWNERS
@@ -0,0 +1 @@
+include /media-gfx/deqp-runner/OWNERS
diff --git a/dev-rust/criterion/criterion-0.3.0.ebuild b/dev-rust/criterion/criterion-0.3.0.ebuild
new file mode 100644
index 0000000..620da3d
--- /dev/null
+++ b/dev-rust/criterion/criterion-0.3.0.ebuild
@@ -0,0 +1,15 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CROS_RUST_EMPTY_CRATE=1
+
+inherit cros-rust
+
+DESCRIPTION="Empty ${PN} crate"
+HOMEPAGE="https://github.com/bheisler/criterion.rs"
+
+LICENSE="|| ( MIT Apache-2.0 )"
+SLOT="${PV}/${PR}"
+KEYWORDS="*"
diff --git a/dev-rust/heck/Manifest b/dev-rust/heck/Manifest
new file mode 100644
index 0000000..f9e4911
--- /dev/null
+++ b/dev-rust/heck/Manifest
@@ -0,0 +1 @@
+DIST heck-0.3.1.crate 54666 BLAKE2B 99f7ceb44ea6af445749989730ce1e14156018ff046a136be2e6474b285088e1d90d6f8af9352affbbde5bac7e5a32971dd99f249f968105e9793b7de76def07 SHA512 134722192c46fd64b38d2fbec3a2511c560916e906491a72c4ec9d99b9f716dc58942fb99cac99b9a6ef2de5b5ad1d1c1155f292d091401b6873347d80c086d6
diff --git a/dev-rust/heck/OWNERS b/dev-rust/heck/OWNERS
new file mode 100644
index 0000000..12f21f8
--- /dev/null
+++ b/dev-rust/heck/OWNERS
@@ -0,0 +1 @@
+include /media-gfx/deqp-runner/OWNERS
diff --git a/dev-rust/heck/heck-0.3.1.ebuild b/dev-rust/heck/heck-0.3.1.ebuild
new file mode 100644
index 0000000..70dbafa
--- /dev/null
+++ b/dev-rust/heck/heck-0.3.1.ebuild
@@ -0,0 +1,18 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit cros-rust
+
+DESCRIPTION="heck is a case conversion library"
+HOMEPAGE="https://github.com/withoutboats/heck"
+SRC_URI="https://crates.io/api/v1/crates/${PN}/${PV}/download -> ${P}.crate"
+
+LICENSE="|| ( MIT Apache-2.0 )"
+SLOT="${PV}/${PR}"
+KEYWORDS="*"
+
+DEPEND="
+	>=dev-rust/unicode-segmentation-1.2.0:= <dev-rust/unicode-segmentation-2.0.0
+"
diff --git a/dev-rust/paw/OWNERS b/dev-rust/paw/OWNERS
new file mode 100644
index 0000000..12f21f8
--- /dev/null
+++ b/dev-rust/paw/OWNERS
@@ -0,0 +1 @@
+include /media-gfx/deqp-runner/OWNERS
diff --git a/dev-rust/paw/paw-1.0.0.ebuild b/dev-rust/paw/paw-1.0.0.ebuild
new file mode 100644
index 0000000..0b7051b
--- /dev/null
+++ b/dev-rust/paw/paw-1.0.0.ebuild
@@ -0,0 +1,15 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CROS_RUST_EMPTY_CRATE=1
+
+inherit cros-rust
+
+DESCRIPTION="Empty ${PN} crate"
+HOMEPAGE="https://github.com/rust-cli/paw"
+
+LICENSE="|| ( MIT Apache-2.0 )"
+SLOT="${PV}/${PR}"
+KEYWORDS="*"
diff --git a/dev-rust/proc-macro-error-attr/Manifest b/dev-rust/proc-macro-error-attr/Manifest
new file mode 100644
index 0000000..c199ec0
--- /dev/null
+++ b/dev-rust/proc-macro-error-attr/Manifest
@@ -0,0 +1 @@
+DIST proc-macro-error-attr-1.0.4.crate 7971 BLAKE2B 98e2925881c2be186e22c2c439697e91d43f807eb61a5d13e3b0b4321ed50a74f3d699942c04b89b6fea0f156bb5d19ebcf22f9cd4b98a7e6917c437600ed823 SHA512 2606afa9ec78d7dad4500c98d3a5ecbd02c6b53ab829c742bed7f57b322a95238ab4e01cf268746815f1424fd9b02eddfa30e72f98c66106f57765f3d3116495
diff --git a/dev-rust/proc-macro-error-attr/OWNERS b/dev-rust/proc-macro-error-attr/OWNERS
new file mode 100644
index 0000000..12f21f8
--- /dev/null
+++ b/dev-rust/proc-macro-error-attr/OWNERS
@@ -0,0 +1 @@
+include /media-gfx/deqp-runner/OWNERS
diff --git a/dev-rust/proc-macro-error-attr/proc-macro-error-attr-1.0.4.ebuild b/dev-rust/proc-macro-error-attr/proc-macro-error-attr-1.0.4.ebuild
new file mode 100644
index 0000000..5fff8ce
--- /dev/null
+++ b/dev-rust/proc-macro-error-attr/proc-macro-error-attr-1.0.4.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit cros-rust
+
+DESCRIPTION="Attribute macro for proc-macro-error crate"
+HOMEPAGE="https://gitlab.com/CreepySkeleton/proc-macro-error"
+SRC_URI="https://crates.io/api/v1/crates/${PN}/${PV}/download -> ${P}.crate"
+
+LICENSE="|| ( MIT Apache-2.0 )"
+SLOT="${PV}/${PR}"
+KEYWORDS="*"
+
+DEPEND="
+	=dev-rust/proc-macro2-1*:=
+	=dev-rust/quote-1*:=
+	=dev-rust/version_check-0.9*:=
+"
diff --git a/dev-rust/proc-macro-error/Manifest b/dev-rust/proc-macro-error/Manifest
new file mode 100644
index 0000000..6974b47
--- /dev/null
+++ b/dev-rust/proc-macro-error/Manifest
@@ -0,0 +1 @@
+DIST proc-macro-error-1.0.4.crate 25293 BLAKE2B ef918c5efaf2545ab38787c8d0c07315af00431139e4dff66346bf798e3a429f91d12a79776c150412fdda0b158a72badd5e1044ac4d6917f8482d4b5a7110b7 SHA512 8a47bc9d3e24e9561d1e384d8f5a633284c2cf9b5e6733c5f9d1dbfe1870ccc8e2152482852e50b551cecb68e009148585b910ffb0508a7b4875598eaf8657db
diff --git a/dev-rust/proc-macro-error/OWNERS b/dev-rust/proc-macro-error/OWNERS
new file mode 100644
index 0000000..12f21f8
--- /dev/null
+++ b/dev-rust/proc-macro-error/OWNERS
@@ -0,0 +1 @@
+include /media-gfx/deqp-runner/OWNERS
diff --git a/dev-rust/proc-macro-error/proc-macro-error-1.0.4.ebuild b/dev-rust/proc-macro-error/proc-macro-error-1.0.4.ebuild
new file mode 100644
index 0000000..6d363a1
--- /dev/null
+++ b/dev-rust/proc-macro-error/proc-macro-error-1.0.4.ebuild
@@ -0,0 +1,24 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CROS_RUST_REMOVE_DEV_DEPS=1
+
+inherit cros-rust
+
+DESCRIPTION="This crate aims to make error reporting in proc-macros simple and easy to use"
+HOMEPAGE="https://gitlab.com/CreepySkeleton/proc-macro-error"
+SRC_URI="https://crates.io/api/v1/crates/${PN}/${PV}/download -> ${P}.crate"
+
+LICENSE="|| ( MIT Apache-2.0 )"
+SLOT="${PV}/${PR}"
+KEYWORDS="*"
+
+DEPEND="
+	=dev-rust/proc-macro2-1*:=
+	~dev-rust/proc-macro-error-attr-1.0.4:=
+	=dev-rust/quote-1*:=
+	=dev-rust/syn-1*:=
+	=dev-rust/version_check-0.9*:=
+"
diff --git a/dev-rust/stderrlog/Manifest b/dev-rust/stderrlog/Manifest
new file mode 100644
index 0000000..c9d37fb
--- /dev/null
+++ b/dev-rust/stderrlog/Manifest
@@ -0,0 +1 @@
+DIST stderrlog-0.5.0.crate 19241 BLAKE2B 08431e0c2bc174dcde4052d65991e9b1c46c945656b4abda9a5e4150e094e64e25aeff34bc6000f9da2535468de6071eb4cdd3439bf204ce4f5d95dd8566c3dc SHA512 6402d873eab7a8e458e43163e7e087d75cf775411550c9da952f2d5bece24e0240e46a2c1eb75b3f6e96a4a34ae0109fb00c5e38bb8ba926ff9edb03d9c301c7
diff --git a/dev-rust/stderrlog/OWNERS b/dev-rust/stderrlog/OWNERS
new file mode 100644
index 0000000..12f21f8
--- /dev/null
+++ b/dev-rust/stderrlog/OWNERS
@@ -0,0 +1 @@
+include /media-gfx/deqp-runner/OWNERS
diff --git a/dev-rust/stderrlog/stderrlog-0.5.0.ebuild b/dev-rust/stderrlog/stderrlog-0.5.0.ebuild
new file mode 100644
index 0000000..8d061f3
--- /dev/null
+++ b/dev-rust/stderrlog/stderrlog-0.5.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CROS_RUST_REMOVE_DEV_DEPS=1
+
+inherit cros-rust
+
+DESCRIPTION="Logger that aims to provide a simple case of env_logger that just logs to stderr based on verbosity"
+HOMEPAGE="https://github.com/cardoe/stderrlog-rs"
+SRC_URI="https://crates.io/api/v1/crates/${PN}/${PV}/download -> ${P}.crate"
+
+LICENSE="|| ( MIT Apache-2.0 )"
+SLOT="${PV}/${PR}"
+KEYWORDS="*"
+
+DEPEND="
+	>=dev-rust/atty-0.2.6:= <dev-rust/atty-0.3.0
+	>=dev-rust/chrono-0.4.10:= <dev-rust/chrono-0.5.0
+	>=dev-rust/log-0.4.11:= <dev-rust/log-0.5.0
+	>=dev-rust/termcolor-1.1:= <dev-rust/termcolor-1.2
+	>=dev-rust/thread_local-1.0:= <dev-rust/thread_local-1.1
+"
diff --git a/dev-rust/structopt-derive/Manifest b/dev-rust/structopt-derive/Manifest
new file mode 100644
index 0000000..a34e7c8
--- /dev/null
+++ b/dev-rust/structopt-derive/Manifest
@@ -0,0 +1 @@
+DIST structopt-derive-0.4.13.crate 20115 BLAKE2B dd2546903b8fc329c7f0a2cb950e6a20e1c61f49a713fec8e829cdf815ac81681625c0806b9a992e7d2c71923fa382abcfb37f53db1fa6e80169f32a48bcfbca SHA512 85fdd4ea10bff737022b289277d72ebdb6fd861a7cb41eaa28b5aeef99926de00a01fc83cebd79482186640a3f6e8c804d7aba294c6a401438d3e5b06b9dab38
diff --git a/dev-rust/structopt-derive/OWNERS b/dev-rust/structopt-derive/OWNERS
new file mode 100644
index 0000000..12f21f8
--- /dev/null
+++ b/dev-rust/structopt-derive/OWNERS
@@ -0,0 +1 @@
+include /media-gfx/deqp-runner/OWNERS
diff --git a/dev-rust/structopt-derive/structopt-derive-0.4.13.ebuild b/dev-rust/structopt-derive/structopt-derive-0.4.13.ebuild
new file mode 100644
index 0000000..bb59d35
--- /dev/null
+++ b/dev-rust/structopt-derive/structopt-derive-0.4.13.ebuild
@@ -0,0 +1,22 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit cros-rust
+
+DESCRIPTION="Parse command line argument by defining a struct, derive crate"
+HOMEPAGE="https://github.com/TeXitoi/structopt"
+SRC_URI="https://crates.io/api/v1/crates/${PN}/${PV}/download -> ${P}.crate"
+
+LICENSE="|| ( MIT Apache-2.0 )"
+SLOT="${PV}/${PR}"
+KEYWORDS="*"
+
+DEPEND="
+	=dev-rust/heck-0.3*:=
+	=dev-rust/proc-macro2-1*:=
+	=dev-rust/proc-macro-error-1*:=
+	=dev-rust/quote-1*:=
+	=dev-rust/syn-1*:=
+"
diff --git a/dev-rust/structopt/Manifest b/dev-rust/structopt/Manifest
new file mode 100644
index 0000000..b049878
--- /dev/null
+++ b/dev-rust/structopt/Manifest
@@ -0,0 +1 @@
+DIST structopt-0.3.20.crate 50699 BLAKE2B a88142017ade95e408477282e6a5447c95b51337d558cd0e098b42d0d64079992fd3d9de99a2c7f7264f09b40c6a3251e888562c8cca3ea5bc901eddef18b700 SHA512 cdbd409fb5443622184a21b108c6ed854676912dc599b0dfbe3a4d229184f3690739dc931c80e55aa43730ff8c66ea4b65e92f8739e81f26f3f45a4c75c7e845
diff --git a/dev-rust/structopt/OWNERS b/dev-rust/structopt/OWNERS
new file mode 100644
index 0000000..12f21f8
--- /dev/null
+++ b/dev-rust/structopt/OWNERS
@@ -0,0 +1 @@
+include /media-gfx/deqp-runner/OWNERS
diff --git a/dev-rust/structopt/structopt-0.3.20.ebuild b/dev-rust/structopt/structopt-0.3.20.ebuild
new file mode 100644
index 0000000..409d3f2
--- /dev/null
+++ b/dev-rust/structopt/structopt-0.3.20.ebuild
@@ -0,0 +1,23 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CROS_RUST_REMOVE_DEV_DEPS=1
+
+inherit cros-rust
+
+DESCRIPTION="Parse command line arguments by defining a struct."
+HOMEPAGE="https://github.com/TeXitoi/structopt"
+SRC_URI="https://crates.io/api/v1/crates/${PN}/${PV}/download -> ${P}.crate"
+
+LICENSE="|| ( MIT Apache-2.0 )"
+SLOT="${PV}/${PR}"
+KEYWORDS="*"
+
+DEPEND="
+	>=dev-rust/clap-2.33.0:= <dev-rust/clap-3.0.0
+	>=dev-rust/lazy_static-1.4.0:= <dev-rust/lazy_static-2.0.0
+	=dev-rust/structopt-derive-0.4.13:=
+	=dev-rust/paw-1*:=
+"
diff --git a/dev-rust/termcolor/Manifest b/dev-rust/termcolor/Manifest
index 3d943cb..407b194 100644
--- a/dev-rust/termcolor/Manifest
+++ b/dev-rust/termcolor/Manifest
@@ -1,2 +1,3 @@
 DIST termcolor-0.3.6.crate 13548 BLAKE2B 4d7faffc3be9ffe4e6da0ea20e6b244c0d9e488ff1c97851dfce073622e68f041e1c77d3c49c769a5e6525c28dfcdd998b381a5abcaa5c4ea63b0acf0e28bf2d SHA512 cfb8e0172abad994da27b1474ab0de244db782ac9c7fcd877d9f1727eaa2fb95036638edbab6b69c3302d1b880eba14cc7282ae0ec78ada1d31a9ef682d4cc90
+DIST termcolor-1.1.0.crate 17193 BLAKE2B c3a1a80269195f6bc92d141fce0885413c031980a4ad2f0f6e5a9051acfac10bad8a484362bfcaf3a60851a97d930e9602df4c00aec39431ea5a8a20d40a55c2 SHA512 41b05b047cbfdd5e3990eb36f635dc8ccf26a42bd5403d6d14a9f3c341e92b61c3b8d4d5f4fcd29071a97b3d96280ed59b4557b63a769390e2729fc82ab39702
 DIST termcolor-1.0.4.crate 14416 BLAKE2B 373701dd2b8a3d584a44d1429e5fd3a697eb7b9138ca6c76eadbf642976e73a701d565a93d77ead3f5cc542c204b3bdce9cc5101b2778b3e32272db9c419edd7 SHA512 cc2f90f453834666b3dcf96c48695cc1fc48c6aacf71437bab635678f486cf02ba6e1c040ff011be078a17b50f9f6d2c09fec771e362d8d2d07526b0f040df6b
diff --git a/dev-rust/termcolor/termcolor-1.1.0.ebuild b/dev-rust/termcolor/termcolor-1.1.0.ebuild
new file mode 100644
index 0000000..c532fa9
--- /dev/null
+++ b/dev-rust/termcolor/termcolor-1.1.0.ebuild
@@ -0,0 +1,18 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+inherit cros-rust
+
+DESCRIPTION="A simple cross platform library for writing colored text to a terminal."
+HOMEPAGE="https://github.com/BurntSushi/termcolor"
+SRC_URI="https://crates.io/api/v1/crates/${PN}/${PV}/download -> ${P}.crate"
+
+LICENSE="|| ( MIT Apache-2.0 )"
+SLOT="${PV}/${PR}"
+KEYWORDS="*"
+
+DEPEND="
+	>=dev-rust/winapi-util-0.1.3:= <dev-rust/winapi-util-0.2.0
+"
diff --git a/dev-rust/time/Manifest b/dev-rust/time/Manifest
index 0a3e6d0..259d75b 100644
--- a/dev-rust/time/Manifest
+++ b/dev-rust/time/Manifest
@@ -1 +1,2 @@
 DIST time-0.1.40.crate 29518 BLAKE2B 9102a29eeeda597100e8e9f1e6a021df99678383d02264c8b94b07f5bef73aac5f0cc77345aa5d7d5db3f33d67581b4970e5a80597773afc726bcf73d1415b5b SHA512 a14753e598ae9def3f479741968bfba028e55debdfb1243cd1becfbf468d2c5fd8457aca720197e16a6a2c63e58e07c51cab5712327ad8ae37605a2825a29bc9
+DIST time-0.1.44.crate 28885 BLAKE2B 5e2ca11af9da0847239a086330d0cd00fcb5b63862f9dfec46f72a065bb35ec2236a21ee1c56bf65e3117105e7815cafe67e3725b8575373e875dfcea401d967 SHA512 736a38637be0193a06fa35d42b4873b04a0a35d84cd2af85b7f653a1b67b95078577134bb187b777730e73cce67f437b45ff5c72b8e3f1f8e2ed3420ea0324cf
diff --git a/dev-rust/time/time-0.1.44.ebuild b/dev-rust/time/time-0.1.44.ebuild
new file mode 100644
index 0000000..54bc5ea
--- /dev/null
+++ b/dev-rust/time/time-0.1.44.ebuild
@@ -0,0 +1,23 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit cros-rust
+
+DESCRIPTION="Utilities for working with time-related functions in Rust."
+HOMEPAGE="https://github.com/rust-lang/time"
+SRC_URI="https://crates.io/api/v1/crates/${PN}/${PV}/download -> ${P}.crate"
+
+LICENSE="|| ( MIT Apache-2.0 )"
+SLOT="${PV}/${PR}"
+KEYWORDS="*"
+
+DEPEND="
+	>=dev-rust/libc-0.2.1:=
+	>=dev-rust/log-0.4.0:=
+	>=dev-rust/redox_syscall-0.1.0:=
+	>=dev-rust/wasi-0.10.0:=
+	>=dev-rust/winapi-0.3.0:=
+	>=dev-rust/rustc-serialize-0.3.0:=
+"
diff --git a/dev-rust/timeout-readwrite/Manifest b/dev-rust/timeout-readwrite/Manifest
new file mode 100644
index 0000000..a65b21e
--- /dev/null
+++ b/dev-rust/timeout-readwrite/Manifest
@@ -0,0 +1 @@
+DIST timeout-readwrite-0.3.1.crate 10453 BLAKE2B d94c2d51b0ce0103c8eaa29e5d79f8401591405d9c4ffeff540aa3f65bcbef03c1f0bf1e50b481fc07f8bdc69e764d2e083ab24372bcb2fc84d4ee8f826d869c SHA512 d84f49fa74562209422d132e9a5965e1a94c24620bc906e4db6e58329b473cc2f3844adc114cc30377a1ee8ce26fbfac9da740cf54284133a6ac2d813b74d62d
diff --git a/dev-rust/timeout-readwrite/OWNERS b/dev-rust/timeout-readwrite/OWNERS
new file mode 100644
index 0000000..12f21f8
--- /dev/null
+++ b/dev-rust/timeout-readwrite/OWNERS
@@ -0,0 +1 @@
+include /media-gfx/deqp-runner/OWNERS
diff --git a/dev-rust/timeout-readwrite/files/timeout-readwrite-0.3.1-nix-dependency.patch b/dev-rust/timeout-readwrite/files/timeout-readwrite-0.3.1-nix-dependency.patch
new file mode 100644
index 0000000..4520ba7
--- /dev/null
+++ b/dev-rust/timeout-readwrite/files/timeout-readwrite-0.3.1-nix-dependency.patch
@@ -0,0 +1,11 @@
+--- a/Cargo.toml	2020-11-03 13:26:25.448253215 -0800
++++ b/Cargo.toml	2020-11-03 13:26:37.736262013 -0800
+@@ -23,7 +23,7 @@
+ license = "MIT/Apache-2.0"
+ repository = "https://github.com/jcreekmore/timeout-readwrite-rs"
+ [dependencies.nix]
+-version = "0.17.0"
++version = ">=0.17.0, <0.20.0"
+ [dev-dependencies.lazy_static]
+ version = "1.3.0"
+ [badges.travis-ci]
diff --git a/dev-rust/timeout-readwrite/timeout-readwrite-0.3.1.ebuild b/dev-rust/timeout-readwrite/timeout-readwrite-0.3.1.ebuild
new file mode 100644
index 0000000..8831462
--- /dev/null
+++ b/dev-rust/timeout-readwrite/timeout-readwrite-0.3.1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+inherit cros-rust
+
+DESCRIPTION="A Rust crate providing Reader and Writer structs that timeout"
+HOMEPAGE="https://github.com/jcreekmore/timeout-readwrite-rs"
+SRC_URI="https://crates.io/api/v1/crates/${PN}/${PV}/download -> ${P}.crate"
+
+LICENSE="|| ( MIT Apache-2.0 )"
+SLOT="${PV}/${PR}"
+KEYWORDS="*"
+
+PATCHES=( "${FILESDIR}/${PN}-${PV}-nix-dependency.patch" )
+
+DEPEND="
+	>=dev-rust/lazy_static-1.3.0:= <dev-rust/lazy_static-2.0.0
+	>=dev-rust/nix-0.17.0:= <dev-rust/nix-0.20.0
+"
diff --git a/dev-rust/version_check/version_check-0.1.5.ebuild b/dev-rust/wasi/wasi-0.10.0.ebuild
similarity index 85%
rename from dev-rust/version_check/version_check-0.1.5.ebuild
rename to dev-rust/wasi/wasi-0.10.0.ebuild
index 920bfbb..072e90c 100644
--- a/dev-rust/version_check/version_check-0.1.5.ebuild
+++ b/dev-rust/wasi/wasi-0.10.0.ebuild
@@ -7,7 +7,7 @@
 
 inherit cros-rust
 
-DESCRIPTION="Empty version_check crate"
+DESCRIPTION="Empty ${PN} crate"
 HOMEPAGE=""
 
 LICENSE="BSD-Google"
diff --git a/dev-rust/winapi-util/Manifest b/dev-rust/winapi-util/Manifest
index b9053c7..8e36966 100644
--- a/dev-rust/winapi-util/Manifest
+++ b/dev-rust/winapi-util/Manifest
@@ -1 +1 @@
-DIST winapi-util-0.1.2.crate 7810 BLAKE2B 511f14b606b591da19159f0f49665846e55ef8e22c7519fedaa5dd65cdc0c51134606c2a7ff0a6cbd7f24e75aaf3109959decaf2a5171fe01fbfc7ad7453fbc4 SHA512 54514420da9851f9657f888d8b198b3a97a6009b7e965d5a23ec471251f6548c2a58c716a5f48fb5d83a5775503d696da98eaed7b71fdd9ba7cd74ba6923b11a
+DIST winapi-util-0.1.5.crate 10164 BLAKE2B fc800aceae5249a858c806c3e969ef2545766099872d856ebee51c883d9acf1122278db9607d50ca53eac351502b700fd2463900932d342240f97f683d517963 SHA512 7baeb661f397c4693dfa001fdc774b323c51a7c55caad40f2de5112a1cefd1d6151e3df41fa4ee193460a5905917c83d2b1de5fa10b4bd014ad96690af95c0fd
diff --git a/dev-rust/winapi-util/winapi-util-0.1.2.ebuild b/dev-rust/winapi-util/winapi-util-0.1.5.ebuild
similarity index 100%
rename from dev-rust/winapi-util/winapi-util-0.1.2.ebuild
rename to dev-rust/winapi-util/winapi-util-0.1.5.ebuild
diff --git a/media-gfx/deqp-runner/Manifest b/media-gfx/deqp-runner/Manifest
new file mode 100644
index 0000000..220c9aa
--- /dev/null
+++ b/media-gfx/deqp-runner/Manifest
@@ -0,0 +1 @@
+DIST deqp-runner-0.3.0.crate 25835 BLAKE2B 661b391d23e84f3fa62f2c90eceb72470f4cf202e62fa9364d0dec214d94ab25aa3025e47110a2db95d208eaaf3569954058b97c9d8d5624ec799dc6a9d00d93 SHA512 c2abe8ffafa100f2b3bb5eba515670e45cd1a209159e522088db8b1b95d982af1abb9453c5bfc982293351c8bbda32d0a54dad14e3042c9b73619c97eb8c0eb1
diff --git a/media-gfx/deqp-runner/OWNERS b/media-gfx/deqp-runner/OWNERS
new file mode 100644
index 0000000..c779a2e
--- /dev/null
+++ b/media-gfx/deqp-runner/OWNERS
@@ -0,0 +1 @@
+anholt@chromium.org
diff --git a/media-gfx/deqp-runner/deqp-runner-0.3.0.ebuild b/media-gfx/deqp-runner/deqp-runner-0.3.0.ebuild
new file mode 100644
index 0000000..ea322ff
--- /dev/null
+++ b/media-gfx/deqp-runner/deqp-runner-0.3.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+
+CROS_RUST_REMOVE_DEV_DEPS=1
+
+inherit cros-rust
+
+DESCRIPTION="A VK-GL-CTS/dEQP wrapper program to parallelize it across CPUs and report results against a baseline."
+HOMEPAGE="https://gitlab.freedesktop.org/anholt/deqp-runner"
+SRC_URI="https://crates.io/api/v1/crates/${PN}/${PV}/download -> ${P}.crate"
+
+LICENSE="MIT"
+SLOT="0/${PR}"
+KEYWORDS="*"
+
+DEPEND="
+	=dev-rust/anyhow-1*:=
+	>=dev-rust/criterion-0.3.0:= <dev-rust/criterion-0.4.0
+	>=dev-rust/lazy_static-1.4:= <dev-rust/lazy_static-2.0
+	>=dev-rust/rand-0.7.3:= <dev-rust/rand-0.8
+	>=dev-rust/rayon-1.5.0:= <dev-rust/rayon-2.0.0
+	=dev-rust/regex-1*:=
+	>=dev-rust/stderrlog-0.4:= <dev-rust/stderrlog-0.6
+	=dev-rust/structopt-0.3*:=
+	>=dev-rust/thread-id-3.3.0:= <dev-rust/thread-id-4.0
+	>=dev-rust/timeout-readwrite-0.3.1:= <dev-rust/timeout-readwrite-0.4
+"
+
+src_compile() {
+	ecargo_build
+}
+
+src_install() {
+	local build_dir="$(cros-rust_get_build_dir)"
+
+	dobin "${build_dir}/deqp-runner"
+}