From f41e9a117b439b04882f0cb7d64a0a6c1f93f404 Mon Sep 17 00:00:00 2001 From: "Claude (noether)" Date: Fri, 15 May 2026 07:24:30 +0000 Subject: [PATCH] =?UTF-8?q?firefox-fourier:=20fix=20patches=20layout=20?= =?UTF-8?q?=E2=80=94=20ship=20arch-*.patch=20+=20reference=20patches/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The PKGBUILD has been structurally broken since at least the 150.0.1 import: source array referenced patches at top level ('0001-...patch') but the actual files live in patches/ — makepkg searched for them in the package root and failed before doing any work. The arch-0002/3/4 upstream toolchain patches (clang 22, glibc 2.43, Rust 1.95) weren't shipped in the repo at all. Caught when boltzmann tried to build 150.0.1-2 (PR #9 follow-up); fails at the source-staging phase with: ==> ERROR: arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch was not found in the build directory and is not a URL. Why nobody noticed: firefox-fourier has no Gitea Actions job (too heavy for the runner pool). The shipped 150.0.1-1 .pkg.tar.zst was produced by hand-staging files; the PKGBUILD itself never reproduced from a clean checkout. This commit: - Moves all source-array patch references under patches/ to match the on-disk layout (same convention as chromium-fourier). - Updates prepare() paths accordingly. - Adds arch-0002/3/4 patches fetched verbatim from https://gitlab.archlinux.org/archlinux/packaging/packages/firefox (raw/main/{0002,0003,0004}-...patch). Renamed with arch- prefix in the repo to avoid namespace collision with the local 0001..0005. - Adds the previously-omitted 0005-rdd-sandbox-v4l2-media-ctl.patch to the source array + prepare(); this is the patch that broadens the RDD sandbox so /dev/media* and /dev/video* ioctls reach the decoder child (README §1 enumerates it as load-bearing for the HW path). It was present in patches/ but not wired up. Dry-run verified all 8 patches apply cleanly against firefox-150.0.1 source (some hunks offset by ≤3 lines, no conflicts). pkgrel 2 -> 3. --- arch/firefox-fourier/PKGBUILD | 34 +- ...-enable-rust-simd-work-with-Rust-1.9.patch | 295 ++ ...l-optimizer-to-build-with-glibc-2.43.patch | 3108 +++++++++++++++++ ...wasm32-wasip1-target-for-clang-22.1-.patch | 28 + 4 files changed, 3449 insertions(+), 16 deletions(-) create mode 100644 arch/firefox-fourier/patches/arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch create mode 100644 arch/firefox-fourier/patches/arch-0003-Patch-glsl-optimizer-to-build-with-glibc-2.43.patch create mode 100644 arch/firefox-fourier/patches/arch-0004-Bug-2023597-Use-wasm32-wasip1-target-for-clang-22.1-.patch diff --git a/arch/firefox-fourier/PKGBUILD b/arch/firefox-fourier/PKGBUILD index dfa4e0b3a..3fdaecab1 100644 --- a/arch/firefox-fourier/PKGBUILD +++ b/arch/firefox-fourier/PKGBUILD @@ -13,7 +13,7 @@ pkgname=firefox-fourier pkgver=150.0.1 -pkgrel=2 +pkgrel=3 pkgdesc='Firefox with V4L2 stateless HW video decode unlocked for mainline Linux Rockchip' arch=('aarch64' 'x86_64') url='https://www.mozilla.org/firefox' @@ -79,33 +79,35 @@ source=( # walls. arch-0001 (install-under-remoting) skipped — our launcher # ships under /usr/bin/firefox-fourier with our own wrapper. # https://gitlab.archlinux.org/archlinux/packaging/packages/firefox - 'arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch' - 'arch-0003-Patch-glsl-optimizer-to-build-with-glibc-2.43.patch' - 'arch-0004-Bug-2023597-Use-wasm32-wasip1-target-for-clang-22.1-.patch' + 'patches/arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch' + 'patches/arch-0003-Patch-glsl-optimizer-to-build-with-glibc-2.43.patch' + 'patches/arch-0004-Bug-2023597-Use-wasm32-wasip1-target-for-clang-22.1-.patch' # firefox-fourier patches — V4L2 stateless decode unlock. - '0001-gfxinfo-v4l2-stateless-fourccs.patch' - '0002-libwrapper-hwdevice-ctx-create.patch' - '0003-ffmpegvideo-v4l2-request-route.patch' - '0004-prefs-v4l2-request.patch' + 'patches/0001-gfxinfo-v4l2-stateless-fourccs.patch' + 'patches/0002-libwrapper-hwdevice-ctx-create.patch' + 'patches/0003-ffmpegvideo-v4l2-request-route.patch' + 'patches/0004-prefs-v4l2-request.patch' + 'patches/0005-rdd-sandbox-v4l2-media-ctl.patch' # Vendor-default prefs that gate the patched VAAPI path on RK3399 — # widget.dmabuf.force-enabled etc. See marfrit-packages#8 for evidence. 'rockchip-fourier-defaults.js' ) -sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP') +sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP') prepare() { cd "${srcdir}/firefox-${pkgver}" # Toolchain glue (Arch upstream) — apply BEFORE the fourier patches. - patch -Np1 -i "${srcdir}/arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch" - patch -Np1 -i "${srcdir}/arch-0003-Patch-glsl-optimizer-to-build-with-glibc-2.43.patch" - patch -Np1 -i "${srcdir}/arch-0004-Bug-2023597-Use-wasm32-wasip1-target-for-clang-22.1-.patch" + patch -Np1 -i "${srcdir}/patches/arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch" + patch -Np1 -i "${srcdir}/patches/arch-0003-Patch-glsl-optimizer-to-build-with-glibc-2.43.patch" + patch -Np1 -i "${srcdir}/patches/arch-0004-Bug-2023597-Use-wasm32-wasip1-target-for-clang-22.1-.patch" # Fourier patches — order matters; see ../PLAN.md for rationale. - patch -Np1 -i "${srcdir}/0001-gfxinfo-v4l2-stateless-fourccs.patch" - patch -Np1 -i "${srcdir}/0002-libwrapper-hwdevice-ctx-create.patch" - patch -Np1 -i "${srcdir}/0003-ffmpegvideo-v4l2-request-route.patch" - patch -Np1 -i "${srcdir}/0004-prefs-v4l2-request.patch" + patch -Np1 -i "${srcdir}/patches/0001-gfxinfo-v4l2-stateless-fourccs.patch" + patch -Np1 -i "${srcdir}/patches/0002-libwrapper-hwdevice-ctx-create.patch" + patch -Np1 -i "${srcdir}/patches/0003-ffmpegvideo-v4l2-request-route.patch" + patch -Np1 -i "${srcdir}/patches/0004-prefs-v4l2-request.patch" + patch -Np1 -i "${srcdir}/patches/0005-rdd-sandbox-v4l2-media-ctl.patch" cp "${srcdir}/mozconfig" .mozconfig } diff --git a/arch/firefox-fourier/patches/arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch b/arch/firefox-fourier/patches/arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch new file mode 100644 index 000000000..918a28f38 --- /dev/null +++ b/arch/firefox-fourier/patches/arch-0002-Bug-2033279-Make-enable-rust-simd-work-with-Rust-1.9.patch @@ -0,0 +1,295 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Henri Sivonen +Date: Mon, 20 Apr 2026 16:03:25 +0200 +Subject: [PATCH] Bug 2033279 - Make --enable-rust-simd work with Rust 1.95. + +Differential Revision: https://phabricator.services.mozilla.com/D295287 +--- + .cargo/config.toml.in | 5 ++ + Cargo.lock | 4 +- + Cargo.toml | 2 + + supply-chain/audits.toml | 6 ++ + supply-chain/config.toml | 4 ++ + .../rust/encoding_rs/.cargo-checksum.json | 2 +- + .../rust/encoding_rs/.cargo_vcs_info.json | 6 -- + third_party/rust/encoding_rs/Cargo.toml | 60 ++++++++++--------- + third_party/rust/encoding_rs/Cargo.toml.orig | 45 -------------- + .../rust/encoding_rs/src/x_user_defined.rs | 2 + + 10 files changed, 54 insertions(+), 82 deletions(-) + delete mode 100644 third_party/rust/encoding_rs/.cargo_vcs_info.json + delete mode 100644 third_party/rust/encoding_rs/Cargo.toml.orig + +diff --git a/.cargo/config.toml.in b/.cargo/config.toml.in +index 3eb394f31a81..a538c4565b3f 100644 +--- a/.cargo/config.toml.in ++++ b/.cargo/config.toml.in +@@ -70,6 +70,11 @@ git = "https://github.com/hsivonen/chardetng_c" + rev = "2f0aba284677d098de14f91ffe5a9e5b9a4922c2" + replace-with = "vendored-sources" + ++[source."git+https://github.com/hsivonen/encoding_rs?rev=1236d1bc423e6ba35a06485f74a6304db2d703b5"] ++git = "https://github.com/hsivonen/encoding_rs" ++rev = "1236d1bc423e6ba35a06485f74a6304db2d703b5" ++replace-with = "vendored-sources" ++ + [source."git+https://github.com/hsivonen/rust-harfbuzz?rev=9d58a23a98772a197291d04af93f7041b7093d95"] + git = "https://github.com/hsivonen/rust-harfbuzz" + rev = "9d58a23a98772a197291d04af93f7041b7093d95" +diff --git a/Cargo.lock b/Cargo.lock +index 2e0e1dc1652c..84ae05133799 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -1912,11 +1912,11 @@ dependencies = [ + [[package]] + name = "encoding_rs" + version = "0.8.35" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" ++source = "git+https://github.com/hsivonen/encoding_rs?rev=1236d1bc423e6ba35a06485f74a6304db2d703b5#1236d1bc423e6ba35a06485f74a6304db2d703b5" + dependencies = [ + "any_all_workaround", + "cfg-if", ++ "rustversion", + ] + + [[package]] +diff --git a/Cargo.toml b/Cargo.toml +index 85edaada8988..4d9f6fbf021e 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -280,6 +280,8 @@ harfbuzz-sys = { git = "https://github.com/hsivonen/rust-harfbuzz", rev = "9d58a + harfbuzz = { git = "https://github.com/hsivonen/rust-harfbuzz", rev = "9d58a23a98772a197291d04af93f7041b7093d95" } + # Also vendor `harfbuzz-traits` to keep cargo-vendor happy. + harfbuzz-traits = { git = "https://github.com/hsivonen/rust-harfbuzz", rev = "9d58a23a98772a197291d04af93f7041b7093d95" } ++# Make --enable-rust-simd compatible with Rust 1.95 ++encoding_rs = { git = "https://github.com/hsivonen/encoding_rs", rev = "1236d1bc423e6ba35a06485f74a6304db2d703b5" } + + # objc 0.2.7 + fa7ca43b862861dd1cd000d7ad01e6e0266cda13 + objc = { git = "https://github.com/glandium/rust-objc", rev = "4de89f5aa9851ceca4d40e7ac1e2759410c04324" } +diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml +index 4c0d7c8ca393..706d58a3e47e 100644 +--- a/supply-chain/audits.toml ++++ b/supply-chain/audits.toml +@@ -2380,6 +2380,12 @@ who = "Mike Hommey " + criteria = "safe-to-deploy" + delta = "0.8.31 -> 0.8.32" + ++[[audits.encoding_rs]] ++who = "Henri Sivonen " ++criteria = "safe-to-deploy" ++delta = "0.8.35 -> 0.8.35@git:1236d1bc423e6ba35a06485f74a6304db2d703b5" ++importable = false ++ + [[audits.enum-map]] + who = "Kershaw Chang " + criteria = "safe-to-deploy" +diff --git a/supply-chain/config.toml b/supply-chain/config.toml +index fb712330b1be..33c3357d441d 100644 +--- a/supply-chain/config.toml ++++ b/supply-chain/config.toml +@@ -47,6 +47,10 @@ notes = "This is a crate Henri wrote which is also published. We should probably + audit-as-crates-io = true + notes = "This is upstream plus a warning fix from bug 1823866." + ++[policy.encoding_rs] ++audit-as-crates-io = true ++notes = "This is upstream plus a build fix for bug 2033279." ++ + [policy.firefox-on-glean] + audit-as-crates-io = false + notes = "The crates.io version of this is just a placeholder to allow public crates to depend on firefox-on-glean." +diff --git a/third_party/rust/encoding_rs/.cargo-checksum.json b/third_party/rust/encoding_rs/.cargo-checksum.json +index 6a2ad1bfebbc..1e0ddc9e211b 100644 +--- a/third_party/rust/encoding_rs/.cargo-checksum.json ++++ b/third_party/rust/encoding_rs/.cargo-checksum.json +@@ -1 +1 @@ +-{"files":{".cargo_vcs_info.json":"022d0d4a218bdf087dc7ab554a26319d57e3bb97d9adcb388b94dfab3e7accec","CONTRIBUTING.md":"ca1901f3e8532fb4cec894fd3664f0eaa898c0c4b961d1b992d1ed54eacf362a","COPYRIGHT":"11789f45bb180841cd362a5eee6789c68ddb573a11105e30768c308a6add0190","Cargo.toml":"d7405d2bcf99cf9729075473c45f677630f4c1947c8ba9757db607f2025a7da2","Cargo.toml.orig":"7fece6ec8988f17d2bd64559ad444a5ceaed1e3cafb3832fc193e314b441bde3","Ideas.md":"b7452893f500163868d8de52c09addaf91e1632454ed02e892c467ed7ec39dbd","LICENSE-APACHE":"cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30","LICENSE-MIT":"3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c","LICENSE-WHATWG":"838118388fe5c2e7f1dbbaeed13e1c7f3ebf88be91319c7c1d77c18e987d1a50","README.md":"9826137ed4297be3b2019b74a8f6111a796ff507bde41df2f20712539704b9e9","ci/miri.sh":"43cb8d82f49e3bfe2d2274b6ccd6f0714a4188ccef0cecc040829883cfdbee25","doc/Big5.txt":"f73a2edc5cb6c2d140ba6e07f4542e1c4a234950378acde1df93480f0ca0be0b","doc/EUC-JP.txt":"ee2818b907d0137f40a9ab9fd525fc700a44dbdddb6cf0c157a656566bae4bf1","doc/EUC-KR.txt":"71d9e2ccf3b124e8bdfb433c8cf2773fd878077038d0cec3c7237a50f4a78a30","doc/GBK.txt":"8229e59076d8bddb01865cdcf6afda3533238d7c23d97f98820f9e3b2d13505d","doc/IBM866.txt":"a5a433e804d0f83af785015179fbc1d9b0eaf1f7960efcd04093e136b51fbd0e","doc/ISO-2022-JP.txt":"af86684f5a8f0e2868d7b2c292860140c3d2e5527530ca091f1b28198e8e2fe6","doc/ISO-8859-10.txt":"6d3949ad7c81ca176895101ed81a1db7df1060d64e262880b94bd31bb344ab4d","doc/ISO-8859-13.txt":"3951dd89cf93f7729148091683cf8511f4529388b7dc8dcd0d62eaed55be93fa","doc/ISO-8859-14.txt":"3d330784a0374fd255a38b47949675cc7168c800530534b0a01cac6edc623adc","doc/ISO-8859-15.txt":"24b1084aab5127a85aab99153f86e24694d0a3615f53b5ce23683f97cf66c47a","doc/ISO-8859-16.txt":"ce0272559b92ba76d7a7e476f6424ae4a5cc72e75b183611b08392e44add4d25","doc/ISO-8859-2.txt":"18ceff88c13d1b5ba455a3919b1e3de489045c4c3d2dd7e8527c125c75d54aad","doc/ISO-8859-3.txt":"21798404c68f4f5db59223362f24999da96968c0628427321fccce7d2849a130","doc/ISO-8859-4.txt":"d27f6520c6c5bfbcc19176b71d081cdb3bccde1622bb3e420d5680e812632d53","doc/ISO-8859-5.txt":"a10ec8d6ea7a78ad15da7275f6cb1a3365118527e28f9af6d0d5830501303f3a","doc/ISO-8859-6.txt":"ccda8a2efc96115336bdd77776637b9712425e44fbcf745353b9057fbef144e7","doc/ISO-8859-7.txt":"17900fa1f27a445958f0a77d7d9056be375a6bd7ee4492aa680c7c1500bab85e","doc/ISO-8859-8-I.txt":"8357555646d54265a9b9ffa3e68b08d132312f1561c60108ff9b8b1167b6ecf2","doc/ISO-8859-8.txt":"72cd6f3afb7b4a9c16a66a362473315770b7755d72c86c870e52fc3eba86c8af","doc/KOI8-R.txt":"839cf19a38da994488004ed7814b1f6151640156a9a2af02bf2efca745fb5966","doc/KOI8-U.txt":"0cc76624ed1f024183e2298b7e019957da2c70c8ca06e0fc4e6f353f50a5054f","doc/Shift_JIS.txt":"34c49141818cb9ddbcf59cc858f78a79be8ad148d563f26415108ae1f148443f","doc/UTF-16BE.txt":"e2e280d8acbaa6d2a6b3569d60e17500a285f2baa0df3363dd85537cd5a1ef8f","doc/UTF-16LE.txt":"70bdc170e3fc5298ba68f10125fb5eeb8b077036cc96bb4416c4de396f6d76c1","doc/UTF-8.txt":"ea7bae742e613010ced002cf4b601a737d2203fad65e115611451bc4428f548a","doc/gb18030.txt":"67a01665c75505330b0fe5b8d88d5873d8ce555a145c77dca04a467fa2680744","doc/macintosh.txt":"57491e53866711b4672d9b9ff35380b9dac9e0d8e3d6c20bdd6140603687c023","doc/replacement.txt":"4b6c3bbd7999d9d4108a281594bd02d13607e334a95465afff8c2c08d395f0e4","doc/windows-1250.txt":"61296bb6a21cdab602300d32ecfba434cb82de5ac3bc88d58710d2f125e28d39","doc/windows-1251.txt":"7deea1c61dea1485c8ff02db2c7d578db7a9aab63ab1cfd02ec04b515864689e","doc/windows-1252.txt":"933ef3bdddfce5ee132b9f1a1aa8b47423d2587bbe475b19028d0a6d38e180b6","doc/windows-1253.txt":"1a38748b88e99071a5c7b3d5456ead4caedeabab50d50d658be105bc113714de","doc/windows-1254.txt":"f8372f86c6f8d642563cd6ddc025260553292a39423df1683a98670bd7bf2b47","doc/windows-1255.txt":"4e5852494730054e2da258a74e1b9d780abbcdd8ce22ebc218ca2efe9e90493d","doc/windows-1256.txt":"c0879c5172abedead302a406e8f60d9cd9598694a0ffa4fd288ffe4fef7b8ea1","doc/windows-1257.txt":"c28a0c9f964fcb2b46d21f537c402446501a2800670481d6abf9fd9e9018d523","doc/windows-1258.txt":"5019ae4d61805c79aacbf17c93793342dbb098d65a1837783bc3e2c6d6a23602","doc/windows-874.txt":"4ef0e4501c5feba8b17aee1818602ed44b36ca8475db771ce2fc16d392cabecc","doc/x-mac-cyrillic.txt":"58be154d8a888ca3d484b83b44f749823ef339ab27f14d90ca9a856f5050a8bd","doc/x-user-defined.txt":"f9cd07c4321bf5cfb0be4bdddd251072999b04a6cf7a6f5bc63709a84e2c1ffc","generate-encoding-data.py":"6f34a845785f53425accf30759edc566873fcb0c2188648e07b09c898f39dddb","rustfmt.toml":"85c1a3b4382fd89e991cbb81b70fb52780472edc064c963943cdaaa56e0a2030","src/ascii.rs":"588e38b01e666d5e7462617ea7e90a108d608dec9e016f3d273ac0744af2e05d","src/big5.rs":"ec6e2913011a38e9a3e825a1731f139a7ca1d5b264fefae51a3cc1a68a57cef9","src/data.rs":"b93f34025fe5c6a85b4b9f0037bf58961352bf19c83f91b09b35eb8495625eec","src/euc_jp.rs":"32047f5b540188c4cb19c07165f846b9786a09f18e315ed3e9bda1293dae52aa","src/euc_kr.rs":"9b25afc72d9378700eecfac58d55ad1c5946d6cd0ccde2c29c08200ef2de6bb9","src/gb18030.rs":"89cd6ae2247add3f3471a699bc12113a9ae2f6b91a5223abbf15b68a13537dcd","src/gb18030_2022.rs":"3c2e06492c5e00fcd39515e4af4c560d8cee5c31e7a7e388db682bc9ee33ee32","src/handles.rs":"b08cef1f5785bb6a4822f2e844c6df1b046b737b7a075e4593eaa8c4208e9fe2","src/iso_2022_jp.rs":"9bb485e82574f4b7d4b2364f0ff276acb6a0bc111758420a3b0ec5e04c196652","src/lib.rs":"c4d9fa1c43105e2310122f1b9197125032e607fe6f79bc22769b340de76e2430","src/macros.rs":"200997f8870de8bfd8cdc475e92115df42108c0df661e49d3d1cbc32056e1d99","src/mem.rs":"948571137d3b151df8db4fb2c733e74ae595d055cdf0ad83abcab9341d6adabe","src/replacement.rs":"7660b34a53f8c1ca2bdfa0e51e843ec28326950952ad8bc96569feb93ac62308","src/shift_jis.rs":"6951ae67e36b1a12fa3a30734957f444d8b1b4ae0e2bde52060b29bd0f16d9d9","src/simd_funcs.rs":"05c6e77af74bfe73cd39a752067c11425d6b46e5da419910f54bf75a5c02a984","src/single_byte.rs":"3ad87116fb339434a4b58e8f2b15485f2b66b9f7814d708f16194ed08f6d6ccf","src/test_data/big5_in.txt":"a5ae290786610c7facdbb1d06be6815e8bb81d68dfa7380edc7ddb6b8c7e412e","src/test_data/big5_in_ref.txt":"52733d9970fb8987f014fa0eac2792250123cf583b363beb2ce7b3c55e3dc555","src/test_data/big5_out.txt":"57420ca41a669c949738c84cab620020959572d2ee97b4e059405bfe26a79b6d","src/test_data/big5_out_ref.txt":"00e5f67c222dd5cd3bb1739276910b8f0032f454cba7cf7c3eaa255a564188d0","src/test_data/euc_kr_in.txt":"21534ec87e82d785d128f980902d13fab6d9dea15c69a991f409d9b0afd1c852","src/test_data/euc_kr_in_ref.txt":"b3009e6a94967df1f1135c66f005610bebad6666d634aec72d2ad77c3211bda3","src/test_data/euc_kr_out.txt":"20205b0b5be4f579271193b5bfbc549a61a9fd5217c33eecfa61784a3ffe2e9d","src/test_data/euc_kr_out_ref.txt":"b5f566237f8d4ef4d03ad26135ca97dfd7398608a82165bd4853b5134ab22cb5","src/test_data/gb18030_in.txt":"0dd1fbf0360930daafdce7e6761852005a8f92f7910180df19a070b6c3c59dee","src/test_data/gb18030_in_ref.txt":"f3eaea1115857054cf30f8ba18219e72377f2a4afd848ccf223770d75aa4251d","src/test_data/gb18030_out.txt":"7184fe9592609597d55c2733606b4c4b1a18b79b24533e1a16a14ff92e7d2b55","src/test_data/gb18030_out_ref.txt":"23bb850ddc69aaf1bdfeabe05a12d93f614e5560dac879d5f02929ee4a7c06c5","src/test_data/iso_2022_jp_in.txt":"98fb823530a30a76eb0ba7ab6ac796959e8869c1ec143f018a1964581ae813aa","src/test_data/iso_2022_jp_in_ref.txt":"df82166d2e01bb446211d7e46f33b47d93ac1bafeae2ed880ee93c4096d11210","src/test_data/iso_2022_jp_out.txt":"bef8eb4804ed0843b9dffdd1d168738635cc77f8d0929beb2532b686318ddae6","src/test_data/iso_2022_jp_out_ref.txt":"b221b36b2bce49d49b620dc8ba80d77bac74e8660a86a11628e79b67f1d98964","src/test_data/jis0208_in.txt":"3c1a7aaada00d6fff41e60bd7589d7ae94afaf562759b116958b1d84711d17b6","src/test_data/jis0208_in_ref.txt":"df82166d2e01bb446211d7e46f33b47d93ac1bafeae2ed880ee93c4096d11210","src/test_data/jis0208_out.txt":"a6188b67eb00ba980cb83056186c89bcdddc1b0210af9afa78ed1c9b7a098950","src/test_data/jis0208_out_ref.txt":"e75a986fe5e78e64bf8fafd7392ae96ee0cb0a4b2e7ef2fe722b3caacf3e2f70","src/test_data/jis0212_in.txt":"9eda766002646a27310457c661832429beff9089d2703355812c4cac30d800b5","src/test_data/jis0212_in_ref.txt":"fcf74c58d2cbe9b3f3db4fa9eff26e09f5e9644097c78614c03177e938988d03","src/test_data/shift_jis_in.txt":"e65df746be90359e70422868522a7aa3e8ed20e0d4c0cf9995d9de248bf93388","src/test_data/shift_jis_in_ref.txt":"13b15aed64e9e7cb35e6a740b67413f0c285fda944f4814d45a7619ea338fb5e","src/test_data/shift_jis_out.txt":"192d0a4a8ce5d0f904c5cb283dfb974577ee667cf1e71955a6dd6aece2b354ef","src/test_data/shift_jis_out_ref.txt":"cb6d50b0c11bad1d1f1fcc02d779672a8b9a2509cbbafdc6392aceb49c8b4268","src/test_labels_names.rs":"23a2e11b02b3b8d15fb5613a625e3edb2c61e70e3c581abfd638719a4088200d","src/testing.rs":"f59e671e95a98a56f6b573e8c6be4d71e670bf52f7e20eb1605d990aafa1894e","src/utf_16.rs":"c071a147fad38d750c2c247e141b76b929a48007b99f26b2922b9caecdaf2f25","src/utf_8.rs":"7b7d887b347f1aefa03246b028a36a72758a4ce76c28f3b45c19467851aa7839","src/variant.rs":"1fab5363588a1554a7169de8731ea9cded7ac63ea35caabdd1c27a8dde68c27b","src/x_user_defined.rs":"9456ca46168ef86c98399a2536f577ef7be3cdde90c0c51392d8ac48519d3fae"},"package":"75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3"} +\ No newline at end of file ++{"files":{"CONTRIBUTING.md":"ca1901f3e8532fb4cec894fd3664f0eaa898c0c4b961d1b992d1ed54eacf362a","COPYRIGHT":"11789f45bb180841cd362a5eee6789c68ddb573a11105e30768c308a6add0190","Cargo.toml":"a066ad881d5a74386e666fc844f7fecbbd70021d0330c1b08a2d7a2a67437ccf","Ideas.md":"b7452893f500163868d8de52c09addaf91e1632454ed02e892c467ed7ec39dbd","LICENSE-APACHE":"cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30","LICENSE-MIT":"3fa4ca83dcc9237839b1bdeb2e6d16bdfb5ec0c5ce42b24694d8bbf0dcbef72c","LICENSE-WHATWG":"838118388fe5c2e7f1dbbaeed13e1c7f3ebf88be91319c7c1d77c18e987d1a50","README.md":"9826137ed4297be3b2019b74a8f6111a796ff507bde41df2f20712539704b9e9","ci/miri.sh":"43cb8d82f49e3bfe2d2274b6ccd6f0714a4188ccef0cecc040829883cfdbee25","doc/Big5.txt":"f73a2edc5cb6c2d140ba6e07f4542e1c4a234950378acde1df93480f0ca0be0b","doc/EUC-JP.txt":"ee2818b907d0137f40a9ab9fd525fc700a44dbdddb6cf0c157a656566bae4bf1","doc/EUC-KR.txt":"71d9e2ccf3b124e8bdfb433c8cf2773fd878077038d0cec3c7237a50f4a78a30","doc/GBK.txt":"8229e59076d8bddb01865cdcf6afda3533238d7c23d97f98820f9e3b2d13505d","doc/IBM866.txt":"a5a433e804d0f83af785015179fbc1d9b0eaf1f7960efcd04093e136b51fbd0e","doc/ISO-2022-JP.txt":"af86684f5a8f0e2868d7b2c292860140c3d2e5527530ca091f1b28198e8e2fe6","doc/ISO-8859-10.txt":"6d3949ad7c81ca176895101ed81a1db7df1060d64e262880b94bd31bb344ab4d","doc/ISO-8859-13.txt":"3951dd89cf93f7729148091683cf8511f4529388b7dc8dcd0d62eaed55be93fa","doc/ISO-8859-14.txt":"3d330784a0374fd255a38b47949675cc7168c800530534b0a01cac6edc623adc","doc/ISO-8859-15.txt":"24b1084aab5127a85aab99153f86e24694d0a3615f53b5ce23683f97cf66c47a","doc/ISO-8859-16.txt":"ce0272559b92ba76d7a7e476f6424ae4a5cc72e75b183611b08392e44add4d25","doc/ISO-8859-2.txt":"18ceff88c13d1b5ba455a3919b1e3de489045c4c3d2dd7e8527c125c75d54aad","doc/ISO-8859-3.txt":"21798404c68f4f5db59223362f24999da96968c0628427321fccce7d2849a130","doc/ISO-8859-4.txt":"d27f6520c6c5bfbcc19176b71d081cdb3bccde1622bb3e420d5680e812632d53","doc/ISO-8859-5.txt":"a10ec8d6ea7a78ad15da7275f6cb1a3365118527e28f9af6d0d5830501303f3a","doc/ISO-8859-6.txt":"ccda8a2efc96115336bdd77776637b9712425e44fbcf745353b9057fbef144e7","doc/ISO-8859-7.txt":"17900fa1f27a445958f0a77d7d9056be375a6bd7ee4492aa680c7c1500bab85e","doc/ISO-8859-8-I.txt":"8357555646d54265a9b9ffa3e68b08d132312f1561c60108ff9b8b1167b6ecf2","doc/ISO-8859-8.txt":"72cd6f3afb7b4a9c16a66a362473315770b7755d72c86c870e52fc3eba86c8af","doc/KOI8-R.txt":"839cf19a38da994488004ed7814b1f6151640156a9a2af02bf2efca745fb5966","doc/KOI8-U.txt":"0cc76624ed1f024183e2298b7e019957da2c70c8ca06e0fc4e6f353f50a5054f","doc/Shift_JIS.txt":"34c49141818cb9ddbcf59cc858f78a79be8ad148d563f26415108ae1f148443f","doc/UTF-16BE.txt":"e2e280d8acbaa6d2a6b3569d60e17500a285f2baa0df3363dd85537cd5a1ef8f","doc/UTF-16LE.txt":"70bdc170e3fc5298ba68f10125fb5eeb8b077036cc96bb4416c4de396f6d76c1","doc/UTF-8.txt":"ea7bae742e613010ced002cf4b601a737d2203fad65e115611451bc4428f548a","doc/gb18030.txt":"67a01665c75505330b0fe5b8d88d5873d8ce555a145c77dca04a467fa2680744","doc/macintosh.txt":"57491e53866711b4672d9b9ff35380b9dac9e0d8e3d6c20bdd6140603687c023","doc/replacement.txt":"4b6c3bbd7999d9d4108a281594bd02d13607e334a95465afff8c2c08d395f0e4","doc/windows-1250.txt":"61296bb6a21cdab602300d32ecfba434cb82de5ac3bc88d58710d2f125e28d39","doc/windows-1251.txt":"7deea1c61dea1485c8ff02db2c7d578db7a9aab63ab1cfd02ec04b515864689e","doc/windows-1252.txt":"933ef3bdddfce5ee132b9f1a1aa8b47423d2587bbe475b19028d0a6d38e180b6","doc/windows-1253.txt":"1a38748b88e99071a5c7b3d5456ead4caedeabab50d50d658be105bc113714de","doc/windows-1254.txt":"f8372f86c6f8d642563cd6ddc025260553292a39423df1683a98670bd7bf2b47","doc/windows-1255.txt":"4e5852494730054e2da258a74e1b9d780abbcdd8ce22ebc218ca2efe9e90493d","doc/windows-1256.txt":"c0879c5172abedead302a406e8f60d9cd9598694a0ffa4fd288ffe4fef7b8ea1","doc/windows-1257.txt":"c28a0c9f964fcb2b46d21f537c402446501a2800670481d6abf9fd9e9018d523","doc/windows-1258.txt":"5019ae4d61805c79aacbf17c93793342dbb098d65a1837783bc3e2c6d6a23602","doc/windows-874.txt":"4ef0e4501c5feba8b17aee1818602ed44b36ca8475db771ce2fc16d392cabecc","doc/x-mac-cyrillic.txt":"58be154d8a888ca3d484b83b44f749823ef339ab27f14d90ca9a856f5050a8bd","doc/x-user-defined.txt":"f9cd07c4321bf5cfb0be4bdddd251072999b04a6cf7a6f5bc63709a84e2c1ffc","generate-encoding-data.py":"6f34a845785f53425accf30759edc566873fcb0c2188648e07b09c898f39dddb","rustfmt.toml":"85c1a3b4382fd89e991cbb81b70fb52780472edc064c963943cdaaa56e0a2030","src/ascii.rs":"588e38b01e666d5e7462617ea7e90a108d608dec9e016f3d273ac0744af2e05d","src/big5.rs":"ec6e2913011a38e9a3e825a1731f139a7ca1d5b264fefae51a3cc1a68a57cef9","src/data.rs":"b93f34025fe5c6a85b4b9f0037bf58961352bf19c83f91b09b35eb8495625eec","src/euc_jp.rs":"32047f5b540188c4cb19c07165f846b9786a09f18e315ed3e9bda1293dae52aa","src/euc_kr.rs":"9b25afc72d9378700eecfac58d55ad1c5946d6cd0ccde2c29c08200ef2de6bb9","src/gb18030.rs":"89cd6ae2247add3f3471a699bc12113a9ae2f6b91a5223abbf15b68a13537dcd","src/gb18030_2022.rs":"3c2e06492c5e00fcd39515e4af4c560d8cee5c31e7a7e388db682bc9ee33ee32","src/handles.rs":"b08cef1f5785bb6a4822f2e844c6df1b046b737b7a075e4593eaa8c4208e9fe2","src/iso_2022_jp.rs":"9bb485e82574f4b7d4b2364f0ff276acb6a0bc111758420a3b0ec5e04c196652","src/lib.rs":"c4d9fa1c43105e2310122f1b9197125032e607fe6f79bc22769b340de76e2430","src/macros.rs":"200997f8870de8bfd8cdc475e92115df42108c0df661e49d3d1cbc32056e1d99","src/mem.rs":"948571137d3b151df8db4fb2c733e74ae595d055cdf0ad83abcab9341d6adabe","src/replacement.rs":"7660b34a53f8c1ca2bdfa0e51e843ec28326950952ad8bc96569feb93ac62308","src/shift_jis.rs":"6951ae67e36b1a12fa3a30734957f444d8b1b4ae0e2bde52060b29bd0f16d9d9","src/simd_funcs.rs":"05c6e77af74bfe73cd39a752067c11425d6b46e5da419910f54bf75a5c02a984","src/single_byte.rs":"3ad87116fb339434a4b58e8f2b15485f2b66b9f7814d708f16194ed08f6d6ccf","src/test_data/big5_in.txt":"a5ae290786610c7facdbb1d06be6815e8bb81d68dfa7380edc7ddb6b8c7e412e","src/test_data/big5_in_ref.txt":"52733d9970fb8987f014fa0eac2792250123cf583b363beb2ce7b3c55e3dc555","src/test_data/big5_out.txt":"57420ca41a669c949738c84cab620020959572d2ee97b4e059405bfe26a79b6d","src/test_data/big5_out_ref.txt":"00e5f67c222dd5cd3bb1739276910b8f0032f454cba7cf7c3eaa255a564188d0","src/test_data/euc_kr_in.txt":"21534ec87e82d785d128f980902d13fab6d9dea15c69a991f409d9b0afd1c852","src/test_data/euc_kr_in_ref.txt":"b3009e6a94967df1f1135c66f005610bebad6666d634aec72d2ad77c3211bda3","src/test_data/euc_kr_out.txt":"20205b0b5be4f579271193b5bfbc549a61a9fd5217c33eecfa61784a3ffe2e9d","src/test_data/euc_kr_out_ref.txt":"b5f566237f8d4ef4d03ad26135ca97dfd7398608a82165bd4853b5134ab22cb5","src/test_data/gb18030_in.txt":"0dd1fbf0360930daafdce7e6761852005a8f92f7910180df19a070b6c3c59dee","src/test_data/gb18030_in_ref.txt":"f3eaea1115857054cf30f8ba18219e72377f2a4afd848ccf223770d75aa4251d","src/test_data/gb18030_out.txt":"7184fe9592609597d55c2733606b4c4b1a18b79b24533e1a16a14ff92e7d2b55","src/test_data/gb18030_out_ref.txt":"23bb850ddc69aaf1bdfeabe05a12d93f614e5560dac879d5f02929ee4a7c06c5","src/test_data/iso_2022_jp_in.txt":"98fb823530a30a76eb0ba7ab6ac796959e8869c1ec143f018a1964581ae813aa","src/test_data/iso_2022_jp_in_ref.txt":"df82166d2e01bb446211d7e46f33b47d93ac1bafeae2ed880ee93c4096d11210","src/test_data/iso_2022_jp_out.txt":"bef8eb4804ed0843b9dffdd1d168738635cc77f8d0929beb2532b686318ddae6","src/test_data/iso_2022_jp_out_ref.txt":"b221b36b2bce49d49b620dc8ba80d77bac74e8660a86a11628e79b67f1d98964","src/test_data/jis0208_in.txt":"3c1a7aaada00d6fff41e60bd7589d7ae94afaf562759b116958b1d84711d17b6","src/test_data/jis0208_in_ref.txt":"df82166d2e01bb446211d7e46f33b47d93ac1bafeae2ed880ee93c4096d11210","src/test_data/jis0208_out.txt":"a6188b67eb00ba980cb83056186c89bcdddc1b0210af9afa78ed1c9b7a098950","src/test_data/jis0208_out_ref.txt":"e75a986fe5e78e64bf8fafd7392ae96ee0cb0a4b2e7ef2fe722b3caacf3e2f70","src/test_data/jis0212_in.txt":"9eda766002646a27310457c661832429beff9089d2703355812c4cac30d800b5","src/test_data/jis0212_in_ref.txt":"fcf74c58d2cbe9b3f3db4fa9eff26e09f5e9644097c78614c03177e938988d03","src/test_data/shift_jis_in.txt":"e65df746be90359e70422868522a7aa3e8ed20e0d4c0cf9995d9de248bf93388","src/test_data/shift_jis_in_ref.txt":"13b15aed64e9e7cb35e6a740b67413f0c285fda944f4814d45a7619ea338fb5e","src/test_data/shift_jis_out.txt":"192d0a4a8ce5d0f904c5cb283dfb974577ee667cf1e71955a6dd6aece2b354ef","src/test_data/shift_jis_out_ref.txt":"cb6d50b0c11bad1d1f1fcc02d779672a8b9a2509cbbafdc6392aceb49c8b4268","src/test_labels_names.rs":"23a2e11b02b3b8d15fb5613a625e3edb2c61e70e3c581abfd638719a4088200d","src/testing.rs":"f59e671e95a98a56f6b573e8c6be4d71e670bf52f7e20eb1605d990aafa1894e","src/utf_16.rs":"c071a147fad38d750c2c247e141b76b929a48007b99f26b2922b9caecdaf2f25","src/utf_8.rs":"7b7d887b347f1aefa03246b028a36a72758a4ce76c28f3b45c19467851aa7839","src/variant.rs":"1fab5363588a1554a7169de8731ea9cded7ac63ea35caabdd1c27a8dde68c27b","src/x_user_defined.rs":"d733660c7775afa8007cfc80c09057d875d6613aaf98c7dc942e47fb93306feb"},"package":null} +\ No newline at end of file +diff --git a/third_party/rust/encoding_rs/.cargo_vcs_info.json b/third_party/rust/encoding_rs/.cargo_vcs_info.json +deleted file mode 100644 +index 6e5d699759e4..000000000000 +--- a/third_party/rust/encoding_rs/.cargo_vcs_info.json ++++ /dev/null +@@ -1,6 +0,0 @@ +-{ +- "git": { +- "sha1": "2fa58aecf537cc76ff52c0eb3d5e9f8fda466844" +- }, +- "path_in_vcs": "" +-} +\ No newline at end of file +diff --git a/third_party/rust/encoding_rs/Cargo.toml b/third_party/rust/encoding_rs/Cargo.toml +index 2adac351c2ed..0239315bab18 100644 +--- a/third_party/rust/encoding_rs/Cargo.toml ++++ b/third_party/rust/encoding_rs/Cargo.toml +@@ -16,72 +16,76 @@ name = "encoding_rs" + version = "0.8.35" + authors = ["Henri Sivonen "] + build = false ++autolib = false + autobins = false + autoexamples = false + autotests = false + autobenches = false + description = "A Gecko-oriented implementation of the Encoding Standard" + homepage = "https://docs.rs/encoding_rs/" + documentation = "https://docs.rs/encoding_rs/" + readme = "README.md" + keywords = [ + "encoding", + "web", + "unicode", + "charset", + ] + categories = [ + "text-processing", + "encoding", + "web-programming", + "internationalization", + ] + license = "(Apache-2.0 OR MIT) AND BSD-3-Clause" + repository = "https://github.com/hsivonen/encoding_rs" + +-[profile.release] +-lto = true +- +-[lib] +-name = "encoding_rs" +-path = "src/lib.rs" +- +-[dependencies.any_all_workaround] +-version = "0.1.0" +-optional = true +- +-[dependencies.cfg-if] +-version = "1.0" +- +-[dependencies.serde] +-version = "1.0" +-optional = true +- +-[dev-dependencies.bincode] +-version = "1.0" +- +-[dev-dependencies.serde_derive] +-version = "1.0" +- +-[dev-dependencies.serde_json] +-version = "1.0" +- + [features] + alloc = [] + default = ["alloc"] + fast-big5-hanzi-encode = [] + fast-gb-hanzi-encode = [] + fast-hangul-encode = [] + fast-hanja-encode = [] + fast-kanji-encode = [] + fast-legacy-encode = [ + "fast-hangul-encode", + "fast-hanja-encode", + "fast-kanji-encode", + "fast-gb-hanzi-encode", + "fast-big5-hanzi-encode", + ] + less-slow-big5-hanzi-encode = [] + less-slow-gb-hanzi-encode = [] + less-slow-kanji-encode = [] +-simd-accel = ["any_all_workaround"] ++simd-accel = [ ++ "any_all_workaround", ++ "rustversion", ++] ++ ++[lib] ++name = "encoding_rs" ++path = "src/lib.rs" ++ ++[dependencies] ++cfg-if = "1.0" ++ ++[dependencies.any_all_workaround] ++version = "0.1.0" ++optional = true ++ ++[dependencies.rustversion] ++version = "1.0.19" ++optional = true ++ ++[dependencies.serde] ++version = "1.0" ++optional = true ++ ++[dev-dependencies] ++bincode = "1.0" ++serde_derive = "1.0" ++serde_json = "1.0" ++ ++[profile.release] ++lto = true +diff --git a/third_party/rust/encoding_rs/Cargo.toml.orig b/third_party/rust/encoding_rs/Cargo.toml.orig +deleted file mode 100644 +index 0f7639d5f879..000000000000 +--- a/third_party/rust/encoding_rs/Cargo.toml.orig ++++ /dev/null +@@ -1,45 +0,0 @@ +-[package] +-name = "encoding_rs" +-description = "A Gecko-oriented implementation of the Encoding Standard" +-version = "0.8.35" +-edition = '2018' +-authors = ["Henri Sivonen "] +-license = "(Apache-2.0 OR MIT) AND BSD-3-Clause" +-readme = "README.md" +-documentation = "https://docs.rs/encoding_rs/" +-homepage = "https://docs.rs/encoding_rs/" +-repository = "https://github.com/hsivonen/encoding_rs" +-keywords = ["encoding", "web", "unicode", "charset"] +-categories = ["text-processing", "encoding", "web-programming", "internationalization"] +-rust-version = "1.36" +- +-[features] +-default = ["alloc"] +-alloc = [] +-simd-accel = ["any_all_workaround"] +-less-slow-kanji-encode = [] +-less-slow-big5-hanzi-encode = [] +-less-slow-gb-hanzi-encode = [] +-fast-hangul-encode = [] +-fast-hanja-encode = [] +-fast-kanji-encode = [] +-fast-gb-hanzi-encode = [] +-fast-big5-hanzi-encode = [] +-fast-legacy-encode = ["fast-hangul-encode", +- "fast-hanja-encode", +- "fast-kanji-encode", +- "fast-gb-hanzi-encode", +- "fast-big5-hanzi-encode"] +- +-[dependencies] +-cfg-if = "1.0" +-serde = { version = "1.0", optional = true } +-any_all_workaround = { version = "0.1.0" , optional = true } +- +-[dev-dependencies] +-serde_derive = "1.0" +-bincode = "1.0" +-serde_json = "1.0" +- +-[profile.release] +-lto = true +diff --git a/third_party/rust/encoding_rs/src/x_user_defined.rs b/third_party/rust/encoding_rs/src/x_user_defined.rs +index 7af7d5e3d69d..16f1a18d7f6c 100644 +--- a/third_party/rust/encoding_rs/src/x_user_defined.rs ++++ b/third_party/rust/encoding_rs/src/x_user_defined.rs +@@ -16,6 +16,8 @@ cfg_if! { + use simd_funcs::*; + use core::simd::u16x8; + use core::simd::cmp::SimdPartialOrd; ++ #[rustversion::since(1.95)] ++ use core::simd::Select; + + #[inline(always)] + fn shift_upper(unpacked: u16x8) -> u16x8 { diff --git a/arch/firefox-fourier/patches/arch-0003-Patch-glsl-optimizer-to-build-with-glibc-2.43.patch b/arch/firefox-fourier/patches/arch-0003-Patch-glsl-optimizer-to-build-with-glibc-2.43.patch new file mode 100644 index 000000000..2c49fa89f --- /dev/null +++ b/arch/firefox-fourier/patches/arch-0003-Patch-glsl-optimizer-to-build-with-glibc-2.43.patch @@ -0,0 +1,3108 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Thu, 12 Feb 2026 09:31:45 +0100 +Subject: [PATCH] Patch glsl-optimizer to build with glibc 2.43 + +--- + .cargo/config.toml.in | 5 + + Cargo.lock | 3 +- + Cargo.toml | 2 + + supply-chain/audits.toml | 6 + + supply-chain/config.toml | 4 + + third_party/rust/glslopt/.cargo-checksum.json | 2 +- + third_party/rust/glslopt/.cargo_vcs_info.json | 6 - + third_party/rust/glslopt/Cargo.lock | 25 -- + third_party/rust/glslopt/Cargo.toml | 4 +- + third_party/rust/glslopt/Cargo.toml.orig | 12 - + .../rust/glslopt/glsl-optimizer/.cargo-ok | 0 + .../rust/glslopt/glsl-optimizer/.gitignore | 4 - + .../glslopt/glsl-optimizer/generateParsers.sh | 6 +- + .../include/c11/threads_posix.h | 6 + + .../src/compiler/glsl/ast_function.cpp | 2 +- + .../src/compiler/glsl/ast_to_hir.cpp | 24 +- + .../src/compiler/glsl/builtin_functions.cpp | 2 +- + .../src/compiler/glsl/glcpp/glcpp-lex.c | 8 +- + .../src/compiler/glsl/glcpp/glcpp-lex.l | 6 +- + .../glsl-optimizer/src/compiler/glsl/ir.cpp | 4 +- + .../glsl/ir_builder_print_visitor.cpp | 6 +- + .../compiler/glsl/ir_expression_operation.py | 18 +- + .../glsl/ir_expression_operation_constant.h | 248 +++++++++--------- + .../compiler/glsl/ir_print_glsl_visitor.cpp | 6 +- + .../src/compiler/glsl/ir_print_visitor.cpp | 4 +- + .../src/compiler/glsl/linker.cpp | 2 +- + .../src/compiler/glsl/loop_analysis.cpp | 4 +- + .../glsl/lower_blend_equation_advanced.cpp | 2 +- + .../src/compiler/glsl/lower_buffer_access.cpp | 4 +- + .../src/compiler/glsl/lower_distance.cpp | 2 +- + .../src/compiler/glsl/lower_ubo_reference.cpp | 4 +- + .../src/compiler/glsl/opt_algebraic.cpp | 2 +- + .../src/compiler/glsl/opt_minmax.cpp | 2 +- + .../src/compiler/glsl/opt_vectorize.cpp | 2 +- + .../src/compiler/glsl_types.cpp | 16 +- + .../glsl-optimizer/src/compiler/glsl_types.h | 2 +- + .../src/compiler/shader_enums.c | 4 +- + .../glsl-optimizer/src/mesa/main/shaderobj.h | 12 +- + .../glslopt/glsl-optimizer/src/util/macros.h | 22 +- + third_party/rust/glslopt/src/bindings.rs | 46 ++-- + 40 files changed, 263 insertions(+), 276 deletions(-) + delete mode 100644 third_party/rust/glslopt/.cargo_vcs_info.json + delete mode 100644 third_party/rust/glslopt/Cargo.lock + delete mode 100644 third_party/rust/glslopt/Cargo.toml.orig + copy .trackerignore => third_party/rust/glslopt/glsl-optimizer/.cargo-ok (100%) + delete mode 100644 third_party/rust/glslopt/glsl-optimizer/.gitignore + +diff --git a/.cargo/config.toml.in b/.cargo/config.toml.in +index a538c4565b3f..ee5bd9373215 100644 +--- a/.cargo/config.toml.in ++++ b/.cargo/config.toml.in +@@ -5,6 +5,11 @@ + [source.crates-io] + replace-with = "vendored-sources" + ++[source."git+https://github.com/Erk-/glslopt-rs?rev=92fa39d0910e9e73de40b0d391906e6e2940080d"] ++git = "https://github.com/Erk-/glslopt-rs" ++rev = "92fa39d0910e9e73de40b0d391906e6e2940080d" ++replace-with = "vendored-sources" ++ + [source."git+https://github.com/FirefoxGraphics/aa-stroke?rev=5776bdfc8ad664a1503db668fab397d818a5f98a"] + git = "https://github.com/FirefoxGraphics/aa-stroke" + rev = "5776bdfc8ad664a1503db668fab397d818a5f98a" +diff --git a/Cargo.lock b/Cargo.lock +index 84ae05133799..1de604eb9111 100644 +--- a/Cargo.lock ++++ b/Cargo.lock +@@ -2894,8 +2894,7 @@ dependencies = [ + [[package]] + name = "glslopt" + version = "0.1.12" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "8ba4741358604ca0848c27ecc069d68e62e11cde81e38aac1da3c54b79ab5adf" ++source = "git+https://github.com/Erk-/glslopt-rs?rev=92fa39d0910e9e73de40b0d391906e6e2940080d#92fa39d0910e9e73de40b0d391906e6e2940080d" + dependencies = [ + "cc", + ] +diff --git a/Cargo.toml b/Cargo.toml +index 4d9f6fbf021e..cd9966a950e6 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -282,6 +282,8 @@ harfbuzz = { git = "https://github.com/hsivonen/rust-harfbuzz", rev = "9d58a23a9 + harfbuzz-traits = { git = "https://github.com/hsivonen/rust-harfbuzz", rev = "9d58a23a98772a197291d04af93f7041b7093d95" } + # Make --enable-rust-simd compatible with Rust 1.95 + encoding_rs = { git = "https://github.com/hsivonen/encoding_rs", rev = "1236d1bc423e6ba35a06485f74a6304db2d703b5" } ++# Make glsl-optimizer compatible with glibc 2.43 ++glslopt = { git = "https://github.com/Erk-/glslopt-rs", rev = "92fa39d0910e9e73de40b0d391906e6e2940080d" } + + # objc 0.2.7 + fa7ca43b862861dd1cd000d7ad01e6e0266cda13 + objc = { git = "https://github.com/glandium/rust-objc", rev = "4de89f5aa9851ceca4d40e7ac1e2759410c04324" } +diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml +index 706d58a3e47e..095aa8e79a5b 100644 +--- a/supply-chain/audits.toml ++++ b/supply-chain/audits.toml +@@ -2991,6 +2991,12 @@ criteria = "safe-to-deploy" + delta = "0.1.11 -> 0.1.12" + notes = "Only a minor build tweak." + ++[[audits.glslopt]] ++who = "Jan Alexander Steffens (heftig) " ++criteria = "safe-to-deploy" ++delta = "0.1.12 -> 0.1.12@git:92fa39d0910e9e73de40b0d391906e6e2940080d" ++importable = false ++ + [[audits.goblin]] + who = "Jan-Erik Rediger " + criteria = "safe-to-deploy" +diff --git a/supply-chain/config.toml b/supply-chain/config.toml +index 33c3357d441d..a7e4c206f145 100644 +--- a/supply-chain/config.toml ++++ b/supply-chain/config.toml +@@ -68,6 +68,10 @@ notes = "Used for testing." + dependency-criteria = { tokio-reactor = [], tokio-threadpool = [] } + notes = "The dependencies on tokio-reactor and tokio-threadpools are just a hack to pin the version used by audioipc-{client,server}. Suppress vetting on those for the same reasons behind the policy entries." + ++[policy.glslopt] ++audit-as-crates-io = true ++notes = "This is upstream plus a build fix for bug 1999625." ++ + [policy.gluesmith] + criteria = "safe-to-run" + notes = "Used for fuzzing." +diff --git a/third_party/rust/glslopt/.cargo-checksum.json b/third_party/rust/glslopt/.cargo-checksum.json +index e3300c718103..975a4c8da7b6 100644 +--- a/third_party/rust/glslopt/.cargo-checksum.json ++++ b/third_party/rust/glslopt/.cargo-checksum.json +@@ -1 +1 @@ +-{"files":{".cargo_vcs_info.json":"7075d1c5c5e19288cefb431f16462eaa23229d02791120f4885ab1d20470cb7e",".gitmodules":"ffc0cce90e856d4f4bdb3bd3c950c9e59501a45ebd5022b91cfe8c07c79ef1ac","Cargo.lock":"f7970552595dc803ace9ef19b5f5d7b1fc784aac30cb27b2ebc3002d97122b9d","Cargo.toml":"7c53ee20d848f9913cacbfcb3ab2e89e30deee8d619d173c95130c7c5d065827","Cargo.toml.orig":"c46463ed28492baaaa17c772384cd1654093f96e900cefdb13d578e10561974f","README.md":"4468e08c64c19977707d792bfab0080e35ff927b64990eab77873f8ba056ba1c","build.rs":"92e29699487c21389fc823c50b410cfbfc74cc774265d24958489909ee48a076","glsl-optimizer/.editorconfig":"dca7ff05a95f608849c4dc640af7f83a0f415618e327a2ecb6a0afa0d9d2bacb","glsl-optimizer/.gitignore":"8ba554a4ca510ea7d9684475aa043edbeba7d15a5c9c4a04d8b1379a04ec6270","glsl-optimizer/CMakeLists.txt":"42ce94744e82ffa000da8b64d81fc140e293b9f5da7dd4cf6b49e7404a2448d9","glsl-optimizer/README.md":"b18eef11a92d267d88a937b1154f7670ee433c730b102fdf7e2da0b02722b146","glsl-optimizer/contrib/glslopt/Main.cpp":"14ba213210c62e234b8d9b0052105fed28eedd83d535ebe85acc10bda7322dd4","glsl-optimizer/contrib/glslopt/Readme":"65d2a6f1aa1dc61e903e090cdade027abad33e02e7c9c81e07dc80508acadec4","glsl-optimizer/generateParsers.sh":"878a97db5d3b69eb3b4c3a95780763b373cfcc0c02e0b28894f162dbbd1b8848","glsl-optimizer/include/GL/gl.h":"1989b51365b6d7d0c48ff6e8b181ef75e2cdf71bfb1626b1cc4362e2f54854a3","glsl-optimizer/include/GL/glext.h":"2ac3681045a35a2194a81a960cad395c04bef1c8a20ef46b799fb24af3ec5f70","glsl-optimizer/include/KHR/khrplatform.h":"1448141a0c054d7f46edfb63f4fe6c203acf9591974049481c32442fb03fd6ed","glsl-optimizer/include/c11/.editorconfig":"f96a2354e5f2b90367d643e6d9e980ce76278d4d47afd8b2713b595753aa8b4b","glsl-optimizer/include/c11/threads.h":"56e9e592b28df19f0db432125223cb3eb5c0c1f960c22db96a15692e14776337","glsl-optimizer/include/c11/threads_posix.h":"f8ad2b69fa472e332b50572c1b2dcc1c8a0fa783a1199aad245398d3df421b4b","glsl-optimizer/include/c11/threads_win32.h":"95bf19d7fc14d328a016889afd583e4c49c050a93bcfb114bd2e9130a4532488","glsl-optimizer/include/c11_compat.h":"103fedb48f658d36cb416c9c9e5ea4d70dff181aab551fcb1028107d098ffa3e","glsl-optimizer/include/c99_compat.h":"aafad02f1ea90a7857636913ea21617a0fcd6197256dcfc6dd97bb3410ba892e","glsl-optimizer/include/no_extern_c.h":"40069dbb6dd2843658d442f926e609c7799b9c296046a90b62b570774fd618f5","glsl-optimizer/license.txt":"e26a745226f4a46b3ca00ffbe8be18507362189a2863d04b4f563ba176a9a836","glsl-optimizer/src/compiler/builtin_type_macros.h":"5b4fc4d4da7b07f997b6eb569e37db79fa0735286575ef1fab08d419e76776ff","glsl-optimizer/src/compiler/glsl/README":"e7d408b621c1b605857c4cab63902f615edb06b530142b91ac040808df6e22f7","glsl-optimizer/src/compiler/glsl/TODO":"dd3b7a098e6f9c85ca8c99ce6dea49d65bb75d4cea243b917f29e4ad2c974603","glsl-optimizer/src/compiler/glsl/ast.h":"3e68ff374350c49211a9931f7f55a485d8d89fc4b21caaffbf6655009ad95bf8","glsl-optimizer/src/compiler/glsl/ast_array_index.cpp":"92b4d501f33e0544c00d14e4f8837753afd916c2b42e076ccc95c9e8fc37ba94","glsl-optimizer/src/compiler/glsl/ast_expr.cpp":"afd712a7b1beb2b633888f4a0911b0a8e4ae5eb5ab9c1e3f247d518cdaaa56d6","glsl-optimizer/src/compiler/glsl/ast_function.cpp":"74f4fbd490e366b37f4715168bb3465ecd9334d4130942f75dcc8e80e8e7f027","glsl-optimizer/src/compiler/glsl/ast_to_hir.cpp":"d0f798eb09271d41d068b9e7b18220d37f1ed0083300ab51eba30989698fe23d","glsl-optimizer/src/compiler/glsl/ast_type.cpp":"8eb790b24b26dfb72bdc333744b566c26d8464c5d47d20eae659461f5c4899f7","glsl-optimizer/src/compiler/glsl/builtin_functions.cpp":"454189d643c220fcb49116ee5c8a34f7b349aa67564040deb8607f6a41a15e70","glsl-optimizer/src/compiler/glsl/builtin_functions.h":"a37cad7ed09b522c5b8bec7b80115a36846e7ba6e0874a2a858e32f7f202c665","glsl-optimizer/src/compiler/glsl/builtin_int64.h":"619def6f3aebf180da3944ef08f159ab12a58b24767e41d8b985ac37ded54d62","glsl-optimizer/src/compiler/glsl/builtin_types.cpp":"afec060b62d6f3b00bfbf94e9fa5f96341ce096c128d1eef322791e6ed9cea4d","glsl-optimizer/src/compiler/glsl/builtin_variables.cpp":"6563bfb1345cbca4c77e00eef09ad152f3e1dc271d246a08c5ce9e1f4ce4250a","glsl-optimizer/src/compiler/glsl/float64.glsl":"1072fd888be48c2a7a5117cd2d92a65f034965a66375f598bb856bff5d7be766","glsl-optimizer/src/compiler/glsl/generate_ir.cpp":"e5f0175370a0d07f93c48d3f0f1b8233d12c64a7b02de02dcc753ef7b398ef0f","glsl-optimizer/src/compiler/glsl/glcpp/README":"a0332a1b221d047e9cce5181a64d4ac4056046fd878360ec8ae3a7b1e062bcff","glsl-optimizer/src/compiler/glsl/glcpp/glcpp-lex.c":"2d179879b1ffe84f58875eee5b0c19b6bae9c973b0c48e6bcd99978f2f501c80","glsl-optimizer/src/compiler/glsl/glcpp/glcpp-lex.l":"e4c5744c837200dafd7c15a912d13f650308ea552454d4fa67271bc0a5bde118","glsl-optimizer/src/compiler/glsl/glcpp/glcpp-parse.c":"03494f9ce1cb82260506e2559e73a3eeb622c4bd51b65eaa0a2c3351862bd4c8","glsl-optimizer/src/compiler/glsl/glcpp/glcpp-parse.h":"264d9a18421cde255ce34a0a62b3d8e73465359f0d167e64aa3973062aae5bdd","glsl-optimizer/src/compiler/glsl/glcpp/glcpp-parse.y":"fafb66e3a8f149d19e085f18a4273ba6d4c11af9e9a01d665cc784dddf97b79f","glsl-optimizer/src/compiler/glsl/glcpp/glcpp.c":"37ed294403c2abfd17fd999d1ae8d11b170e5e9c878979fefac74a31195c96b0","glsl-optimizer/src/compiler/glsl/glcpp/glcpp.h":"85ac8b444bcbd0822b66448a1da407b6ae5467b649f5afaf5c58325bd7569468","glsl-optimizer/src/compiler/glsl/glcpp/pp.c":"a52d94f1bcb3fb2747a95709c4a77c25de7eea8354d2b83bb18efd96976a4473","glsl-optimizer/src/compiler/glsl/glcpp/pp_standalone_scaffolding.c":"d11aeb3acfe966d1b78f1ee49804093f2434214c41391d139ffcb67b69dc9862","glsl-optimizer/src/compiler/glsl/glcpp/pp_standalone_scaffolding.h":"abbf1f36ec5a92d035bfbb841b9452287d147616e56373cdbee1c0e55af46406","glsl-optimizer/src/compiler/glsl/glsl_lexer.cpp":"272b9fc1383d72b81bfc03fa11fdf82270ed91a294e523f9ce2b4554bd3effa9","glsl-optimizer/src/compiler/glsl/glsl_lexer.ll":"2b57d9f9eb830c3d7961d4533048a158ee6f458c8d05c65bea7b7cfbc36e4458","glsl-optimizer/src/compiler/glsl/glsl_optimizer.cpp":"f8095d20629d0af70be930b0612e169edb274551a1d25a3cd1bf9995a11ce2e8","glsl-optimizer/src/compiler/glsl/glsl_optimizer.h":"22e843b4ec53ba5f6cd85ca5f7bad33922dca8061b19fb512d46f1caca8d4757","glsl-optimizer/src/compiler/glsl/glsl_parser.cpp":"126baf368d525aba301854e3d91ba60b5aee32e1102376af71416f32cb95ec48","glsl-optimizer/src/compiler/glsl/glsl_parser.h":"2ea9a50716098a8f7bef782d2a030d757b68da73afb01b4d4940d3e8381d44e8","glsl-optimizer/src/compiler/glsl/glsl_parser.yy":"6b1fd1576b29fce005dff744a6dbd0219e4c695c361d61864e1f3a8d6fa6b764","glsl-optimizer/src/compiler/glsl/glsl_parser_extras.cpp":"aad64b5b66467da650091430681e8c6a820cf3cadc4db3c160bf2f15875390ae","glsl-optimizer/src/compiler/glsl/glsl_parser_extras.h":"71fd0e92bbdb193dfb067d7bfdb1200d77392be2fbd0cbfc9ca89d1bb4c7e741","glsl-optimizer/src/compiler/glsl/glsl_symbol_table.cpp":"6660fb83c0ddddbbd64581d46ccfdb9c84bfaa99d13348c289e6442ab00df046","glsl-optimizer/src/compiler/glsl/glsl_symbol_table.h":"24682b8304e0ea3f6318ddb8c859686bd1faee23cd0511d1760977ae975d41bf","glsl-optimizer/src/compiler/glsl/hir_field_selection.cpp":"72a039b0fcab4161788def9e4bedac7ac06a20d8e13146529c6d246bd5202afd","glsl-optimizer/src/compiler/glsl/int64.glsl":"303dbe95dde44b91aee3e38b115b92028400d6a92f9268975d607471984e13eb","glsl-optimizer/src/compiler/glsl/ir.cpp":"2b4741cce90b5d4abff5d719c7324e2693c67294d4d99736cb241554adb281bc","glsl-optimizer/src/compiler/glsl/ir.h":"990b1c74447c4eb4835353ccb0ed9aea644f97fc1129ef1739cd935075d85d2e","glsl-optimizer/src/compiler/glsl/ir_array_refcount.cpp":"8cdc1cffe01e42e0566fa2193a75f789628e8025ad1b82f0ee6f204451b7f9f7","glsl-optimizer/src/compiler/glsl/ir_array_refcount.h":"75f06ec81342b379096ca52e1dc0fd5f19a11ff8e9b58203c20628179d644c12","glsl-optimizer/src/compiler/glsl/ir_basic_block.cpp":"1e2920b1c0ecb08424c745c558f84d0d7e44b74585cf2cc2265dc4dfede3fa2f","glsl-optimizer/src/compiler/glsl/ir_basic_block.h":"81be7da0fc0ee547cd13ec60c1fcd7d3ce3d70d7e5e988f01a3b43a827acdf05","glsl-optimizer/src/compiler/glsl/ir_builder.cpp":"daba29c5a1efdd5a9754f420eb3e2ebdf73485273497f40d4863dadeddb23c0d","glsl-optimizer/src/compiler/glsl/ir_builder.h":"2822e74dd3f6e3df8b300af27d5b11ea2dd99d0e5e7ca809b7bbcce9833c483c","glsl-optimizer/src/compiler/glsl/ir_builder_print_visitor.cpp":"8c6df5abf2fe313363f285f171c19ca6c8ee4f3bc2ed79d33c0c88cc8be45c48","glsl-optimizer/src/compiler/glsl/ir_builder_print_visitor.h":"799852adc3a0e54d04080655e7cebfa0d3bf5b6ffed5d8414f141380665d4db7","glsl-optimizer/src/compiler/glsl/ir_clone.cpp":"d897a4e1f5bbec4a6a2f15044c1be9a4d13899c73be77335b041049a4589aa5d","glsl-optimizer/src/compiler/glsl/ir_constant_expression.cpp":"78bd87ddb09db67f6c499067728d72aef4f16aa02721a99a4b769d1e0cfa9010","glsl-optimizer/src/compiler/glsl/ir_equals.cpp":"bca28533a6310b0fc152b56d80872368f1510dc62ed6e8ac199b9ffa7fac02e7","glsl-optimizer/src/compiler/glsl/ir_expression_flattening.cpp":"7e918d4e1f237eca01396004015865ce345afe32a876c9dbc6728576a1a7eae4","glsl-optimizer/src/compiler/glsl/ir_expression_flattening.h":"f45b66aa9497520e7e08e612d24b308477c34477fbd963ee9320eac664957f16","glsl-optimizer/src/compiler/glsl/ir_expression_operation.h":"cc9f10727dbd26cac506804f51456302c702650f9eeb59054a7e1575d5cf6687","glsl-optimizer/src/compiler/glsl/ir_expression_operation.py":"7b86c96021b9fbe165957f4ecb0b612fefcde1c2cf3c6d75e3cdb22e369216ba","glsl-optimizer/src/compiler/glsl/ir_expression_operation_constant.h":"9ad3346416392e3efa11e12ecf2feca7453c5253d241eb96c91dfb85d4f2b971","glsl-optimizer/src/compiler/glsl/ir_expression_operation_strings.h":"a6826daf496a8b9e89885bc2a161ac3445d501b23c6e0ac33e2c01b506b273c8","glsl-optimizer/src/compiler/glsl/ir_function.cpp":"7537365fc0fbe4b37a26b9a2146cc64d3e9a774d60eab63b65002ad165ae8fc7","glsl-optimizer/src/compiler/glsl/ir_function_can_inline.cpp":"faddbf112187a048d502716a3fb82570a322299ba2a3abd79388382c82040bfc","glsl-optimizer/src/compiler/glsl/ir_function_detect_recursion.cpp":"9176973eaf5c0a984701f953bb7a80f37dca43d59b5bce50fc69b3f02f2902d7","glsl-optimizer/src/compiler/glsl/ir_function_inlining.h":"9739493f99c489987d650762fccdd3fb3d432f6481d67f6c799176685bd59632","glsl-optimizer/src/compiler/glsl/ir_hierarchical_visitor.cpp":"3725861fbe2b98e0617f52d3b14cf6d3b25fb5ec00f5ef5d308b03642f592767","glsl-optimizer/src/compiler/glsl/ir_hierarchical_visitor.h":"e0560210e966c0c31e4ca843e80ea154e64db5a444b8c2df845b6ba5b3a43fc1","glsl-optimizer/src/compiler/glsl/ir_hv_accept.cpp":"caf7ce2cd9494aadd3c58bcf77f29de58368dc9e347a362bbf37f8bda9509b80","glsl-optimizer/src/compiler/glsl/ir_optimization.h":"8b3dcfc7f9e96b21a8dd47a0040d90be483a9e67a2cdce3a697188fb758d4630","glsl-optimizer/src/compiler/glsl/ir_print_glsl_visitor.cpp":"f8e34a983452be0dcb5a695e9c8e895eead24f9e540992a8afe510ae85da4c4c","glsl-optimizer/src/compiler/glsl/ir_print_glsl_visitor.h":"1ad1bd3efd1ace39051c13f904c05fd80425d329444f9a8d47fd6d948faf46e0","glsl-optimizer/src/compiler/glsl/ir_print_visitor.cpp":"643f5a68aae3fb37267fd793f1216d1cfdeb2c09338c26b1f30e4c6deaef4de5","glsl-optimizer/src/compiler/glsl/ir_print_visitor.h":"4573eb93268a2654c14b505253dd651e2695d43dc745904d824da18305269b95","glsl-optimizer/src/compiler/glsl/ir_reader.cpp":"06bfba802c8354e5a8b2334b6d78d6297de18235bedd3f8fbb382c89870b02f2","glsl-optimizer/src/compiler/glsl/ir_reader.h":"63e3f7f1597936a7011d5b520e171b197bf82bee6c1560d822c3edf5aaa6f9e9","glsl-optimizer/src/compiler/glsl/ir_rvalue_visitor.cpp":"84b5c5d746555adca85759c2912fe48010232b7c1c0bd2cf03bd04067a85e66f","glsl-optimizer/src/compiler/glsl/ir_rvalue_visitor.h":"fd8c561b71085d3211fff85ed514fecb299d8ce19a04bc063419a55b6d840525","glsl-optimizer/src/compiler/glsl/ir_set_program_inouts.cpp":"ab9f115ce9e7f312d9c7978340ced0dc4ae6d13a80e08442ba9709d11d50cae5","glsl-optimizer/src/compiler/glsl/ir_uniform.h":"683ae6896b1a08470c090be5f822fc31cd434eab9216e954b9bba24a46975109","glsl-optimizer/src/compiler/glsl/ir_unused_structs.cpp":"9c1620c45f2fc071fe5ed828472040b14c5f42effe06aa0e3b8352c95ef78786","glsl-optimizer/src/compiler/glsl/ir_unused_structs.h":"13387b49c23093575276b25b9dfd31fedd8f131c5c4f3128ab04cf03e15b5295","glsl-optimizer/src/compiler/glsl/ir_validate.cpp":"6b232be5999a86ea278f4f15b2832d76843246509118d924243055a3b9b0299f","glsl-optimizer/src/compiler/glsl/ir_variable_refcount.cpp":"2764a3cad937d53f36db7447c3a5b98b04bf153acf81074d971857fc5bca460d","glsl-optimizer/src/compiler/glsl/ir_variable_refcount.h":"b0668e3eb1501ef65e38fe12830742ecb3d28e6039f30e366c8924efc29b4a39","glsl-optimizer/src/compiler/glsl/ir_visitor.h":"f21b3534c3d66d5fb707d1581fece7e1eb043523afbaedf89918cfb031c6df94","glsl-optimizer/src/compiler/glsl/link_atomics.cpp":"360f0209e11f367ba358223597b0a118bae095bff16337cf03f1fb89c5b80ca6","glsl-optimizer/src/compiler/glsl/link_functions.cpp":"de7895da8aa33a1e3c2c1eb2fdaf267ab5d1fbfdb79ae2e67f95211e946e294c","glsl-optimizer/src/compiler/glsl/link_interface_blocks.cpp":"1926cfa73810704eb19b916c1b2cdb9321155e2f98b2a0a57c7c3c6e960540cd","glsl-optimizer/src/compiler/glsl/link_uniform_block_active_visitor.cpp":"1e14e06ca3b2c1089cfba2e8eaf0c1f373d9d6374b6082f320962dd71ae09611","glsl-optimizer/src/compiler/glsl/link_uniform_block_active_visitor.h":"fd58c155af645295bb6aec08797889de586f4d919731de2bce57e8dce59bb048","glsl-optimizer/src/compiler/glsl/link_uniform_blocks.cpp":"09589f49776dce32e6c4044937de7e0c839a9754ad31960148f8f9e010658997","glsl-optimizer/src/compiler/glsl/link_uniform_initializers.cpp":"bf98e08c12db466acf9623cbeb8fa8e3b4002512722e7a6521287f558a099f37","glsl-optimizer/src/compiler/glsl/link_uniforms.cpp":"84bad5b1377362cecf259b05124239be5220b03ce1c0c61b59bd9a47e4379af2","glsl-optimizer/src/compiler/glsl/link_varyings.cpp":"a5f1a53e7c80d635515fe808ff223d89fef1767abb0f2b7aa28fa6773dca353f","glsl-optimizer/src/compiler/glsl/link_varyings.h":"b9dbe018f038df69763df2e928742ce81bbc6e3aaba26f50621e30a6d9aa6220","glsl-optimizer/src/compiler/glsl/linker.cpp":"40b1ecd5d4f6c7f13d5a87ce390561a51fdf6f3fcd9b2197b9c88b03a773ba94","glsl-optimizer/src/compiler/glsl/linker.h":"ecf94b4ad75ef461c27c557fda4bd25f34c91930822b8e1d729ec84520d4a049","glsl-optimizer/src/compiler/glsl/linker_util.cpp":"1663ad88e2a369305659aeeffaedb5bd752cf76340a2ba5797fc0bf600633cf9","glsl-optimizer/src/compiler/glsl/linker_util.h":"6db788daf9c8e87ae2764b61a8b37ebe419e69c1b82ddee01986e37c978c6993","glsl-optimizer/src/compiler/glsl/list.h":"b1f46ce0e552fe7c45b2a19408a9d97662e23e4b182ab335491c26f8cf25886f","glsl-optimizer/src/compiler/glsl/loop_analysis.cpp":"57ecd573477c68091c7cc99537faa7139a8f395935e3d4f10144cefdefb5a611","glsl-optimizer/src/compiler/glsl/loop_analysis.h":"a85f045a038ee5b5176063e85d7988865862c44ab0580f771b993a042d0b69cc","glsl-optimizer/src/compiler/glsl/loop_unroll.cpp":"bd4292ea2809f5a669bcb76ceaa1ac365772dcd638c579c3ed10275214901a54","glsl-optimizer/src/compiler/glsl/lower_blend_equation_advanced.cpp":"8cfbef140d9c4b4d2f57bfa05c9c374d31a121d0f87afce94333f049023b654a","glsl-optimizer/src/compiler/glsl/lower_buffer_access.cpp":"1ae221c3c7a95aeb867207e7a742be635f91b406c157747bfd6ddf10274d97fb","glsl-optimizer/src/compiler/glsl/lower_buffer_access.h":"807886953a576a323591798cbca5e2df24295ea893b28affd8ffb5926cebaa04","glsl-optimizer/src/compiler/glsl/lower_builtins.cpp":"4d81afc32cf58e1481fcb5e42888ab93dbe6820310a20ff7a9982b77b2152d9b","glsl-optimizer/src/compiler/glsl/lower_const_arrays_to_uniforms.cpp":"608403f0eeeedf21cfcd3014116e0f44e28cbdf6c4c32aac7e613e64e30205e1","glsl-optimizer/src/compiler/glsl/lower_cs_derived.cpp":"179905cd47a294122adeb5b0abfed6f2f67782dcde21b544d1ee2c1985154e66","glsl-optimizer/src/compiler/glsl/lower_discard.cpp":"3b361b2db0004d544d64611cb50d5a6e364cf6c5f2e60c449085d7d753dd7fb0","glsl-optimizer/src/compiler/glsl/lower_discard_flow.cpp":"f5c29b6a27690bb5c91f196d1a1cf9f6be4f1025292311fe2dac561ce6774dee","glsl-optimizer/src/compiler/glsl/lower_distance.cpp":"a118c85493d5d22b2c059a930c51a5854896d4b1dade76598eaa985e5a3dff8c","glsl-optimizer/src/compiler/glsl/lower_if_to_cond_assign.cpp":"469e617757fd1728709cce021aac5c8da05ee503bf5366977bdc4ef7a6d83950","glsl-optimizer/src/compiler/glsl/lower_instructions.cpp":"6ff5c396abe40d8a2145d571e99e2bbe9143393e15aafc28adc2803a01d821b6","glsl-optimizer/src/compiler/glsl/lower_int64.cpp":"d1ed41196880dd53c7b13e2782f9423f8442bf1d46186e8be92b1b66218a83ee","glsl-optimizer/src/compiler/glsl/lower_jumps.cpp":"34de7b493f281589fb0c2c0f6e885d0a0fabbe7a4e97a73de374dd714777a58c","glsl-optimizer/src/compiler/glsl/lower_mat_op_to_vec.cpp":"dff7a308edc4846c348ed4225c6699a9c75abac68d88f41f85954276552779f4","glsl-optimizer/src/compiler/glsl/lower_named_interface_blocks.cpp":"16063ac127bff75a68272070ab11c21c25101edbff62b4c68f4983b4cd941af0","glsl-optimizer/src/compiler/glsl/lower_offset_array.cpp":"3b00773399135aea85746a5a68b96ef000bc6841be1a2c8e6f25c516628b0949","glsl-optimizer/src/compiler/glsl/lower_output_reads.cpp":"a0fc9975d5aa1617e21fc6c353659a9802da9e83779a3eef4ec584f74b4dadc5","glsl-optimizer/src/compiler/glsl/lower_packed_varyings.cpp":"7550099d4ae123d71541c2fc88bc04fbfe9271ec75d7e210987d1c8cac3cf3ea","glsl-optimizer/src/compiler/glsl/lower_packing_builtins.cpp":"79a13d161fe505a410ab948d92769395708693ec888153630fa240e5b97e356f","glsl-optimizer/src/compiler/glsl/lower_precision.cpp":"f82a185b879872b977a1787d8061b9a80bc4cf8db1b970db6efba2ad9cc20fa2","glsl-optimizer/src/compiler/glsl/lower_shared_reference.cpp":"ea2dccf50a83bc19391bf6b7ab6aa53c0005f427af4066d25140340af9a4beef","glsl-optimizer/src/compiler/glsl/lower_subroutine.cpp":"f69fa53650eeb6f2944fce4d36a6e0a423e6705f3a3bd3389c7fadb83cfc8802","glsl-optimizer/src/compiler/glsl/lower_tess_level.cpp":"b196c9d424c0569f3e85d75c2d125af21566cb113d69036db87c0990703e0fa7","glsl-optimizer/src/compiler/glsl/lower_texture_projection.cpp":"4d247f244272adc8250fd888d8d932a140dd5de4d1efc7a58492c3c2b8291527","glsl-optimizer/src/compiler/glsl/lower_ubo_reference.cpp":"89bdbc6c1669230c644c0857db1ce2781ec61d349ecd08c7914146e1f4750a4a","glsl-optimizer/src/compiler/glsl/lower_variable_index_to_cond_assign.cpp":"fce930f29ac9405b297d1f749d68f59506b89c70b4ee1b1ab8cf49a34cc71ecf","glsl-optimizer/src/compiler/glsl/lower_vec_index_to_cond_assign.cpp":"3c67d851a11a55fad1c49a550f3a0cfe50892d33a3f238ce266cd829eba510a8","glsl-optimizer/src/compiler/glsl/lower_vec_index_to_swizzle.cpp":"f5ec666b73e1415cbab32519a53605ed385f3b03e889560373dbce69dda5000e","glsl-optimizer/src/compiler/glsl/lower_vector.cpp":"f7c13f5572ebe09b6a71553133b2cf003cd4b77b9657600672ee3b21bf890725","glsl-optimizer/src/compiler/glsl/lower_vector_derefs.cpp":"b05793da6dd620a531b43df5af8b2ecbc37b9db0c88910f5724ea10bcd057e19","glsl-optimizer/src/compiler/glsl/lower_vector_insert.cpp":"fee772ec17eea5e86a529bf9c5fa2ee0d29a5982bb75ebc6d68ed36cd19aa299","glsl-optimizer/src/compiler/glsl/lower_vertex_id.cpp":"690e8715182e03fead5cc5a35251fb4f41b357e4c71a1dfbc4bd7be19862b56d","glsl-optimizer/src/compiler/glsl/lower_xfb_varying.cpp":"58c0e8b270e4bbde54250be03cdb2f36966bcafb785372ad2e2b786835df7f9f","glsl-optimizer/src/compiler/glsl/main.cpp":"ae5e88abbbc8a12f769e1296bad938b9d7398cc6da0d3d0caeceeeb876536850","glsl-optimizer/src/compiler/glsl/opt_add_neg_to_sub.h":"f5054944bfd068810629080d0ea11df78b3f57a8f86df75e13ca50157ad1964d","glsl-optimizer/src/compiler/glsl/opt_algebraic.cpp":"25f45b20e1972ee8c789177a1aeda6e4286c25db2eae3a43ff83029ae64969c0","glsl-optimizer/src/compiler/glsl/opt_array_splitting.cpp":"19d3ce0e815438f4df9ab2890e767b03a4f3f191b53bb30c0217cf2ae6a95430","glsl-optimizer/src/compiler/glsl/opt_conditional_discard.cpp":"0e44e0e126711a3725c1f3a2aa65ff03c381fed08680ffc30101aae60f716c4e","glsl-optimizer/src/compiler/glsl/opt_constant_folding.cpp":"a088d04d9b45f9e55e235835648f614c89b7803c03a6d4f6a6d1a6bc1f0228bd","glsl-optimizer/src/compiler/glsl/opt_constant_propagation.cpp":"8a9440d77ecd6dcf13e683cbb99943aab6311c8fd4b5f6a9189a8d4f270746f4","glsl-optimizer/src/compiler/glsl/opt_constant_variable.cpp":"63d3ccd4dd09f19c9cf1a2f51592111bed41284504f29f3c0de4cadebc439a37","glsl-optimizer/src/compiler/glsl/opt_copy_propagation_elements.cpp":"ffa0f50863995e0d2e31f55a52e82319edc71e520987bebd7f7e561ea331c64b","glsl-optimizer/src/compiler/glsl/opt_dead_builtin_variables.cpp":"84e8747b948232f01dd56b428b9315f96f9511f605f240119fc446fae28981a9","glsl-optimizer/src/compiler/glsl/opt_dead_builtin_varyings.cpp":"761523e88f5b3ba785170f4d7205e94fa99acb7e74d29efbe40e1c010e1dbdb3","glsl-optimizer/src/compiler/glsl/opt_dead_code.cpp":"fd1ba2da7337d4e5dad17f5c2d73d9cc8880305f423e85d64cf94553588fa401","glsl-optimizer/src/compiler/glsl/opt_dead_code_local.cpp":"969a598b4df322baf222258a66cd64a326ea20e5b3125be9d8d1771f522c69e0","glsl-optimizer/src/compiler/glsl/opt_dead_functions.cpp":"774cae6536d02edf26e996a2a895e1f62d5098f16dc96b44798b4fc731a9a95f","glsl-optimizer/src/compiler/glsl/opt_flatten_nested_if_blocks.cpp":"3696a5c55f02e20056e085bc2714f73ac992f221b6f3387d655068e86b512046","glsl-optimizer/src/compiler/glsl/opt_flip_matrices.cpp":"44f0fe05b49329667671f88c96dc86ab3fe1459ff7b87f2b2d88de2d49829f9f","glsl-optimizer/src/compiler/glsl/opt_function_inlining.cpp":"fb56a33c90419a01676b57cbd91d0674a54cca40e6defaacc88dd33facebc131","glsl-optimizer/src/compiler/glsl/opt_if_simplification.cpp":"ac406eb35e379c357641d6c5749f50c65961455924d3dc884e2b90046fa92c5c","glsl-optimizer/src/compiler/glsl/opt_minmax.cpp":"8abd59d3b14ef60ff14a9c69660e6945f5cf10b97edb4afebe56be3f81d96316","glsl-optimizer/src/compiler/glsl/opt_rebalance_tree.cpp":"8bb6329dc0f299042368fc81934c2df019b45ab9f7aa0415d4e57b8d1ff98c9f","glsl-optimizer/src/compiler/glsl/opt_redundant_jumps.cpp":"222c73e2ac7a938ebb6428cc6c780c908ff6156d8ff935b04fed93a48fc10496","glsl-optimizer/src/compiler/glsl/opt_structure_splitting.cpp":"2edc79cc13f3177934e0443ad62f5976a1991f01f86ea303a803434849b13a47","glsl-optimizer/src/compiler/glsl/opt_swizzle.cpp":"015d0abddfe507f67c4b96c82988d861d018ededf7bf055e2bcbe9ea92da694e","glsl-optimizer/src/compiler/glsl/opt_tree_grafting.cpp":"46d28ac983ea244a4315bdc0e8892979ec4d1f9b9a96ac8a8a08006d9bc5e878","glsl-optimizer/src/compiler/glsl/opt_vectorize.cpp":"d80ee43bb97d9f016fb9c5e1e06f5b2afa569811f368ba067be794ec11d085fb","glsl-optimizer/src/compiler/glsl/program.h":"2982447e2abd35371e273ad87951722782a8b21c08294f67c39d987da1e1c55f","glsl-optimizer/src/compiler/glsl/propagate_invariance.cpp":"080943e21baa32494723a2eefb185915d2daae1f46d6df420145c5ad6857e119","glsl-optimizer/src/compiler/glsl/s_expression.cpp":"1ced972bc6ecc8eab4116ea71fb0212ab9ae5bcc0be3b47aa5d9d903566b3af1","glsl-optimizer/src/compiler/glsl/s_expression.h":"65b847e30e22a809b57d0bc70243049c99d9c6318803c5b8d0826aba55dc217e","glsl-optimizer/src/compiler/glsl/serialize.cpp":"be0eb4251348a9d921acb839a5c48c6023a2e9d116d602bb0432787ab623655d","glsl-optimizer/src/compiler/glsl/serialize.h":"57425732eba1233d928e5f07f88b623ce65af46b3bb034bf147f0a4b7f94f9a1","glsl-optimizer/src/compiler/glsl/shader_cache.cpp":"e0c5c433f2df3fccdf1d61281bfcb0ee5633433339b97c697d64db99611cbaaf","glsl-optimizer/src/compiler/glsl/shader_cache.h":"9217164d8d7f54aca0fe5922c7187095a6ae0cb703b196b79805aeef07a7e697","glsl-optimizer/src/compiler/glsl/standalone.cpp":"8e6c416a14d631261917a5fe4cc91880c287b22b2dfd70eb22028289a8fa5364","glsl-optimizer/src/compiler/glsl/standalone.h":"a7c397d1dfdd1e7fb2cfe99db35cd9df93251e642059208533202b7f20497f83","glsl-optimizer/src/compiler/glsl/standalone_scaffolding.cpp":"970d14b7a9d58e5270321f97bf5d57795558b1c570a56678e04a65b26c60bf4f","glsl-optimizer/src/compiler/glsl/standalone_scaffolding.h":"d921a617ea82b9e49413314492a645c44356de503581b1be3f1b57de236e480d","glsl-optimizer/src/compiler/glsl/string_to_uint_map.cpp":"d824bf5b839bd39498dc9e457103cdbe3e5289ddf7564107c27b1505948dd31f","glsl-optimizer/src/compiler/glsl/string_to_uint_map.h":"e2f18e66359c9d620e085de7f4a334a47df9c66e65a5bfe8b734c627bec04104","glsl-optimizer/src/compiler/glsl/test_optpass.h":"b27b8f35f5387e7ce4982bb51c7b63ccf14f91757f3108a5d02ed006925bb8a0","glsl-optimizer/src/compiler/glsl/xxd.py":"376484142f27f45090ea8203ae2621abf73f06175cb0ee8d96f44a3b9327f4bd","glsl-optimizer/src/compiler/glsl_types.cpp":"044bb6754f45419a3151e7a25c39202a82009ae3c6bc54ff7f0bb4258a5deefe","glsl-optimizer/src/compiler/glsl_types.h":"fd899a42f34ddeb8601bc3cd6c5e3aed82fc8aef4042dde1b39b3c01e1dcc219","glsl-optimizer/src/compiler/shader_enums.c":"436bff5216b11b0980bdfada5885fc6ac9afa2037a3027fcd6eea2a8635597ac","glsl-optimizer/src/compiler/shader_enums.h":"13220442a5c02e83540cf2c0ad4f8417b2fbda5f2586dec4e92082544c937cdd","glsl-optimizer/src/compiler/shader_info.h":"4c5453e81197ca83593ee4f365074b23530f2ab21c78e1733b63dec6f344c12a","glsl-optimizer/src/gallium/auxiliary/util/u_half.h":"3c2b37bda3ccb64387e44b723d29cf9046decab1a893bf42d842e9603398bdee","glsl-optimizer/src/gallium/include/pipe/p_compiler.h":"c75620096ce8523dae90599e50aa2ef6468d3b0e368a77795edeb20dd1abfc0c","glsl-optimizer/src/gallium/include/pipe/p_config.h":"a27692fc35f9e55df3224b7529e66b3001e911e94e6bc5f8f569e493e1ee3fb7","glsl-optimizer/src/gallium/include/pipe/p_defines.h":"be26d68c0acc67c5e44788c6299716a9eee415fd81d7d747e3738a829e3b6b38","glsl-optimizer/src/gallium/include/pipe/p_format.h":"5674215fc41d27496f037cf837717daefbf23ebb38d40ace7c0c414bc08182b0","glsl-optimizer/src/gallium/include/pipe/p_state.h":"d600593aba5f5a17072a6c38f6baa81e01c7994b0174250f7e433bb41684b702","glsl-optimizer/src/mapi/glapi/glapi.h":"73632a625c0ddabc401205e8b5a81eb8af8506868efe4b170d7979ec3619e9c5","glsl-optimizer/src/mesa/main/config.h":"5800259373099e5405de2eb52619f9de242552a479902a3a642a333c8cb3c1e7","glsl-optimizer/src/mesa/main/context.c":"2f3208473d99c94f734b1137ba91889d4a1babb9e7534bf1dc85d851ee98274e","glsl-optimizer/src/mesa/main/context.h":"cc7e4194797db9d007f01884e23d786c453b3860821f7f2ddcdf0f1bf3f8ffb1","glsl-optimizer/src/mesa/main/dd.h":"6a964acd06b6c2d88700e69fb75fe3c6b3b3d45bbc41db24f3f897a29695fe0c","glsl-optimizer/src/mesa/main/debug_output.h":"7312422e90b8c0e34028ac27280e438139b5cba525c99deb3ac883cd3d87e452","glsl-optimizer/src/mesa/main/draw.h":"7eaef3a9e27a60ea6f7937109bf3a6190b831162fde0479abb12077ce27c353d","glsl-optimizer/src/mesa/main/enums.h":"87d562a6764f51c014a2274fa7c3aca17c04441537ddd56b2554f13c6fffea92","glsl-optimizer/src/mesa/main/errors.h":"c79444b5df289c90fbb22a33b2d0c23917d9fc4510960088f0b79e53bb56b1b2","glsl-optimizer/src/mesa/main/extensions.h":"a38b2f87cc93c513994281350d69e06c84ff8eded5313ec0a1be33f375e0ebbd","glsl-optimizer/src/mesa/main/extensions_table.c":"17642d1a8c9a0bf2bd61060052d33ff14a005d2b962e6cf91465797a50851e85","glsl-optimizer/src/mesa/main/extensions_table.h":"2c879571c238d2e14461031ac740372fd0f9ac3a34c0d5541bb9b7ed4c0376c8","glsl-optimizer/src/mesa/main/formats.h":"02e2f7ec3e39286cf9f27e2641043e6df8ecb1dfde9e643313210e214af2a929","glsl-optimizer/src/mesa/main/glheader.h":"58217b33eead6aa6b23cd4a291cefeaa6cb84e465f4960daffca97c44d6d1c35","glsl-optimizer/src/mesa/main/glthread.h":"51fb2711f77e7eafcfc52d29d5b844978832b24c930d88accd48d143a6eb9c6f","glsl-optimizer/src/mesa/main/hash.h":"7e7f782034c16a8e693de48e00c31d4a90b0129f4029fd074033d7d16ccbe718","glsl-optimizer/src/mesa/main/macros.h":"73d15ddfd64f2b57b9b2ffeeb993b9c2c0899a80563e9d6ff337b11ccbe6eee5","glsl-optimizer/src/mesa/main/menums.h":"5dfac0e2279d60b0cd0c7b9fc2a5021620d0f6282ed2e738c420214e3af152d3","glsl-optimizer/src/mesa/main/mesa_private.h":"edda678b93438944279a551f663b8858ad84814a9fc88ba9672ef195599c24ae","glsl-optimizer/src/mesa/main/mtypes.h":"6efddefa099e4d2e3fdd97f0055644f47aba21711385edfeabc2d9b0676f2eec","glsl-optimizer/src/mesa/main/shaderobj.h":"9f0dfe96d0c2154201adef942bd36053533ac7b2492fb3786acda5bea514c75e","glsl-optimizer/src/mesa/main/uniforms.h":"4e331e6ad6e9cbded978b4082dbe0a57c1f8f01327446bb6892bfc179976c38b","glsl-optimizer/src/mesa/main/version.h":"9d0a13a758099302dc55cf7d045791834a89b0f9d4cf17b2692259b369a8a9a1","glsl-optimizer/src/mesa/math/m_matrix.h":"a37b19f182e070db3df93b0ede43c22fb8be8c2906504133ee6dbd7db1185d8b","glsl-optimizer/src/mesa/program/dummy_errors.c":"1820e305515b4c5e041f5e1623266a48ec8f076a155310be7d60637101f593e4","glsl-optimizer/src/mesa/program/ir_to_mesa.h":"b47f58d22e3ca2ae42d52501ea769d15c4476834944fa97eeccd3a3439211d00","glsl-optimizer/src/mesa/program/prog_instruction.h":"ab3832152a7e144b59e5a2264b2c29db56d93be31e76bbd958527a56771b40eb","glsl-optimizer/src/mesa/program/prog_parameter.h":"ba18c743284eadbc837c2c364c73e5d372321a7637a76e589d8d39fe8b5de225","glsl-optimizer/src/mesa/program/prog_statevars.h":"fc413698f84bc52d45fdeae0471934ee9904bfb7eac1a2b5f70446e54bcbbdca","glsl-optimizer/src/mesa/program/program.h":"1f01026a4eff440a3f122fd9b519d03546fe7f7d8be60dca834e95a2f8fbbfd2","glsl-optimizer/src/mesa/program/symbol_table.c":"6611cb9f078035bf5ff8c9112093a6c7d99f8af99a3931d0c07f227cc72283ea","glsl-optimizer/src/mesa/program/symbol_table.h":"631dc35ac48d5e87962d45507461920f6575610960ffcc42a08cefeb43300cda","glsl-optimizer/src/mesa/vbo/vbo.h":"6eb1dcd9a08c92f276c5fe08da184ff9d455d1be421913b8ad732a7b65e858fb","glsl-optimizer/src/util/bitscan.h":"9e49e694e6b34fe035bc685f32588827eb8cbe7d82878963c7ab52843e1c16aa","glsl-optimizer/src/util/bitset.h":"c40f78515c6230fed18345c6751ce33833a49da7a27901c7e6d7340cbdcbc5e7","glsl-optimizer/src/util/blob.c":"8f729846f66efc9c15485cc5fc24c6ec861fc1fecb2f652573f2a237d481b791","glsl-optimizer/src/util/blob.h":"93e1eaac866b9a7cd6fc03b533c18fb2edf0e97f03395eff4f3a605c4fc14d0c","glsl-optimizer/src/util/compiler.h":"79e3bf40a5bab704e6c949f23a1352759607bb57d80e5d8df2ef159755f10b68","glsl-optimizer/src/util/crc32.c":"2f3467a046b3a76784ecb9aa55d527698c8607fd0b12c622f6691aaa77b58505","glsl-optimizer/src/util/crc32.h":"59bd81865e51042b73a86f8fb117c312418df095fed2d828c5c1d1c8b6fc6cd4","glsl-optimizer/src/util/debug.c":"c3d68e9752ccc19e66c669562cd113cf1d0ac83cbb30174789e7fb8d1df58f9c","glsl-optimizer/src/util/debug.h":"50068d745c4199ccbd33d68dd4c8a36d2b5179c7869a21e75906ddd0718ca456","glsl-optimizer/src/util/detect_os.h":"343a8790d17a3710c6dd015ee367f84e3902ff3f2e36faca2bf93f9d725d3574","glsl-optimizer/src/util/disk_cache.c":"f533937e5a4fffe76e2739ef4b6b1e1da097d96d63eb808e68ebbc7027641c23","glsl-optimizer/src/util/disk_cache.h":"e83314fb14134a8e079b15e470a6376ba5a8253701f048c890a62b7e55d64bc8","glsl-optimizer/src/util/fast_urem_by_const.h":"e108fce804616c47d071dfe4a04163eec1126e448ed1aa89abb6b3a6d772bd5b","glsl-optimizer/src/util/fnv1a.h":"ab2596f19c6adf431ae27618f62c5743e24ad23ef83bb359a4c4c218245ab459","glsl-optimizer/src/util/format/u_format.h":"4cdfc0c59cbc99a092e5ec5a396910f2d93b9643e5d8141050b011e66f11e45b","glsl-optimizer/src/util/futex.h":"26f7c9d86e9ffef4c0fa2761f1aaa1918337302e20bd6ca10e61dc3c47356deb","glsl-optimizer/src/util/half_float.c":"11bc2584493d5d9d46e8c8a619a0307cf150bf5ab5d0f96bb764b061dc37a00e","glsl-optimizer/src/util/half_float.h":"7f7c380f126da1400a91758cc0392f24bf967bce1672890b62be26fe9fbd922b","glsl-optimizer/src/util/hash_table.c":"0ca40352e35dedab0a84c64c903f1b16d47e950bb5f43b4d22bb57d499bfea6e","glsl-optimizer/src/util/hash_table.h":"217191bb360592e2232f187473c10287d2cda8ae6fa5c53d0ef74c8c206118b4","glsl-optimizer/src/util/list.h":"9fab03c6a78186bb5f173269f825f6ce976b409d931852e3d93bac632e07989a","glsl-optimizer/src/util/macros.h":"63faf65b51058c483b17f1f77da51d1c53c8beab52678cb6bd01f1228a63b6b0","glsl-optimizer/src/util/mesa-sha1.c":"00c692ec353ebc02c06c57c5a71de0ab7a119f86a4146f452e65ec87e4944417","glsl-optimizer/src/util/mesa-sha1.h":"bff4c29f4bf7cdbcefb30fa0c996a7604a380eba8976467c2a60e7cd328f7e26","glsl-optimizer/src/util/mesa-sha1_test.c":"25da89a59d51469f77b4c468ca23ffdce0a7a1166a70b6cc23026a6800b0143c","glsl-optimizer/src/util/os_memory.h":"64555faf1760ae6954f42c83727c38dfc4c278e9152115779ffaad58b42adacf","glsl-optimizer/src/util/os_memory_aligned.h":"12d86fa94be38c13f7eeebdf313795e1267dd5a7187d2f0072e0e896f41702f6","glsl-optimizer/src/util/os_memory_stdc.h":"07360363b88c927065e10df71bebf6c8a0cc3b9167c9dfce55f2d65f11e6f787","glsl-optimizer/src/util/os_misc.c":"a9936e613ec84803abd59ad47c192c8e3939993c950ac91973fdc4cec1801bb8","glsl-optimizer/src/util/os_misc.h":"cc68eb12e05b5e749c54298cb4a6f4cd20cc5af7db3403e70b3c27b56090c740","glsl-optimizer/src/util/os_time.h":"73e775f7335244ff5964c678c27eedf1aea6abea44c4169d327ea8c7ce4a3a88","glsl-optimizer/src/util/ralloc.c":"4b51189595ef67bcef52c40cbf654d969041dbd15e15d4a893ad494ac060aeca","glsl-optimizer/src/util/ralloc.h":"e573c45875ff1530f0dbee9a93ae55535fdac8d5cc88a79ebc327c688824bde5","glsl-optimizer/src/util/rounding.h":"0450722353caf83de07e67f335949dbe95fe53b534052d4ee9d28d2781387614","glsl-optimizer/src/util/set.c":"86f8c9a830bead5a5a79bc970b0ff97809312af07b3beb39ef9d90af04d40a1b","glsl-optimizer/src/util/set.h":"3e39ca161e7ed4ec7c436cc9c7919ed9a55ed1b71edbf2caf6f9bcfd9bc578ed","glsl-optimizer/src/util/sha1/README":"00af7419af05247081858acb2902efd99fcda2ce16e331079f701645bb3729c0","glsl-optimizer/src/util/sha1/sha1.c":"1403bbe0aad42ba3e6be7e09f7cad87a6a8c4ad5b63962f7b92b9f37d8133b04","glsl-optimizer/src/util/sha1/sha1.h":"68d9f240eab2918026ecdf22be36811abbd4f1389f6c36e31258041aeaedd247","glsl-optimizer/src/util/simple_mtx.h":"12c6c3c4b7db9168bc656d5b3c65912075084d2b388c415d5c3d3f5953a9d6c7","glsl-optimizer/src/util/softfloat.c":"a97e51a96fe5e6a052c02aa6bbec683fe73fb88a8c087d9c930503e2120d8a2e","glsl-optimizer/src/util/softfloat.h":"66664b0250e83bf5dd4cc743acd119d076efcea624a0eab3d6b60718e6ee8811","glsl-optimizer/src/util/string_buffer.c":"63a1d1b1e34926c88ea00159cafbcd56568b805c4f64d1e8c97169fe313921fc","glsl-optimizer/src/util/string_buffer.h":"7b88d1b1d9c6cfb8e93331813535c127289437c75f822029e9a3bca8ea6b52ee","glsl-optimizer/src/util/strndup.h":"0273c4fdb7482cd7746881a63d3998648c6d63415ba85af1d1860f0e0dc504c6","glsl-optimizer/src/util/strtod.c":"5cf610d8a37373cf37cfb7aae903525d943b2674b1f32594c70b0eb19a8c9697","glsl-optimizer/src/util/strtod.h":"237396def4e264d35ed4bedea00ef9a4ceab6d7a11a18c770d9747d22c69ed2d","glsl-optimizer/src/util/u_atomic.h":"c02e809526c6c09ba8fe51f50b2490d1b6c8e5c7f3c4031ae958250d098fc3bb","glsl-optimizer/src/util/u_debug.c":"8c060e379b816618f3dd22c9ea523c68b9425c76c36a7dfe5d6d375b337f5f4a","glsl-optimizer/src/util/u_debug.h":"e11e26edd9b9e4e6f8e6a435e69f4d9edda27e9a379f68f4c82ea2525aaaea68","glsl-optimizer/src/util/u_dynarray.h":"853d0fa6ff2261614488be624deb8a2b01e57c2c8eabc28578cbeed4ccc95694","glsl-optimizer/src/util/u_endian.h":"3ccea7e529740318d8a4b05c00db3adc9d1e292a52bdc56a05c9fae99209720f","glsl-optimizer/src/util/u_math.c":"c868a8c0886dc78f1b06b13404ba8b253090449045774dd56893ac9d75795184","glsl-optimizer/src/util/u_math.h":"a04e32e126db016413f9de0a2028a3e71737137463b1289eae576f884b06fcf1","glsl-optimizer/src/util/u_memory.h":"c5db17c724c70283ddbe04165722f6988d4e0eb9aa3602ae472feff016649af9","glsl-optimizer/src/util/u_queue.h":"92930ce236c0528a98b695f5cea8c5c6aa9683beaf71a2227bdc5d33d1b21506","glsl-optimizer/src/util/u_string.h":"c5a2f4ef576d1547bda12c4ea219179fefa54414977743ac094abcaf696ef6ca","glsl-optimizer/src/util/u_thread.h":"00b708459b27f9910d18db92c18cc65cfc618ac2b3cd144e45f8640057b10d58","glsl-optimizer/src/util/xxhash.h":"2f2aff2fc6c0c929f52cf6ae7314122124c5be026d41ad1c357608383c4a37ad","src/bindings.rs":"79993db2058bde39f99ef483d02560d33b1cb882f6a552319e8b86eb6f9021e1","src/lib.rs":"04be1554cd829eb40864b06d80b491dd48117a4e3a601c7d482117f7a0391e67","wrapper.hpp":"f3ea34cc496f7d90b9bfcada3250b37b314c3524dac693b2ece9517bc7d274ac"},"package":"8ba4741358604ca0848c27ecc069d68e62e11cde81e38aac1da3c54b79ab5adf"} +\ No newline at end of file ++{"files":{".gitmodules":"ffc0cce90e856d4f4bdb3bd3c950c9e59501a45ebd5022b91cfe8c07c79ef1ac","Cargo.toml":"cd1efadd7a6d266acd8c412df59df8c8beec33e393567d4a5b236a3315f35d93","README.md":"4468e08c64c19977707d792bfab0080e35ff927b64990eab77873f8ba056ba1c","build.rs":"92e29699487c21389fc823c50b410cfbfc74cc774265d24958489909ee48a076","glsl-optimizer/.cargo-ok":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","glsl-optimizer/.editorconfig":"dca7ff05a95f608849c4dc640af7f83a0f415618e327a2ecb6a0afa0d9d2bacb","glsl-optimizer/CMakeLists.txt":"42ce94744e82ffa000da8b64d81fc140e293b9f5da7dd4cf6b49e7404a2448d9","glsl-optimizer/README.md":"b18eef11a92d267d88a937b1154f7670ee433c730b102fdf7e2da0b02722b146","glsl-optimizer/contrib/glslopt/Main.cpp":"14ba213210c62e234b8d9b0052105fed28eedd83d535ebe85acc10bda7322dd4","glsl-optimizer/contrib/glslopt/Readme":"65d2a6f1aa1dc61e903e090cdade027abad33e02e7c9c81e07dc80508acadec4","glsl-optimizer/generateParsers.sh":"e8f7af58b34d4e46b475e848a0af1d9926bd1d9aa52727b4a80cbf13d1c2ca47","glsl-optimizer/include/GL/gl.h":"1989b51365b6d7d0c48ff6e8b181ef75e2cdf71bfb1626b1cc4362e2f54854a3","glsl-optimizer/include/GL/glext.h":"2ac3681045a35a2194a81a960cad395c04bef1c8a20ef46b799fb24af3ec5f70","glsl-optimizer/include/KHR/khrplatform.h":"1448141a0c054d7f46edfb63f4fe6c203acf9591974049481c32442fb03fd6ed","glsl-optimizer/include/c11/.editorconfig":"f96a2354e5f2b90367d643e6d9e980ce76278d4d47afd8b2713b595753aa8b4b","glsl-optimizer/include/c11/threads.h":"56e9e592b28df19f0db432125223cb3eb5c0c1f960c22db96a15692e14776337","glsl-optimizer/include/c11/threads_posix.h":"5fa592653213459e2cce70b430715246d53fd1a10c1866acf427874530a69f92","glsl-optimizer/include/c11/threads_win32.h":"95bf19d7fc14d328a016889afd583e4c49c050a93bcfb114bd2e9130a4532488","glsl-optimizer/include/c11_compat.h":"103fedb48f658d36cb416c9c9e5ea4d70dff181aab551fcb1028107d098ffa3e","glsl-optimizer/include/c99_compat.h":"aafad02f1ea90a7857636913ea21617a0fcd6197256dcfc6dd97bb3410ba892e","glsl-optimizer/include/no_extern_c.h":"40069dbb6dd2843658d442f926e609c7799b9c296046a90b62b570774fd618f5","glsl-optimizer/license.txt":"e26a745226f4a46b3ca00ffbe8be18507362189a2863d04b4f563ba176a9a836","glsl-optimizer/src/compiler/builtin_type_macros.h":"5b4fc4d4da7b07f997b6eb569e37db79fa0735286575ef1fab08d419e76776ff","glsl-optimizer/src/compiler/glsl/README":"e7d408b621c1b605857c4cab63902f615edb06b530142b91ac040808df6e22f7","glsl-optimizer/src/compiler/glsl/TODO":"dd3b7a098e6f9c85ca8c99ce6dea49d65bb75d4cea243b917f29e4ad2c974603","glsl-optimizer/src/compiler/glsl/ast.h":"3e68ff374350c49211a9931f7f55a485d8d89fc4b21caaffbf6655009ad95bf8","glsl-optimizer/src/compiler/glsl/ast_array_index.cpp":"92b4d501f33e0544c00d14e4f8837753afd916c2b42e076ccc95c9e8fc37ba94","glsl-optimizer/src/compiler/glsl/ast_expr.cpp":"afd712a7b1beb2b633888f4a0911b0a8e4ae5eb5ab9c1e3f247d518cdaaa56d6","glsl-optimizer/src/compiler/glsl/ast_function.cpp":"7cccd240c080f5ab2ed73f5f1a6e1ce9ae9583a209338c026db8f76272a352f2","glsl-optimizer/src/compiler/glsl/ast_to_hir.cpp":"256de69fbedf79fd0711b0e0edc2dc061e6bdf0b04996b05f9237036a8e375d9","glsl-optimizer/src/compiler/glsl/ast_type.cpp":"8eb790b24b26dfb72bdc333744b566c26d8464c5d47d20eae659461f5c4899f7","glsl-optimizer/src/compiler/glsl/builtin_functions.cpp":"09731e48472b42038aeb8b8f06fecc2d919d2333a088b52b06a9711d8afb9732","glsl-optimizer/src/compiler/glsl/builtin_functions.h":"a37cad7ed09b522c5b8bec7b80115a36846e7ba6e0874a2a858e32f7f202c665","glsl-optimizer/src/compiler/glsl/builtin_int64.h":"619def6f3aebf180da3944ef08f159ab12a58b24767e41d8b985ac37ded54d62","glsl-optimizer/src/compiler/glsl/builtin_types.cpp":"afec060b62d6f3b00bfbf94e9fa5f96341ce096c128d1eef322791e6ed9cea4d","glsl-optimizer/src/compiler/glsl/builtin_variables.cpp":"6563bfb1345cbca4c77e00eef09ad152f3e1dc271d246a08c5ce9e1f4ce4250a","glsl-optimizer/src/compiler/glsl/float64.glsl":"1072fd888be48c2a7a5117cd2d92a65f034965a66375f598bb856bff5d7be766","glsl-optimizer/src/compiler/glsl/generate_ir.cpp":"e5f0175370a0d07f93c48d3f0f1b8233d12c64a7b02de02dcc753ef7b398ef0f","glsl-optimizer/src/compiler/glsl/glcpp/README":"a0332a1b221d047e9cce5181a64d4ac4056046fd878360ec8ae3a7b1e062bcff","glsl-optimizer/src/compiler/glsl/glcpp/glcpp-lex.c":"6ed9a66b752877aec847bf9e39e2126860552a5d5f225e8c2523d6155b51eea8","glsl-optimizer/src/compiler/glsl/glcpp/glcpp-lex.l":"15fa8afa3011865ff181a54bbd5e4ddccb4c9ec5a862c98366cd84b295dcf446","glsl-optimizer/src/compiler/glsl/glcpp/glcpp-parse.c":"03494f9ce1cb82260506e2559e73a3eeb622c4bd51b65eaa0a2c3351862bd4c8","glsl-optimizer/src/compiler/glsl/glcpp/glcpp-parse.h":"264d9a18421cde255ce34a0a62b3d8e73465359f0d167e64aa3973062aae5bdd","glsl-optimizer/src/compiler/glsl/glcpp/glcpp-parse.y":"fafb66e3a8f149d19e085f18a4273ba6d4c11af9e9a01d665cc784dddf97b79f","glsl-optimizer/src/compiler/glsl/glcpp/glcpp.c":"37ed294403c2abfd17fd999d1ae8d11b170e5e9c878979fefac74a31195c96b0","glsl-optimizer/src/compiler/glsl/glcpp/glcpp.h":"85ac8b444bcbd0822b66448a1da407b6ae5467b649f5afaf5c58325bd7569468","glsl-optimizer/src/compiler/glsl/glcpp/pp.c":"a52d94f1bcb3fb2747a95709c4a77c25de7eea8354d2b83bb18efd96976a4473","glsl-optimizer/src/compiler/glsl/glcpp/pp_standalone_scaffolding.c":"d11aeb3acfe966d1b78f1ee49804093f2434214c41391d139ffcb67b69dc9862","glsl-optimizer/src/compiler/glsl/glcpp/pp_standalone_scaffolding.h":"abbf1f36ec5a92d035bfbb841b9452287d147616e56373cdbee1c0e55af46406","glsl-optimizer/src/compiler/glsl/glsl_lexer.cpp":"272b9fc1383d72b81bfc03fa11fdf82270ed91a294e523f9ce2b4554bd3effa9","glsl-optimizer/src/compiler/glsl/glsl_lexer.ll":"2b57d9f9eb830c3d7961d4533048a158ee6f458c8d05c65bea7b7cfbc36e4458","glsl-optimizer/src/compiler/glsl/glsl_optimizer.cpp":"f8095d20629d0af70be930b0612e169edb274551a1d25a3cd1bf9995a11ce2e8","glsl-optimizer/src/compiler/glsl/glsl_optimizer.h":"22e843b4ec53ba5f6cd85ca5f7bad33922dca8061b19fb512d46f1caca8d4757","glsl-optimizer/src/compiler/glsl/glsl_parser.cpp":"126baf368d525aba301854e3d91ba60b5aee32e1102376af71416f32cb95ec48","glsl-optimizer/src/compiler/glsl/glsl_parser.h":"2ea9a50716098a8f7bef782d2a030d757b68da73afb01b4d4940d3e8381d44e8","glsl-optimizer/src/compiler/glsl/glsl_parser.yy":"6b1fd1576b29fce005dff744a6dbd0219e4c695c361d61864e1f3a8d6fa6b764","glsl-optimizer/src/compiler/glsl/glsl_parser_extras.cpp":"aad64b5b66467da650091430681e8c6a820cf3cadc4db3c160bf2f15875390ae","glsl-optimizer/src/compiler/glsl/glsl_parser_extras.h":"71fd0e92bbdb193dfb067d7bfdb1200d77392be2fbd0cbfc9ca89d1bb4c7e741","glsl-optimizer/src/compiler/glsl/glsl_symbol_table.cpp":"6660fb83c0ddddbbd64581d46ccfdb9c84bfaa99d13348c289e6442ab00df046","glsl-optimizer/src/compiler/glsl/glsl_symbol_table.h":"24682b8304e0ea3f6318ddb8c859686bd1faee23cd0511d1760977ae975d41bf","glsl-optimizer/src/compiler/glsl/hir_field_selection.cpp":"72a039b0fcab4161788def9e4bedac7ac06a20d8e13146529c6d246bd5202afd","glsl-optimizer/src/compiler/glsl/int64.glsl":"303dbe95dde44b91aee3e38b115b92028400d6a92f9268975d607471984e13eb","glsl-optimizer/src/compiler/glsl/ir.cpp":"ddeb4ced00afa00fc0e2b19c6120f0a37b8b05b4f8473fbb627ea9d7d13efe58","glsl-optimizer/src/compiler/glsl/ir.h":"990b1c74447c4eb4835353ccb0ed9aea644f97fc1129ef1739cd935075d85d2e","glsl-optimizer/src/compiler/glsl/ir_array_refcount.cpp":"8cdc1cffe01e42e0566fa2193a75f789628e8025ad1b82f0ee6f204451b7f9f7","glsl-optimizer/src/compiler/glsl/ir_array_refcount.h":"75f06ec81342b379096ca52e1dc0fd5f19a11ff8e9b58203c20628179d644c12","glsl-optimizer/src/compiler/glsl/ir_basic_block.cpp":"1e2920b1c0ecb08424c745c558f84d0d7e44b74585cf2cc2265dc4dfede3fa2f","glsl-optimizer/src/compiler/glsl/ir_basic_block.h":"81be7da0fc0ee547cd13ec60c1fcd7d3ce3d70d7e5e988f01a3b43a827acdf05","glsl-optimizer/src/compiler/glsl/ir_builder.cpp":"daba29c5a1efdd5a9754f420eb3e2ebdf73485273497f40d4863dadeddb23c0d","glsl-optimizer/src/compiler/glsl/ir_builder.h":"2822e74dd3f6e3df8b300af27d5b11ea2dd99d0e5e7ca809b7bbcce9833c483c","glsl-optimizer/src/compiler/glsl/ir_builder_print_visitor.cpp":"0fd7f92be11fb1482255541597018b56d7619925346504414404e46a60f4797b","glsl-optimizer/src/compiler/glsl/ir_builder_print_visitor.h":"799852adc3a0e54d04080655e7cebfa0d3bf5b6ffed5d8414f141380665d4db7","glsl-optimizer/src/compiler/glsl/ir_clone.cpp":"d897a4e1f5bbec4a6a2f15044c1be9a4d13899c73be77335b041049a4589aa5d","glsl-optimizer/src/compiler/glsl/ir_constant_expression.cpp":"78bd87ddb09db67f6c499067728d72aef4f16aa02721a99a4b769d1e0cfa9010","glsl-optimizer/src/compiler/glsl/ir_equals.cpp":"bca28533a6310b0fc152b56d80872368f1510dc62ed6e8ac199b9ffa7fac02e7","glsl-optimizer/src/compiler/glsl/ir_expression_flattening.cpp":"7e918d4e1f237eca01396004015865ce345afe32a876c9dbc6728576a1a7eae4","glsl-optimizer/src/compiler/glsl/ir_expression_flattening.h":"f45b66aa9497520e7e08e612d24b308477c34477fbd963ee9320eac664957f16","glsl-optimizer/src/compiler/glsl/ir_expression_operation.h":"cc9f10727dbd26cac506804f51456302c702650f9eeb59054a7e1575d5cf6687","glsl-optimizer/src/compiler/glsl/ir_expression_operation.py":"85011f325e5d4a3068e4e41b7ea62adbc1deddc9d225b7c69eea0f3b63fe727e","glsl-optimizer/src/compiler/glsl/ir_expression_operation_constant.h":"cf575663c4922de6dbee3d8bc7ab80d4a65fcc7ff2e994eb296961e76b761a79","glsl-optimizer/src/compiler/glsl/ir_expression_operation_strings.h":"a6826daf496a8b9e89885bc2a161ac3445d501b23c6e0ac33e2c01b506b273c8","glsl-optimizer/src/compiler/glsl/ir_function.cpp":"7537365fc0fbe4b37a26b9a2146cc64d3e9a774d60eab63b65002ad165ae8fc7","glsl-optimizer/src/compiler/glsl/ir_function_can_inline.cpp":"faddbf112187a048d502716a3fb82570a322299ba2a3abd79388382c82040bfc","glsl-optimizer/src/compiler/glsl/ir_function_detect_recursion.cpp":"9176973eaf5c0a984701f953bb7a80f37dca43d59b5bce50fc69b3f02f2902d7","glsl-optimizer/src/compiler/glsl/ir_function_inlining.h":"9739493f99c489987d650762fccdd3fb3d432f6481d67f6c799176685bd59632","glsl-optimizer/src/compiler/glsl/ir_hierarchical_visitor.cpp":"3725861fbe2b98e0617f52d3b14cf6d3b25fb5ec00f5ef5d308b03642f592767","glsl-optimizer/src/compiler/glsl/ir_hierarchical_visitor.h":"e0560210e966c0c31e4ca843e80ea154e64db5a444b8c2df845b6ba5b3a43fc1","glsl-optimizer/src/compiler/glsl/ir_hv_accept.cpp":"caf7ce2cd9494aadd3c58bcf77f29de58368dc9e347a362bbf37f8bda9509b80","glsl-optimizer/src/compiler/glsl/ir_optimization.h":"8b3dcfc7f9e96b21a8dd47a0040d90be483a9e67a2cdce3a697188fb758d4630","glsl-optimizer/src/compiler/glsl/ir_print_glsl_visitor.cpp":"a8b89b9bd15575e2ea5af3a6822214295686f18c202f2562eee666891033e726","glsl-optimizer/src/compiler/glsl/ir_print_glsl_visitor.h":"1ad1bd3efd1ace39051c13f904c05fd80425d329444f9a8d47fd6d948faf46e0","glsl-optimizer/src/compiler/glsl/ir_print_visitor.cpp":"98e0ca92087edbc3a3c8b8bfacdc730751a767ea96bfa90b19e68cdc429b7a89","glsl-optimizer/src/compiler/glsl/ir_print_visitor.h":"4573eb93268a2654c14b505253dd651e2695d43dc745904d824da18305269b95","glsl-optimizer/src/compiler/glsl/ir_reader.cpp":"06bfba802c8354e5a8b2334b6d78d6297de18235bedd3f8fbb382c89870b02f2","glsl-optimizer/src/compiler/glsl/ir_reader.h":"63e3f7f1597936a7011d5b520e171b197bf82bee6c1560d822c3edf5aaa6f9e9","glsl-optimizer/src/compiler/glsl/ir_rvalue_visitor.cpp":"84b5c5d746555adca85759c2912fe48010232b7c1c0bd2cf03bd04067a85e66f","glsl-optimizer/src/compiler/glsl/ir_rvalue_visitor.h":"fd8c561b71085d3211fff85ed514fecb299d8ce19a04bc063419a55b6d840525","glsl-optimizer/src/compiler/glsl/ir_set_program_inouts.cpp":"ab9f115ce9e7f312d9c7978340ced0dc4ae6d13a80e08442ba9709d11d50cae5","glsl-optimizer/src/compiler/glsl/ir_uniform.h":"683ae6896b1a08470c090be5f822fc31cd434eab9216e954b9bba24a46975109","glsl-optimizer/src/compiler/glsl/ir_unused_structs.cpp":"9c1620c45f2fc071fe5ed828472040b14c5f42effe06aa0e3b8352c95ef78786","glsl-optimizer/src/compiler/glsl/ir_unused_structs.h":"13387b49c23093575276b25b9dfd31fedd8f131c5c4f3128ab04cf03e15b5295","glsl-optimizer/src/compiler/glsl/ir_validate.cpp":"6b232be5999a86ea278f4f15b2832d76843246509118d924243055a3b9b0299f","glsl-optimizer/src/compiler/glsl/ir_variable_refcount.cpp":"2764a3cad937d53f36db7447c3a5b98b04bf153acf81074d971857fc5bca460d","glsl-optimizer/src/compiler/glsl/ir_variable_refcount.h":"b0668e3eb1501ef65e38fe12830742ecb3d28e6039f30e366c8924efc29b4a39","glsl-optimizer/src/compiler/glsl/ir_visitor.h":"f21b3534c3d66d5fb707d1581fece7e1eb043523afbaedf89918cfb031c6df94","glsl-optimizer/src/compiler/glsl/link_atomics.cpp":"360f0209e11f367ba358223597b0a118bae095bff16337cf03f1fb89c5b80ca6","glsl-optimizer/src/compiler/glsl/link_functions.cpp":"de7895da8aa33a1e3c2c1eb2fdaf267ab5d1fbfdb79ae2e67f95211e946e294c","glsl-optimizer/src/compiler/glsl/link_interface_blocks.cpp":"1926cfa73810704eb19b916c1b2cdb9321155e2f98b2a0a57c7c3c6e960540cd","glsl-optimizer/src/compiler/glsl/link_uniform_block_active_visitor.cpp":"1e14e06ca3b2c1089cfba2e8eaf0c1f373d9d6374b6082f320962dd71ae09611","glsl-optimizer/src/compiler/glsl/link_uniform_block_active_visitor.h":"fd58c155af645295bb6aec08797889de586f4d919731de2bce57e8dce59bb048","glsl-optimizer/src/compiler/glsl/link_uniform_blocks.cpp":"09589f49776dce32e6c4044937de7e0c839a9754ad31960148f8f9e010658997","glsl-optimizer/src/compiler/glsl/link_uniform_initializers.cpp":"bf98e08c12db466acf9623cbeb8fa8e3b4002512722e7a6521287f558a099f37","glsl-optimizer/src/compiler/glsl/link_uniforms.cpp":"84bad5b1377362cecf259b05124239be5220b03ce1c0c61b59bd9a47e4379af2","glsl-optimizer/src/compiler/glsl/link_varyings.cpp":"a5f1a53e7c80d635515fe808ff223d89fef1767abb0f2b7aa28fa6773dca353f","glsl-optimizer/src/compiler/glsl/link_varyings.h":"b9dbe018f038df69763df2e928742ce81bbc6e3aaba26f50621e30a6d9aa6220","glsl-optimizer/src/compiler/glsl/linker.cpp":"cfcbc7ed03b2de6e43505bd6eba42564cc415b0f293e9f73791a6fa7b9a59b4a","glsl-optimizer/src/compiler/glsl/linker.h":"ecf94b4ad75ef461c27c557fda4bd25f34c91930822b8e1d729ec84520d4a049","glsl-optimizer/src/compiler/glsl/linker_util.cpp":"1663ad88e2a369305659aeeffaedb5bd752cf76340a2ba5797fc0bf600633cf9","glsl-optimizer/src/compiler/glsl/linker_util.h":"6db788daf9c8e87ae2764b61a8b37ebe419e69c1b82ddee01986e37c978c6993","glsl-optimizer/src/compiler/glsl/list.h":"b1f46ce0e552fe7c45b2a19408a9d97662e23e4b182ab335491c26f8cf25886f","glsl-optimizer/src/compiler/glsl/loop_analysis.cpp":"d3025c34e8010d49cd5abb86d30278263c40a2697b7724c20e804a2398660540","glsl-optimizer/src/compiler/glsl/loop_analysis.h":"a85f045a038ee5b5176063e85d7988865862c44ab0580f771b993a042d0b69cc","glsl-optimizer/src/compiler/glsl/loop_unroll.cpp":"bd4292ea2809f5a669bcb76ceaa1ac365772dcd638c579c3ed10275214901a54","glsl-optimizer/src/compiler/glsl/lower_blend_equation_advanced.cpp":"172ade61a513c00be842070615e1afa78ccc6136adaada06f00b988a62996254","glsl-optimizer/src/compiler/glsl/lower_buffer_access.cpp":"af451edfaa3efde30b3a648c4cf3411672cadcef33d69966dce6f92333a8b763","glsl-optimizer/src/compiler/glsl/lower_buffer_access.h":"807886953a576a323591798cbca5e2df24295ea893b28affd8ffb5926cebaa04","glsl-optimizer/src/compiler/glsl/lower_builtins.cpp":"4d81afc32cf58e1481fcb5e42888ab93dbe6820310a20ff7a9982b77b2152d9b","glsl-optimizer/src/compiler/glsl/lower_const_arrays_to_uniforms.cpp":"608403f0eeeedf21cfcd3014116e0f44e28cbdf6c4c32aac7e613e64e30205e1","glsl-optimizer/src/compiler/glsl/lower_cs_derived.cpp":"179905cd47a294122adeb5b0abfed6f2f67782dcde21b544d1ee2c1985154e66","glsl-optimizer/src/compiler/glsl/lower_discard.cpp":"3b361b2db0004d544d64611cb50d5a6e364cf6c5f2e60c449085d7d753dd7fb0","glsl-optimizer/src/compiler/glsl/lower_discard_flow.cpp":"f5c29b6a27690bb5c91f196d1a1cf9f6be4f1025292311fe2dac561ce6774dee","glsl-optimizer/src/compiler/glsl/lower_distance.cpp":"7531858637a3149431162637de0e6ced99a15ccf7ee15f07ea9d6c88e3330cc2","glsl-optimizer/src/compiler/glsl/lower_if_to_cond_assign.cpp":"469e617757fd1728709cce021aac5c8da05ee503bf5366977bdc4ef7a6d83950","glsl-optimizer/src/compiler/glsl/lower_instructions.cpp":"6ff5c396abe40d8a2145d571e99e2bbe9143393e15aafc28adc2803a01d821b6","glsl-optimizer/src/compiler/glsl/lower_int64.cpp":"d1ed41196880dd53c7b13e2782f9423f8442bf1d46186e8be92b1b66218a83ee","glsl-optimizer/src/compiler/glsl/lower_jumps.cpp":"34de7b493f281589fb0c2c0f6e885d0a0fabbe7a4e97a73de374dd714777a58c","glsl-optimizer/src/compiler/glsl/lower_mat_op_to_vec.cpp":"dff7a308edc4846c348ed4225c6699a9c75abac68d88f41f85954276552779f4","glsl-optimizer/src/compiler/glsl/lower_named_interface_blocks.cpp":"16063ac127bff75a68272070ab11c21c25101edbff62b4c68f4983b4cd941af0","glsl-optimizer/src/compiler/glsl/lower_offset_array.cpp":"3b00773399135aea85746a5a68b96ef000bc6841be1a2c8e6f25c516628b0949","glsl-optimizer/src/compiler/glsl/lower_output_reads.cpp":"a0fc9975d5aa1617e21fc6c353659a9802da9e83779a3eef4ec584f74b4dadc5","glsl-optimizer/src/compiler/glsl/lower_packed_varyings.cpp":"7550099d4ae123d71541c2fc88bc04fbfe9271ec75d7e210987d1c8cac3cf3ea","glsl-optimizer/src/compiler/glsl/lower_packing_builtins.cpp":"79a13d161fe505a410ab948d92769395708693ec888153630fa240e5b97e356f","glsl-optimizer/src/compiler/glsl/lower_precision.cpp":"f82a185b879872b977a1787d8061b9a80bc4cf8db1b970db6efba2ad9cc20fa2","glsl-optimizer/src/compiler/glsl/lower_shared_reference.cpp":"ea2dccf50a83bc19391bf6b7ab6aa53c0005f427af4066d25140340af9a4beef","glsl-optimizer/src/compiler/glsl/lower_subroutine.cpp":"f69fa53650eeb6f2944fce4d36a6e0a423e6705f3a3bd3389c7fadb83cfc8802","glsl-optimizer/src/compiler/glsl/lower_tess_level.cpp":"b196c9d424c0569f3e85d75c2d125af21566cb113d69036db87c0990703e0fa7","glsl-optimizer/src/compiler/glsl/lower_texture_projection.cpp":"4d247f244272adc8250fd888d8d932a140dd5de4d1efc7a58492c3c2b8291527","glsl-optimizer/src/compiler/glsl/lower_ubo_reference.cpp":"e670dbbc1817f146ff7d53750569cf020364a2b49555de41d6944f161aef6276","glsl-optimizer/src/compiler/glsl/lower_variable_index_to_cond_assign.cpp":"fce930f29ac9405b297d1f749d68f59506b89c70b4ee1b1ab8cf49a34cc71ecf","glsl-optimizer/src/compiler/glsl/lower_vec_index_to_cond_assign.cpp":"3c67d851a11a55fad1c49a550f3a0cfe50892d33a3f238ce266cd829eba510a8","glsl-optimizer/src/compiler/glsl/lower_vec_index_to_swizzle.cpp":"f5ec666b73e1415cbab32519a53605ed385f3b03e889560373dbce69dda5000e","glsl-optimizer/src/compiler/glsl/lower_vector.cpp":"f7c13f5572ebe09b6a71553133b2cf003cd4b77b9657600672ee3b21bf890725","glsl-optimizer/src/compiler/glsl/lower_vector_derefs.cpp":"b05793da6dd620a531b43df5af8b2ecbc37b9db0c88910f5724ea10bcd057e19","glsl-optimizer/src/compiler/glsl/lower_vector_insert.cpp":"fee772ec17eea5e86a529bf9c5fa2ee0d29a5982bb75ebc6d68ed36cd19aa299","glsl-optimizer/src/compiler/glsl/lower_vertex_id.cpp":"690e8715182e03fead5cc5a35251fb4f41b357e4c71a1dfbc4bd7be19862b56d","glsl-optimizer/src/compiler/glsl/lower_xfb_varying.cpp":"58c0e8b270e4bbde54250be03cdb2f36966bcafb785372ad2e2b786835df7f9f","glsl-optimizer/src/compiler/glsl/main.cpp":"ae5e88abbbc8a12f769e1296bad938b9d7398cc6da0d3d0caeceeeb876536850","glsl-optimizer/src/compiler/glsl/opt_add_neg_to_sub.h":"f5054944bfd068810629080d0ea11df78b3f57a8f86df75e13ca50157ad1964d","glsl-optimizer/src/compiler/glsl/opt_algebraic.cpp":"538058c7be50e50e58f997dec4b1e0add25a8dc44abf2648366b90612bf95e41","glsl-optimizer/src/compiler/glsl/opt_array_splitting.cpp":"19d3ce0e815438f4df9ab2890e767b03a4f3f191b53bb30c0217cf2ae6a95430","glsl-optimizer/src/compiler/glsl/opt_conditional_discard.cpp":"0e44e0e126711a3725c1f3a2aa65ff03c381fed08680ffc30101aae60f716c4e","glsl-optimizer/src/compiler/glsl/opt_constant_folding.cpp":"a088d04d9b45f9e55e235835648f614c89b7803c03a6d4f6a6d1a6bc1f0228bd","glsl-optimizer/src/compiler/glsl/opt_constant_propagation.cpp":"8a9440d77ecd6dcf13e683cbb99943aab6311c8fd4b5f6a9189a8d4f270746f4","glsl-optimizer/src/compiler/glsl/opt_constant_variable.cpp":"63d3ccd4dd09f19c9cf1a2f51592111bed41284504f29f3c0de4cadebc439a37","glsl-optimizer/src/compiler/glsl/opt_copy_propagation_elements.cpp":"ffa0f50863995e0d2e31f55a52e82319edc71e520987bebd7f7e561ea331c64b","glsl-optimizer/src/compiler/glsl/opt_dead_builtin_variables.cpp":"84e8747b948232f01dd56b428b9315f96f9511f605f240119fc446fae28981a9","glsl-optimizer/src/compiler/glsl/opt_dead_builtin_varyings.cpp":"761523e88f5b3ba785170f4d7205e94fa99acb7e74d29efbe40e1c010e1dbdb3","glsl-optimizer/src/compiler/glsl/opt_dead_code.cpp":"fd1ba2da7337d4e5dad17f5c2d73d9cc8880305f423e85d64cf94553588fa401","glsl-optimizer/src/compiler/glsl/opt_dead_code_local.cpp":"969a598b4df322baf222258a66cd64a326ea20e5b3125be9d8d1771f522c69e0","glsl-optimizer/src/compiler/glsl/opt_dead_functions.cpp":"774cae6536d02edf26e996a2a895e1f62d5098f16dc96b44798b4fc731a9a95f","glsl-optimizer/src/compiler/glsl/opt_flatten_nested_if_blocks.cpp":"3696a5c55f02e20056e085bc2714f73ac992f221b6f3387d655068e86b512046","glsl-optimizer/src/compiler/glsl/opt_flip_matrices.cpp":"44f0fe05b49329667671f88c96dc86ab3fe1459ff7b87f2b2d88de2d49829f9f","glsl-optimizer/src/compiler/glsl/opt_function_inlining.cpp":"fb56a33c90419a01676b57cbd91d0674a54cca40e6defaacc88dd33facebc131","glsl-optimizer/src/compiler/glsl/opt_if_simplification.cpp":"ac406eb35e379c357641d6c5749f50c65961455924d3dc884e2b90046fa92c5c","glsl-optimizer/src/compiler/glsl/opt_minmax.cpp":"0014e6b044f05e58d91add005d05cbdf8206f67ea1e593deea0cde947c26b8a2","glsl-optimizer/src/compiler/glsl/opt_rebalance_tree.cpp":"8bb6329dc0f299042368fc81934c2df019b45ab9f7aa0415d4e57b8d1ff98c9f","glsl-optimizer/src/compiler/glsl/opt_redundant_jumps.cpp":"222c73e2ac7a938ebb6428cc6c780c908ff6156d8ff935b04fed93a48fc10496","glsl-optimizer/src/compiler/glsl/opt_structure_splitting.cpp":"2edc79cc13f3177934e0443ad62f5976a1991f01f86ea303a803434849b13a47","glsl-optimizer/src/compiler/glsl/opt_swizzle.cpp":"015d0abddfe507f67c4b96c82988d861d018ededf7bf055e2bcbe9ea92da694e","glsl-optimizer/src/compiler/glsl/opt_tree_grafting.cpp":"46d28ac983ea244a4315bdc0e8892979ec4d1f9b9a96ac8a8a08006d9bc5e878","glsl-optimizer/src/compiler/glsl/opt_vectorize.cpp":"4e3ae189d32a09cabef66ec46c2f1563ddcc634a85b9c4b77a8d39590a5aa8a4","glsl-optimizer/src/compiler/glsl/program.h":"2982447e2abd35371e273ad87951722782a8b21c08294f67c39d987da1e1c55f","glsl-optimizer/src/compiler/glsl/propagate_invariance.cpp":"080943e21baa32494723a2eefb185915d2daae1f46d6df420145c5ad6857e119","glsl-optimizer/src/compiler/glsl/s_expression.cpp":"1ced972bc6ecc8eab4116ea71fb0212ab9ae5bcc0be3b47aa5d9d903566b3af1","glsl-optimizer/src/compiler/glsl/s_expression.h":"65b847e30e22a809b57d0bc70243049c99d9c6318803c5b8d0826aba55dc217e","glsl-optimizer/src/compiler/glsl/serialize.cpp":"be0eb4251348a9d921acb839a5c48c6023a2e9d116d602bb0432787ab623655d","glsl-optimizer/src/compiler/glsl/serialize.h":"57425732eba1233d928e5f07f88b623ce65af46b3bb034bf147f0a4b7f94f9a1","glsl-optimizer/src/compiler/glsl/shader_cache.cpp":"e0c5c433f2df3fccdf1d61281bfcb0ee5633433339b97c697d64db99611cbaaf","glsl-optimizer/src/compiler/glsl/shader_cache.h":"9217164d8d7f54aca0fe5922c7187095a6ae0cb703b196b79805aeef07a7e697","glsl-optimizer/src/compiler/glsl/standalone.cpp":"8e6c416a14d631261917a5fe4cc91880c287b22b2dfd70eb22028289a8fa5364","glsl-optimizer/src/compiler/glsl/standalone.h":"a7c397d1dfdd1e7fb2cfe99db35cd9df93251e642059208533202b7f20497f83","glsl-optimizer/src/compiler/glsl/standalone_scaffolding.cpp":"970d14b7a9d58e5270321f97bf5d57795558b1c570a56678e04a65b26c60bf4f","glsl-optimizer/src/compiler/glsl/standalone_scaffolding.h":"d921a617ea82b9e49413314492a645c44356de503581b1be3f1b57de236e480d","glsl-optimizer/src/compiler/glsl/string_to_uint_map.cpp":"d824bf5b839bd39498dc9e457103cdbe3e5289ddf7564107c27b1505948dd31f","glsl-optimizer/src/compiler/glsl/string_to_uint_map.h":"e2f18e66359c9d620e085de7f4a334a47df9c66e65a5bfe8b734c627bec04104","glsl-optimizer/src/compiler/glsl/test_optpass.h":"b27b8f35f5387e7ce4982bb51c7b63ccf14f91757f3108a5d02ed006925bb8a0","glsl-optimizer/src/compiler/glsl/xxd.py":"376484142f27f45090ea8203ae2621abf73f06175cb0ee8d96f44a3b9327f4bd","glsl-optimizer/src/compiler/glsl_types.cpp":"e909cab91eccfbb31d13f544e561dd41799a92bf5a853f5afca66927d4ac3706","glsl-optimizer/src/compiler/glsl_types.h":"caeabddb68f47390ca3414b642813bc384715b1363f453c0b449098d423c4b23","glsl-optimizer/src/compiler/shader_enums.c":"282bab5b7c04d4af9a06ef4aec6be10a865865d5aab6f74c3d2c9add77c08a74","glsl-optimizer/src/compiler/shader_enums.h":"13220442a5c02e83540cf2c0ad4f8417b2fbda5f2586dec4e92082544c937cdd","glsl-optimizer/src/compiler/shader_info.h":"4c5453e81197ca83593ee4f365074b23530f2ab21c78e1733b63dec6f344c12a","glsl-optimizer/src/gallium/auxiliary/util/u_half.h":"3c2b37bda3ccb64387e44b723d29cf9046decab1a893bf42d842e9603398bdee","glsl-optimizer/src/gallium/include/pipe/p_compiler.h":"c75620096ce8523dae90599e50aa2ef6468d3b0e368a77795edeb20dd1abfc0c","glsl-optimizer/src/gallium/include/pipe/p_config.h":"a27692fc35f9e55df3224b7529e66b3001e911e94e6bc5f8f569e493e1ee3fb7","glsl-optimizer/src/gallium/include/pipe/p_defines.h":"be26d68c0acc67c5e44788c6299716a9eee415fd81d7d747e3738a829e3b6b38","glsl-optimizer/src/gallium/include/pipe/p_format.h":"5674215fc41d27496f037cf837717daefbf23ebb38d40ace7c0c414bc08182b0","glsl-optimizer/src/gallium/include/pipe/p_state.h":"d600593aba5f5a17072a6c38f6baa81e01c7994b0174250f7e433bb41684b702","glsl-optimizer/src/mapi/glapi/glapi.h":"73632a625c0ddabc401205e8b5a81eb8af8506868efe4b170d7979ec3619e9c5","glsl-optimizer/src/mesa/main/config.h":"5800259373099e5405de2eb52619f9de242552a479902a3a642a333c8cb3c1e7","glsl-optimizer/src/mesa/main/context.c":"2f3208473d99c94f734b1137ba91889d4a1babb9e7534bf1dc85d851ee98274e","glsl-optimizer/src/mesa/main/context.h":"cc7e4194797db9d007f01884e23d786c453b3860821f7f2ddcdf0f1bf3f8ffb1","glsl-optimizer/src/mesa/main/dd.h":"6a964acd06b6c2d88700e69fb75fe3c6b3b3d45bbc41db24f3f897a29695fe0c","glsl-optimizer/src/mesa/main/debug_output.h":"7312422e90b8c0e34028ac27280e438139b5cba525c99deb3ac883cd3d87e452","glsl-optimizer/src/mesa/main/draw.h":"7eaef3a9e27a60ea6f7937109bf3a6190b831162fde0479abb12077ce27c353d","glsl-optimizer/src/mesa/main/enums.h":"87d562a6764f51c014a2274fa7c3aca17c04441537ddd56b2554f13c6fffea92","glsl-optimizer/src/mesa/main/errors.h":"c79444b5df289c90fbb22a33b2d0c23917d9fc4510960088f0b79e53bb56b1b2","glsl-optimizer/src/mesa/main/extensions.h":"a38b2f87cc93c513994281350d69e06c84ff8eded5313ec0a1be33f375e0ebbd","glsl-optimizer/src/mesa/main/extensions_table.c":"17642d1a8c9a0bf2bd61060052d33ff14a005d2b962e6cf91465797a50851e85","glsl-optimizer/src/mesa/main/extensions_table.h":"2c879571c238d2e14461031ac740372fd0f9ac3a34c0d5541bb9b7ed4c0376c8","glsl-optimizer/src/mesa/main/formats.h":"02e2f7ec3e39286cf9f27e2641043e6df8ecb1dfde9e643313210e214af2a929","glsl-optimizer/src/mesa/main/glheader.h":"58217b33eead6aa6b23cd4a291cefeaa6cb84e465f4960daffca97c44d6d1c35","glsl-optimizer/src/mesa/main/glthread.h":"51fb2711f77e7eafcfc52d29d5b844978832b24c930d88accd48d143a6eb9c6f","glsl-optimizer/src/mesa/main/hash.h":"7e7f782034c16a8e693de48e00c31d4a90b0129f4029fd074033d7d16ccbe718","glsl-optimizer/src/mesa/main/macros.h":"73d15ddfd64f2b57b9b2ffeeb993b9c2c0899a80563e9d6ff337b11ccbe6eee5","glsl-optimizer/src/mesa/main/menums.h":"5dfac0e2279d60b0cd0c7b9fc2a5021620d0f6282ed2e738c420214e3af152d3","glsl-optimizer/src/mesa/main/mesa_private.h":"edda678b93438944279a551f663b8858ad84814a9fc88ba9672ef195599c24ae","glsl-optimizer/src/mesa/main/mtypes.h":"6efddefa099e4d2e3fdd97f0055644f47aba21711385edfeabc2d9b0676f2eec","glsl-optimizer/src/mesa/main/shaderobj.h":"3597defbc142e4bd3b54f5f3c454f5c71ceae771f2fefed0f86d49f926335dbe","glsl-optimizer/src/mesa/main/uniforms.h":"4e331e6ad6e9cbded978b4082dbe0a57c1f8f01327446bb6892bfc179976c38b","glsl-optimizer/src/mesa/main/version.h":"9d0a13a758099302dc55cf7d045791834a89b0f9d4cf17b2692259b369a8a9a1","glsl-optimizer/src/mesa/math/m_matrix.h":"a37b19f182e070db3df93b0ede43c22fb8be8c2906504133ee6dbd7db1185d8b","glsl-optimizer/src/mesa/program/dummy_errors.c":"1820e305515b4c5e041f5e1623266a48ec8f076a155310be7d60637101f593e4","glsl-optimizer/src/mesa/program/ir_to_mesa.h":"b47f58d22e3ca2ae42d52501ea769d15c4476834944fa97eeccd3a3439211d00","glsl-optimizer/src/mesa/program/prog_instruction.h":"ab3832152a7e144b59e5a2264b2c29db56d93be31e76bbd958527a56771b40eb","glsl-optimizer/src/mesa/program/prog_parameter.h":"ba18c743284eadbc837c2c364c73e5d372321a7637a76e589d8d39fe8b5de225","glsl-optimizer/src/mesa/program/prog_statevars.h":"fc413698f84bc52d45fdeae0471934ee9904bfb7eac1a2b5f70446e54bcbbdca","glsl-optimizer/src/mesa/program/program.h":"1f01026a4eff440a3f122fd9b519d03546fe7f7d8be60dca834e95a2f8fbbfd2","glsl-optimizer/src/mesa/program/symbol_table.c":"6611cb9f078035bf5ff8c9112093a6c7d99f8af99a3931d0c07f227cc72283ea","glsl-optimizer/src/mesa/program/symbol_table.h":"631dc35ac48d5e87962d45507461920f6575610960ffcc42a08cefeb43300cda","glsl-optimizer/src/mesa/vbo/vbo.h":"6eb1dcd9a08c92f276c5fe08da184ff9d455d1be421913b8ad732a7b65e858fb","glsl-optimizer/src/util/bitscan.h":"9e49e694e6b34fe035bc685f32588827eb8cbe7d82878963c7ab52843e1c16aa","glsl-optimizer/src/util/bitset.h":"c40f78515c6230fed18345c6751ce33833a49da7a27901c7e6d7340cbdcbc5e7","glsl-optimizer/src/util/blob.c":"8f729846f66efc9c15485cc5fc24c6ec861fc1fecb2f652573f2a237d481b791","glsl-optimizer/src/util/blob.h":"93e1eaac866b9a7cd6fc03b533c18fb2edf0e97f03395eff4f3a605c4fc14d0c","glsl-optimizer/src/util/compiler.h":"79e3bf40a5bab704e6c949f23a1352759607bb57d80e5d8df2ef159755f10b68","glsl-optimizer/src/util/crc32.c":"2f3467a046b3a76784ecb9aa55d527698c8607fd0b12c622f6691aaa77b58505","glsl-optimizer/src/util/crc32.h":"59bd81865e51042b73a86f8fb117c312418df095fed2d828c5c1d1c8b6fc6cd4","glsl-optimizer/src/util/debug.c":"c3d68e9752ccc19e66c669562cd113cf1d0ac83cbb30174789e7fb8d1df58f9c","glsl-optimizer/src/util/debug.h":"50068d745c4199ccbd33d68dd4c8a36d2b5179c7869a21e75906ddd0718ca456","glsl-optimizer/src/util/detect_os.h":"343a8790d17a3710c6dd015ee367f84e3902ff3f2e36faca2bf93f9d725d3574","glsl-optimizer/src/util/disk_cache.c":"f533937e5a4fffe76e2739ef4b6b1e1da097d96d63eb808e68ebbc7027641c23","glsl-optimizer/src/util/disk_cache.h":"e83314fb14134a8e079b15e470a6376ba5a8253701f048c890a62b7e55d64bc8","glsl-optimizer/src/util/fast_urem_by_const.h":"e108fce804616c47d071dfe4a04163eec1126e448ed1aa89abb6b3a6d772bd5b","glsl-optimizer/src/util/fnv1a.h":"ab2596f19c6adf431ae27618f62c5743e24ad23ef83bb359a4c4c218245ab459","glsl-optimizer/src/util/format/u_format.h":"4cdfc0c59cbc99a092e5ec5a396910f2d93b9643e5d8141050b011e66f11e45b","glsl-optimizer/src/util/futex.h":"26f7c9d86e9ffef4c0fa2761f1aaa1918337302e20bd6ca10e61dc3c47356deb","glsl-optimizer/src/util/half_float.c":"11bc2584493d5d9d46e8c8a619a0307cf150bf5ab5d0f96bb764b061dc37a00e","glsl-optimizer/src/util/half_float.h":"7f7c380f126da1400a91758cc0392f24bf967bce1672890b62be26fe9fbd922b","glsl-optimizer/src/util/hash_table.c":"0ca40352e35dedab0a84c64c903f1b16d47e950bb5f43b4d22bb57d499bfea6e","glsl-optimizer/src/util/hash_table.h":"217191bb360592e2232f187473c10287d2cda8ae6fa5c53d0ef74c8c206118b4","glsl-optimizer/src/util/list.h":"9fab03c6a78186bb5f173269f825f6ce976b409d931852e3d93bac632e07989a","glsl-optimizer/src/util/macros.h":"be115a17e3c18844a30813e3c3f9029b908e7f3fc1f47431345761098bbd88be","glsl-optimizer/src/util/mesa-sha1.c":"00c692ec353ebc02c06c57c5a71de0ab7a119f86a4146f452e65ec87e4944417","glsl-optimizer/src/util/mesa-sha1.h":"bff4c29f4bf7cdbcefb30fa0c996a7604a380eba8976467c2a60e7cd328f7e26","glsl-optimizer/src/util/mesa-sha1_test.c":"25da89a59d51469f77b4c468ca23ffdce0a7a1166a70b6cc23026a6800b0143c","glsl-optimizer/src/util/os_memory.h":"64555faf1760ae6954f42c83727c38dfc4c278e9152115779ffaad58b42adacf","glsl-optimizer/src/util/os_memory_aligned.h":"12d86fa94be38c13f7eeebdf313795e1267dd5a7187d2f0072e0e896f41702f6","glsl-optimizer/src/util/os_memory_stdc.h":"07360363b88c927065e10df71bebf6c8a0cc3b9167c9dfce55f2d65f11e6f787","glsl-optimizer/src/util/os_misc.c":"a9936e613ec84803abd59ad47c192c8e3939993c950ac91973fdc4cec1801bb8","glsl-optimizer/src/util/os_misc.h":"cc68eb12e05b5e749c54298cb4a6f4cd20cc5af7db3403e70b3c27b56090c740","glsl-optimizer/src/util/os_time.h":"73e775f7335244ff5964c678c27eedf1aea6abea44c4169d327ea8c7ce4a3a88","glsl-optimizer/src/util/ralloc.c":"4b51189595ef67bcef52c40cbf654d969041dbd15e15d4a893ad494ac060aeca","glsl-optimizer/src/util/ralloc.h":"e573c45875ff1530f0dbee9a93ae55535fdac8d5cc88a79ebc327c688824bde5","glsl-optimizer/src/util/rounding.h":"0450722353caf83de07e67f335949dbe95fe53b534052d4ee9d28d2781387614","glsl-optimizer/src/util/set.c":"86f8c9a830bead5a5a79bc970b0ff97809312af07b3beb39ef9d90af04d40a1b","glsl-optimizer/src/util/set.h":"3e39ca161e7ed4ec7c436cc9c7919ed9a55ed1b71edbf2caf6f9bcfd9bc578ed","glsl-optimizer/src/util/sha1/README":"00af7419af05247081858acb2902efd99fcda2ce16e331079f701645bb3729c0","glsl-optimizer/src/util/sha1/sha1.c":"1403bbe0aad42ba3e6be7e09f7cad87a6a8c4ad5b63962f7b92b9f37d8133b04","glsl-optimizer/src/util/sha1/sha1.h":"68d9f240eab2918026ecdf22be36811abbd4f1389f6c36e31258041aeaedd247","glsl-optimizer/src/util/simple_mtx.h":"12c6c3c4b7db9168bc656d5b3c65912075084d2b388c415d5c3d3f5953a9d6c7","glsl-optimizer/src/util/softfloat.c":"a97e51a96fe5e6a052c02aa6bbec683fe73fb88a8c087d9c930503e2120d8a2e","glsl-optimizer/src/util/softfloat.h":"66664b0250e83bf5dd4cc743acd119d076efcea624a0eab3d6b60718e6ee8811","glsl-optimizer/src/util/string_buffer.c":"63a1d1b1e34926c88ea00159cafbcd56568b805c4f64d1e8c97169fe313921fc","glsl-optimizer/src/util/string_buffer.h":"7b88d1b1d9c6cfb8e93331813535c127289437c75f822029e9a3bca8ea6b52ee","glsl-optimizer/src/util/strndup.h":"0273c4fdb7482cd7746881a63d3998648c6d63415ba85af1d1860f0e0dc504c6","glsl-optimizer/src/util/strtod.c":"5cf610d8a37373cf37cfb7aae903525d943b2674b1f32594c70b0eb19a8c9697","glsl-optimizer/src/util/strtod.h":"237396def4e264d35ed4bedea00ef9a4ceab6d7a11a18c770d9747d22c69ed2d","glsl-optimizer/src/util/u_atomic.h":"c02e809526c6c09ba8fe51f50b2490d1b6c8e5c7f3c4031ae958250d098fc3bb","glsl-optimizer/src/util/u_debug.c":"8c060e379b816618f3dd22c9ea523c68b9425c76c36a7dfe5d6d375b337f5f4a","glsl-optimizer/src/util/u_debug.h":"e11e26edd9b9e4e6f8e6a435e69f4d9edda27e9a379f68f4c82ea2525aaaea68","glsl-optimizer/src/util/u_dynarray.h":"853d0fa6ff2261614488be624deb8a2b01e57c2c8eabc28578cbeed4ccc95694","glsl-optimizer/src/util/u_endian.h":"3ccea7e529740318d8a4b05c00db3adc9d1e292a52bdc56a05c9fae99209720f","glsl-optimizer/src/util/u_math.c":"c868a8c0886dc78f1b06b13404ba8b253090449045774dd56893ac9d75795184","glsl-optimizer/src/util/u_math.h":"a04e32e126db016413f9de0a2028a3e71737137463b1289eae576f884b06fcf1","glsl-optimizer/src/util/u_memory.h":"c5db17c724c70283ddbe04165722f6988d4e0eb9aa3602ae472feff016649af9","glsl-optimizer/src/util/u_queue.h":"92930ce236c0528a98b695f5cea8c5c6aa9683beaf71a2227bdc5d33d1b21506","glsl-optimizer/src/util/u_string.h":"c5a2f4ef576d1547bda12c4ea219179fefa54414977743ac094abcaf696ef6ca","glsl-optimizer/src/util/u_thread.h":"00b708459b27f9910d18db92c18cc65cfc618ac2b3cd144e45f8640057b10d58","glsl-optimizer/src/util/xxhash.h":"2f2aff2fc6c0c929f52cf6ae7314122124c5be026d41ad1c357608383c4a37ad","src/bindings.rs":"11b403241b456fbe3482951ec70d274bd3ebd54bf39c11b3e81d3b9721b1bdaf","src/lib.rs":"04be1554cd829eb40864b06d80b491dd48117a4e3a601c7d482117f7a0391e67","wrapper.hpp":"f3ea34cc496f7d90b9bfcada3250b37b314c3524dac693b2ece9517bc7d274ac"},"package":null} +\ No newline at end of file +diff --git a/third_party/rust/glslopt/.cargo_vcs_info.json b/third_party/rust/glslopt/.cargo_vcs_info.json +deleted file mode 100644 +index 3edfbe5942a8..000000000000 +--- a/third_party/rust/glslopt/.cargo_vcs_info.json ++++ /dev/null +@@ -1,6 +0,0 @@ +-{ +- "git": { +- "sha1": "e1a7fe3ac8ccca62a31682a98d78cedf470aaf5e" +- }, +- "path_in_vcs": "" +-} +\ No newline at end of file +diff --git a/third_party/rust/glslopt/Cargo.lock b/third_party/rust/glslopt/Cargo.lock +deleted file mode 100644 +index 2034b562ee8d..000000000000 +--- a/third_party/rust/glslopt/Cargo.lock ++++ /dev/null +@@ -1,25 +0,0 @@ +-# This file is automatically @generated by Cargo. +-# It is not intended for manual editing. +-version = 4 +- +-[[package]] +-name = "cc" +-version = "1.1.15" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" +-dependencies = [ +- "shlex", +-] +- +-[[package]] +-name = "glslopt" +-version = "0.1.12" +-dependencies = [ +- "cc", +-] +- +-[[package]] +-name = "shlex" +-version = "1.3.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +diff --git a/third_party/rust/glslopt/Cargo.toml b/third_party/rust/glslopt/Cargo.toml +index a5a4b997ac1e..acd34d69d52f 100644 +--- a/third_party/rust/glslopt/Cargo.toml ++++ b/third_party/rust/glslopt/Cargo.toml +@@ -36,5 +36,5 @@ repository = "https://github.com/jamienicol/glslopt-rs" + name = "glslopt" + path = "src/lib.rs" + +-[build-dependencies.cc] +-version = "1.0" ++[build-dependencies] ++cc = "1.0" +diff --git a/third_party/rust/glslopt/Cargo.toml.orig b/third_party/rust/glslopt/Cargo.toml.orig +deleted file mode 100644 +index 452381f9941a..000000000000 +--- a/third_party/rust/glslopt/Cargo.toml.orig ++++ /dev/null +@@ -1,12 +0,0 @@ +-[package] +-name = "glslopt" +-version = "0.1.12" +-authors = ["Jamie Nicol "] +-edition = "2018" +-license = "MIT" +-description = "Optimizes GLSL shader code" +-keywords = ["opengl", "gl", "gles", "glsl", "shader"] +-repository = "https://github.com/jamienicol/glslopt-rs" +- +-[build-dependencies] +-cc = "1.0" +diff --git a/.trackerignore b/third_party/rust/glslopt/glsl-optimizer/.cargo-ok +similarity index 100% +copy from .trackerignore +copy to third_party/rust/glslopt/glsl-optimizer/.cargo-ok +diff --git a/third_party/rust/glslopt/glsl-optimizer/.gitignore b/third_party/rust/glslopt/glsl-optimizer/.gitignore +deleted file mode 100644 +index 825ad5fd1656..000000000000 +--- a/third_party/rust/glslopt/glsl-optimizer/.gitignore ++++ /dev/null +@@ -1,4 +0,0 @@ +-*.pyc +-*.pyo +-*.out +-build +diff --git a/third_party/rust/glslopt/glsl-optimizer/generateParsers.sh b/third_party/rust/glslopt/glsl-optimizer/generateParsers.sh +index 1b4e63513609..8ecffa6d212c 100755 +--- a/third_party/rust/glslopt/glsl-optimizer/generateParsers.sh ++++ b/third_party/rust/glslopt/glsl-optimizer/generateParsers.sh +@@ -4,6 +4,6 @@ flex --nounistd -osrc/compiler/glsl/glsl_lexer.cpp src/compiler/glsl/glsl_lexer. + bison -v -o "src/compiler/glsl/glcpp/glcpp-parse.c" -p "glcpp_parser_" --defines=src/compiler/glsl/glcpp/glcpp-parse.h src/compiler/glsl/glcpp/glcpp-parse.y + bison -v -o "src/compiler/glsl/glsl_parser.cpp" -p "_mesa_glsl_" --defines=src/compiler/glsl/glsl_parser.h src/compiler/glsl/glsl_parser.yy + +-python "src/compiler/glsl/ir_expression_operation.py" "enum" >src/compiler/glsl/ir_expression_operation.h +-python "src/compiler/glsl/ir_expression_operation.py" "strings" >src/compiler/glsl/ir_expression_operation_strings.h +-python "src/compiler/glsl/ir_expression_operation.py" "constant" >src/compiler/glsl/ir_expression_operation_constant.h ++python3 "src/compiler/glsl/ir_expression_operation.py" "enum" >src/compiler/glsl/ir_expression_operation.h ++python3 "src/compiler/glsl/ir_expression_operation.py" "strings" >src/compiler/glsl/ir_expression_operation_strings.h ++python3 "src/compiler/glsl/ir_expression_operation.py" "constant" >src/compiler/glsl/ir_expression_operation_constant.h +diff --git a/third_party/rust/glslopt/glsl-optimizer/include/c11/threads_posix.h b/third_party/rust/glslopt/glsl-optimizer/include/c11/threads_posix.h +index 45cb6075e6e0..5f22aca6f1e7 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/include/c11/threads_posix.h ++++ b/third_party/rust/glslopt/glsl-optimizer/include/c11/threads_posix.h +@@ -51,50 +51,56 @@ Configuration macro: + #include + + /*---------------------------- macros ----------------------------*/ ++#ifndef __once_flag_defined + #define ONCE_FLAG_INIT PTHREAD_ONCE_INIT ++#endif + #ifdef INIT_ONCE_STATIC_INIT + #define TSS_DTOR_ITERATIONS PTHREAD_DESTRUCTOR_ITERATIONS + #else + #define TSS_DTOR_ITERATIONS 1 // assume TSS dtor MAY be called at least once. + #endif + + // FIXME: temporary non-standard hack to ease transition + #define _MTX_INITIALIZER_NP PTHREAD_MUTEX_INITIALIZER + + /*---------------------------- types ----------------------------*/ + typedef pthread_cond_t cnd_t; + typedef pthread_t thrd_t; + typedef pthread_key_t tss_t; + typedef pthread_mutex_t mtx_t; ++#ifndef __once_flag_defined + typedef pthread_once_t once_flag; ++#endif + + + /* + Implementation limits: + - Conditionally emulation for "mutex with timeout" + (see EMULATED_THREADS_USE_NATIVE_TIMEDLOCK macro) + */ + struct impl_thrd_param { + thrd_start_t func; + void *arg; + }; + + static inline void * + impl_thrd_routine(void *p) + { + struct impl_thrd_param pack = *((struct impl_thrd_param *)p); + free(p); + return (void*)(intptr_t)pack.func(pack.arg); + } + + + /*--------------- 7.25.2 Initialization functions ---------------*/ + // 7.25.2.1 ++#ifndef __once_flag_defined + static inline void + call_once(once_flag *flag, void (*func)(void)) + { + pthread_once(flag, func); + } ++#endif + + + /*------------- 7.25.3 Condition variable functions -------------*/ +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_function.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_function.cpp +index b6b81bf1e142..0924d5b57f6e 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_function.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_function.cpp +@@ -2464,7 +2464,7 @@ ast_function_expression::hir(exec_list *instructions, + return value; + } + +- unreachable("not reached"); ++ UNREACHABLE("not reached"); + } + + bool +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_to_hir.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_to_hir.cpp +index c00298a16051..6bb0ebd9ea22 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_to_hir.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ast_to_hir.cpp +@@ -1413,7 +1413,7 @@ ast_expression::do_hir(exec_list *instructions, + + switch (this->oper) { + case ast_aggregate: +- unreachable("ast_aggregate: Should never get here."); ++ UNREACHABLE("ast_aggregate: Should never get here."); + + case ast_assign: { + this->subexpressions[0]->set_is_lhs(true); +@@ -2004,13 +2004,13 @@ ast_expression::do_hir(exec_list *instructions, + } + + case ast_unsized_array_dim: +- unreachable("ast_unsized_array_dim: Should never get here."); ++ UNREACHABLE("ast_unsized_array_dim: Should never get here."); + + case ast_function_call: + /* Should *NEVER* get here. ast_function_call should always be handled + * by ast_function_expression::hir. + */ +- unreachable("ast_function_call: handled elsewhere "); ++ UNREACHABLE("ast_function_call: handled elsewhere "); + + case ast_identifier: { + /* ast_identifier can appear several places in a full abstract syntax +@@ -2225,10 +2225,10 @@ ast_expression::has_sequence_subexpression() const + return false; + + case ast_function_call: +- unreachable("should be handled by ast_function_expression::hir"); ++ UNREACHABLE("should be handled by ast_function_expression::hir"); + + case ast_unsized_array_dim: +- unreachable("ast_unsized_array_dim: Should never get here."); ++ UNREACHABLE("ast_unsized_array_dim: Should never get here."); + } + + return false; +@@ -2529,7 +2529,7 @@ get_type_name_for_precision_qualifier(const glsl_type *type) + return names[type_idx]; + } + default: +- unreachable("Unsupported sampler/image dimensionality"); ++ UNREACHABLE("Unsupported sampler/image dimensionality"); + } /* sampler/image float dimensionality */ + break; + case GLSL_TYPE_INT: +@@ -2584,7 +2584,7 @@ get_type_name_for_precision_qualifier(const glsl_type *type) + return names[offset + type_idx]; + } + default: +- unreachable("Unsupported isampler/iimage dimensionality"); ++ UNREACHABLE("Unsupported isampler/iimage dimensionality"); + } /* sampler/image int dimensionality */ + break; + case GLSL_TYPE_UINT: +@@ -2639,17 +2639,17 @@ get_type_name_for_precision_qualifier(const glsl_type *type) + return names[offset + type_idx]; + } + default: +- unreachable("Unsupported usampler/uimage dimensionality"); ++ UNREACHABLE("Unsupported usampler/uimage dimensionality"); + } /* sampler/image uint dimensionality */ + break; + default: +- unreachable("Unsupported sampler/image type"); ++ UNREACHABLE("Unsupported sampler/image type"); + } /* sampler/image type */ + break; + } /* GLSL_TYPE_SAMPLER/GLSL_TYPE_IMAGE */ + break; + default: +- unreachable("Unsupported type"); ++ UNREACHABLE("Unsupported type"); + } /* base type */ + } + +@@ -5013,28 +5013,28 @@ ast_declarator_list::hir(exec_list *instructions, + this->type->qualifier.image_format = PIPE_FORMAT_R32G32B32A32_FLOAT; + break; + default: +- unreachable("Unknown image format"); ++ UNREACHABLE("Unknown image format"); + } + this->type->qualifier.image_base_type = GLSL_TYPE_FLOAT; + } else if (strncmp(this->type->specifier->type_name, "uimage", strlen("uimage")) == 0) { + switch (this->type->qualifier.image_format) { + case PIPE_FORMAT_R8_SINT: + this->type->qualifier.image_format = PIPE_FORMAT_R8_UINT; + break; + case PIPE_FORMAT_R16_SINT: + this->type->qualifier.image_format = PIPE_FORMAT_R16_UINT; + break; + case PIPE_FORMAT_R32_SINT: + this->type->qualifier.image_format = PIPE_FORMAT_R32_UINT; + break; + case PIPE_FORMAT_R32G32_SINT: + this->type->qualifier.image_format = PIPE_FORMAT_R32G32_UINT; + break; + case PIPE_FORMAT_R32G32B32A32_SINT: + this->type->qualifier.image_format = PIPE_FORMAT_R32G32B32A32_UINT; + break; + default: +- unreachable("Unknown image format"); ++ UNREACHABLE("Unknown image format"); + } + this->type->qualifier.image_base_type = GLSL_TYPE_UINT; + } else if (strncmp(this->type->specifier->type_name, "iimage", strlen("iimage")) == 0) { +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/builtin_functions.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/builtin_functions.cpp +index 3dafcf0c77e8..603c7f645820 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/builtin_functions.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/builtin_functions.cpp +@@ -5414,7 +5414,7 @@ builtin_builder::_isinf(builtin_available_predicate avail, const glsl_type *type + infinities.d[i] = INFINITY; + break; + default: +- unreachable("unknown type"); ++ UNREACHABLE("unknown type"); + } + } + +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/glcpp/glcpp-lex.c b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/glcpp/glcpp-lex.c +index 973d1140783b..6081b8aee8fc 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/glcpp/glcpp-lex.c ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/glcpp/glcpp-lex.c +@@ -1032,7 +1032,7 @@ characters that appear in any other expressions. */ + #define DONE 3 + #define HASH 4 + #define NEWLINE_CATCHUP 5 +-#define UNREACHABLE 6 ++#define NOT_REACHABLE 6 + + #define YY_EXTRA_TYPE glcpp_parser_t * + +@@ -1953,25 +1953,25 @@ YY_RULE_SETUP + { + glcpp_error(yylloc, yyextra, "Internal compiler error: Unexpected character: %s", yytext); + +- /* We don't actually use the UNREACHABLE start condition. We ++ /* We don't actually use the NOT_REACHABLE start condition. We + only have this block here so that we can pretend to call some + generated functions, (to avoid "defined but not used" + warnings. */ +- if (YY_START == UNREACHABLE) { ++ if (YY_START == NOT_REACHABLE) { + unput('.'); + yy_top_state(yyextra); + } + } + YY_BREAK + case 54: + YY_RULE_SETUP + #line 616 "src/compiler/glsl/glcpp/glcpp-lex.l" + YY_FATAL_ERROR( "flex scanner jammed" ); + YY_BREAK + #line 1971 "src/compiler/glsl/glcpp/glcpp-lex.c" + case YY_STATE_EOF(DONE): + case YY_STATE_EOF(NEWLINE_CATCHUP): +-case YY_STATE_EOF(UNREACHABLE): ++case YY_STATE_EOF(NOT_REACHABLE): + yyterminate(); + + case YY_END_OF_BUFFER: +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/glcpp/glcpp-lex.l b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/glcpp/glcpp-lex.l +index e07739b657c3..f831b58c8aa9 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/glcpp/glcpp-lex.l ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/glcpp/glcpp-lex.l +@@ -178,7 +178,7 @@ glcpp_lex_update_state_per_token (glcpp_parser_t *parser, int token) + * update the "Internal compiler error" catch-all rule near the end of + * this file. */ + +-%x COMMENT DEFINE DONE HASH NEWLINE_CATCHUP UNREACHABLE ++%x COMMENT DEFINE DONE HASH NEWLINE_CATCHUP NOT_REACHABLE + + SPACE [[:space:]] + NONSPACE [^[:space:]] +@@ -602,11 +602,11 @@ PATH ["][]^./ _A-Za-z0-9+*%[(){}|&~=!:;,?-]*["] + <*>. { + glcpp_error(yylloc, yyextra, "Internal compiler error: Unexpected character: %s", yytext); + +- /* We don't actually use the UNREACHABLE start condition. We ++ /* We don't actually use the NOT_REACHABLE start condition. We + only have this block here so that we can pretend to call some + generated functions, (to avoid "defined but not used" + warnings. */ +- if (YY_START == UNREACHABLE) { ++ if (YY_START == NOT_REACHABLE) { + unput('.'); + yy_top_state(yyextra); + } +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir.cpp +index 9ea8e00d310a..75b43d77537d 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir.cpp +@@ -550,7 +550,7 @@ ir_expression::ir_expression(int op, ir_rvalue *op0, ir_rvalue *op1) + base = GLSL_TYPE_UINT64; + break; + default: +- unreachable(!"Invalid base type."); ++ UNREACHABLE("Invalid base type."); + } + + this->type = glsl_type::get_instance(base, op0->type->vector_elements, 1); +@@ -623,7 +623,7 @@ ir_expression::get_num_operands(ir_expression_operation op) + if (op <= ir_last_quadop) + return 4; + +- unreachable("Could not calculate number of operands"); ++ UNREACHABLE("Could not calculate number of operands"); + } + + #include "ir_expression_operation_strings.h" +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_builder_print_visitor.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_builder_print_visitor.cpp +index 5ab50a58415f..edd2107745fb 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_builder_print_visitor.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_builder_print_visitor.cpp +@@ -196,33 +196,33 @@ ir_builder_print_visitor::print_without_declaration(const ir_rvalue *ir) + print_without_declaration((ir_expression *) ir); + break; + default: +- unreachable("Invalid IR type."); ++ UNREACHABLE("Invalid IR type."); + } + } + + ir_visitor_status + ir_builder_print_visitor::visit(ir_variable *ir) + { + const unsigned my_index = next_ir_index++; + + _mesa_hash_table_insert(index_map, ir, (void *)(uintptr_t) my_index); + + const char *mode_str; + switch (ir->data.mode) { + case ir_var_auto: mode_str = "ir_var_auto"; break; + case ir_var_uniform: mode_str = "ir_var_uniform"; break; + case ir_var_shader_storage: mode_str = "ir_var_shader_storage"; break; + case ir_var_shader_shared: mode_str = "ir_var_shader_shared"; break; + case ir_var_shader_in: mode_str = "ir_var_shader_in"; break; + case ir_var_shader_out: mode_str = "ir_var_shader_out"; break; + case ir_var_function_in: mode_str = "ir_var_function_in"; break; + case ir_var_function_out: mode_str = "ir_var_function_out"; break; + case ir_var_function_inout: mode_str = "ir_var_function_inout"; break; + case ir_var_const_in: mode_str = "ir_var_const_in"; break; + case ir_var_system_value: mode_str = "ir_var_system_value"; break; + case ir_var_temporary: mode_str = "ir_var_temporary"; break; + default: +- unreachable("Invalid variable mode"); ++ UNREACHABLE("Invalid variable mode"); + } + + if (ir->data.mode == ir_var_temporary) { +@@ -420,7 +420,7 @@ ir_builder_print_visitor::visit(ir_constant *ir) + print_with_indent("r%04X_data.u[%u] = 1;\n", my_index, i); + break; + default: +- unreachable("Invalid constant type"); ++ UNREACHABLE("Invalid constant type"); + } + } + +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_expression_operation.py b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_expression_operation.py +index 160626e6ef6f..58c9b44a0d4e 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_expression_operation.py ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_expression_operation.py +@@ -106,7 +106,7 @@ constant_template_common = mako.template.Template("""\ + break; + % endfor + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break;""") +@@ -137,30 +137,30 @@ constant_template_vector_scalar = mako.template.Template("""\ + break; + % endfor + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break;""") + + # This template is for multiplication. It is unique because it has to support + # matrix * vector and matrix * matrix operations, and those are just different. + constant_template_mul = mako.template.Template("""\ + case ${op.get_enum_name()}: + /* Check for equal types, or unequal types involving scalars */ + if ((op[0]->type == op[1]->type && !op[0]->type->is_matrix()) + || op0_scalar || op1_scalar) { + for (unsigned c = 0, c0 = 0, c1 = 0; + c < components; + c0 += c0_inc, c1 += c1_inc, c++) { + + switch (op[0]->type->base_type) { + % for dst_type, src_types in op.signatures(): + case ${src_types[0].glsl_type}: + data.${dst_type.union_field}[c] = ${op.get_c_expression(src_types, ("c0", "c1", "c2"))}; + break; + % endfor + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + } else { +@@ -218,99 +218,99 @@ constant_template_horizontal = mako.template.Template("""\ + break; + % endfor + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + break;""") + + # This template is for ir_binop_vector_extract. + constant_template_vector_extract = mako.template.Template("""\ + case ${op.get_enum_name()}: { + const int c = CLAMP(op[1]->value.i[0], 0, + (int) op[0]->type->vector_elements - 1); + + switch (op[0]->type->base_type) { + % for dst_type, src_types in op.signatures(): + case ${src_types[0].glsl_type}: + data.${dst_type.union_field}[0] = op[0]->value.${src_types[0].union_field}[c]; + break; + % endfor + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + break; + }""") + + # This template is for ir_triop_vector_insert. + constant_template_vector_insert = mako.template.Template("""\ + case ${op.get_enum_name()}: { + const unsigned idx = op[2]->value.u[0]; + + memcpy(&data, &op[0]->value, sizeof(data)); + + switch (this->type->base_type) { + % for dst_type, src_types in op.signatures(): + case ${src_types[0].glsl_type}: + data.${dst_type.union_field}[idx] = op[1]->value.${src_types[0].union_field}[0]; + break; + % endfor + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + break; + }""") + + # This template is for ir_quadop_vector. + constant_template_vector = mako.template.Template("""\ + case ${op.get_enum_name()}: + for (unsigned c = 0; c < this->type->vector_elements; c++) { + switch (this->type->base_type) { + % for dst_type, src_types in op.signatures(): + case ${src_types[0].glsl_type}: + data.${dst_type.union_field}[c] = op[c]->value.${src_types[0].union_field}[0]; + break; + % endfor + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break;""") + + # This template is for ir_triop_lrp. + constant_template_lrp = mako.template.Template("""\ + case ${op.get_enum_name()}: { + assert(op[0]->type->is_float() || op[0]->type->is_double()); + assert(op[1]->type->is_float() || op[1]->type->is_double()); + assert(op[2]->type->is_float() || op[2]->type->is_double()); + + unsigned c2_inc = op[2]->type->is_scalar() ? 0 : 1; + for (unsigned c = 0, c2 = 0; c < components; c2 += c2_inc, c++) { + switch (this->type->base_type) { + % for dst_type, src_types in op.signatures(): + case ${src_types[0].glsl_type}: + data.${dst_type.union_field}[c] = ${op.get_c_expression(src_types, ("c", "c", "c2"))}; + break; + % endfor + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + }""") + + # This template is for ir_triop_csel. This expression is really unique + # because not all of the operands are the same type, and the second operand + # determines the type of the expression (instead of the first). + constant_template_csel = mako.template.Template("""\ + case ${op.get_enum_name()}: + for (unsigned c = 0; c < components; c++) { + switch (this->type->base_type) { + % for dst_type, src_types in op.signatures(): + case ${src_types[1].glsl_type}: + data.${dst_type.union_field}[c] = ${op.get_c_expression(src_types)}; + break; + % endfor + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break;""") +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_expression_operation_constant.h b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_expression_operation_constant.h +index ef5c4e792772..76cd18f03398 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_expression_operation_constant.h ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_expression_operation_constant.h +@@ -15,1018 +15,1018 @@ + data.i64[c] = ~ op[0]->value.i64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_logic_not: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_BOOL: + data.b[c] = !op[0]->value.b[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_neg: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.u[c] = -((int) op[0]->value.u[c]); + break; + case GLSL_TYPE_INT: + data.i[c] = -op[0]->value.i[c]; + break; + case GLSL_TYPE_FLOAT: + data.f[c] = -op[0]->value.f[c]; + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = -op[0]->value.d[c]; + break; + case GLSL_TYPE_UINT64: + data.u64[c] = -((int64_t) op[0]->value.u64[c]); + break; + case GLSL_TYPE_INT64: + data.i64[c] = -op[0]->value.i64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_abs: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT: + data.i[c] = op[0]->value.i[c] < 0 ? -op[0]->value.i[c] : op[0]->value.i[c]; + break; + case GLSL_TYPE_FLOAT: + data.f[c] = fabsf(op[0]->value.f[c]); + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = fabs(op[0]->value.d[c]); + break; + case GLSL_TYPE_INT64: + data.i64[c] = op[0]->value.i64[c] < 0 ? -op[0]->value.i64[c] : op[0]->value.i64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_sign: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT: + data.i[c] = (op[0]->value.i[c] > 0) - (op[0]->value.i[c] < 0); + break; + case GLSL_TYPE_FLOAT: + data.f[c] = float((op[0]->value.f[c] > 0.0F) - (op[0]->value.f[c] < 0.0F)); + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = double((op[0]->value.d[c] > 0.0) - (op[0]->value.d[c] < 0.0)); + break; + case GLSL_TYPE_INT64: + data.i64[c] = (op[0]->value.i64[c] > 0) - (op[0]->value.i64[c] < 0); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_rcp: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = 1.0F / op[0]->value.f[c]; + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = 1.0 / op[0]->value.d[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_rsq: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = 1.0F / sqrtf(op[0]->value.f[c]); + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = 1.0 / sqrt(op[0]->value.d[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_sqrt: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = sqrtf(op[0]->value.f[c]); + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = sqrt(op[0]->value.d[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_exp: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = expf(op[0]->value.f[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_log: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = logf(op[0]->value.f[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_exp2: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = exp2f(op[0]->value.f[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_log2: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = log2f(op[0]->value.f[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_f2i: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.i[c] = (int) op[0]->value.f[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_f2u: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.u[c] = (unsigned) op[0]->value.f[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_i2f: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT: + data.f[c] = (float) op[0]->value.i[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_f2b: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.b[c] = op[0]->value.f[c] != 0.0F ? true : false; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_b2f: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_BOOL: + data.f[c] = op[0]->value.b[c] ? 1.0F : 0.0F; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_b2f16: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_BOOL: + data.f[c] = op[0]->value.b[c] ? 1.0F : 0.0F; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_i2b: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.b[c] = op[0]->value.u[c] ? true : false; + break; + case GLSL_TYPE_INT: + data.b[c] = op[0]->value.i[c] ? true : false; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_b2i: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_BOOL: + data.i[c] = op[0]->value.b[c] ? 1 : 0; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_u2f: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.f[c] = (float) op[0]->value.u[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_i2u: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT: + data.u[c] = op[0]->value.i[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_u2i: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.i[c] = op[0]->value.u[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_d2f: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_DOUBLE: + data.f[c] = op[0]->value.d[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_f2d: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.d[c] = op[0]->value.f[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_f2f16: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = op[0]->value.f[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_f2fmp: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = op[0]->value.f[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_f162f: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = op[0]->value.f[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_d2i: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_DOUBLE: + data.i[c] = op[0]->value.d[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_i2d: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT: + data.d[c] = op[0]->value.i[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_d2u: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_DOUBLE: + data.u[c] = op[0]->value.d[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_u2d: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.d[c] = op[0]->value.u[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_d2b: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_DOUBLE: + data.b[c] = op[0]->value.d[c] != 0.0; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_f162b: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.b[c] = op[0]->value.f[c] != 0.0; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_bitcast_i2f: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT: + data.f[c] = bitcast_u2f(op[0]->value.i[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_bitcast_f2i: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.i[c] = bitcast_f2u(op[0]->value.f[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_bitcast_u2f: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.f[c] = bitcast_u2f(op[0]->value.u[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_bitcast_f2u: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.u[c] = bitcast_f2u(op[0]->value.f[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_bitcast_u642d: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT64: + data.d[c] = bitcast_u642d(op[0]->value.u64[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_bitcast_i642d: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT64: + data.d[c] = bitcast_i642d(op[0]->value.i64[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_bitcast_d2u64: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_DOUBLE: + data.u64[c] = bitcast_d2u64(op[0]->value.d[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_bitcast_d2i64: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_DOUBLE: + data.i64[c] = bitcast_d2i64(op[0]->value.d[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_i642i: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT64: + data.i[c] = op[0]->value.i64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_u642i: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT64: + data.i[c] = op[0]->value.u64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_i642u: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT64: + data.u[c] = op[0]->value.i64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_u642u: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT64: + data.u[c] = op[0]->value.u64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_i642b: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT64: + data.b[c] = op[0]->value.i64[c] != 0; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_i642f: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT64: + data.f[c] = op[0]->value.i64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_u642f: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT64: + data.f[c] = op[0]->value.u64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_i642d: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT64: + data.d[c] = op[0]->value.i64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_u642d: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT64: + data.d[c] = op[0]->value.u64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_i2i64: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT: + data.i64[c] = op[0]->value.i[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_u2i64: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.i64[c] = op[0]->value.u[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_b2i64: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_BOOL: + data.i64[c] = op[0]->value.b[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_f2i64: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.i64[c] = op[0]->value.f[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_d2i64: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_DOUBLE: + data.i64[c] = op[0]->value.d[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_i2u64: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT: + data.u64[c] = op[0]->value.i[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_u2u64: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.u64[c] = op[0]->value.u[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_f2u64: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.u64[c] = op[0]->value.f[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_d2u64: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_DOUBLE: + data.u64[c] = op[0]->value.d[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_u642i64: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT64: + data.i64[c] = op[0]->value.u64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_i642u64: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_INT64: + data.u64[c] = op[0]->value.i64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_trunc: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = truncf(op[0]->value.f[c]); + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = trunc(op[0]->value.d[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_ceil: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = ceilf(op[0]->value.f[c]); + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = ceil(op[0]->value.d[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_floor: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = floorf(op[0]->value.f[c]); + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = floor(op[0]->value.d[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_fract: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = op[0]->value.f[c] - floorf(op[0]->value.f[c]); + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = op[0]->value.d[c] - floor(op[0]->value.d[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_round_even: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = _mesa_roundevenf(op[0]->value.f[c]); + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = _mesa_roundeven(op[0]->value.d[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_sin: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = sinf(op[0]->value.f[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_cos: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = cosf(op[0]->value.f[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_atan: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = atan(op[0]->value.f[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_dFdx: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = 0.0f; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_dFdx_coarse: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = 0.0f; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_dFdx_fine: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = 0.0f; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_dFdy: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = 0.0f; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_dFdy_coarse: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = 0.0f; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_dFdy_fine: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = 0.0f; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_pack_snorm_2x16: + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.u[0] = pack_2x16(pack_snorm_1x16, op[0]->value.f[0], op[0]->value.f[1]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + break; + + case ir_unop_pack_snorm_4x8: + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.u[0] = pack_4x8(pack_snorm_1x8, op[0]->value.f[0], op[0]->value.f[1], op[0]->value.f[2], op[0]->value.f[3]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + break; + + case ir_unop_pack_unorm_2x16: + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.u[0] = pack_2x16(pack_unorm_1x16, op[0]->value.f[0], op[0]->value.f[1]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + break; + + case ir_unop_pack_unorm_4x8: + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.u[0] = pack_4x8(pack_unorm_1x8, op[0]->value.f[0], op[0]->value.f[1], op[0]->value.f[2], op[0]->value.f[3]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + break; + + case ir_unop_pack_half_2x16: + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.u[0] = pack_2x16(pack_half_1x16, op[0]->value.f[0], op[0]->value.f[1]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + break; + +@@ -1060,76 +1060,76 @@ + data.i[c] = bitfield_reverse(op[0]->value.i[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_bit_count: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.i[c] = util_bitcount(op[0]->value.u[c]); + break; + case GLSL_TYPE_INT: + data.i[c] = util_bitcount(op[0]->value.i[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_find_msb: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.i[c] = find_msb_uint(op[0]->value.u[c]); + break; + case GLSL_TYPE_INT: + data.i[c] = find_msb_int(op[0]->value.i[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_find_lsb: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.i[c] = find_msb_uint(op[0]->value.u[c] & -op[0]->value.u[c]); + break; + case GLSL_TYPE_INT: + data.i[c] = find_msb_uint(op[0]->value.i[c] & -op[0]->value.i[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_clz: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.u[c] = (unsigned)(31 - find_msb_uint(op[0]->value.u[c])); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_unop_saturate: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = CLAMP(op[0]->value.f[c], 0.0f, 1.0f); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -1200,7 +1200,7 @@ + data.i64[c] = op[0]->value.i64[c0] + op[1]->value.i64[c1]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -1231,112 +1231,112 @@ + data.i64[c] = op[0]->value.i64[c0] - op[1]->value.i64[c1]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_add_sat: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.u[c] = (op[0]->value.u[c] + op[1]->value.u[c]) < op[0]->value.u[c] ? UINT32_MAX : (op[0]->value.u[c] + op[1]->value.u[c]); + break; + case GLSL_TYPE_INT: + data.i[c] = iadd_saturate(op[0]->value.i[c], op[1]->value.i[c]); + break; + case GLSL_TYPE_UINT64: + data.u64[c] = (op[0]->value.u64[c] + op[1]->value.u64[c]) < op[0]->value.u64[c] ? UINT64_MAX : (op[0]->value.u64[c] + op[1]->value.u64[c]); + break; + case GLSL_TYPE_INT64: + data.i64[c] = iadd64_saturate(op[0]->value.i64[c], op[1]->value.i64[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_sub_sat: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.u[c] = (op[1]->value.u[c] > op[0]->value.u[c]) ? 0 : op[0]->value.u[c] - op[1]->value.u[c]; + break; + case GLSL_TYPE_INT: + data.i[c] = isub_saturate(op[0]->value.i[c], op[1]->value.i[c]); + break; + case GLSL_TYPE_UINT64: + data.u64[c] = (op[1]->value.u64[c] > op[0]->value.u64[c]) ? 0 : op[0]->value.u64[c] - op[1]->value.u64[c]; + break; + case GLSL_TYPE_INT64: + data.i64[c] = isub64_saturate(op[0]->value.i64[c], op[1]->value.i64[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_abs_sub: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.u[c] = (op[1]->value.u[c] > op[0]->value.u[c]) ? op[1]->value.u[c] - op[0]->value.u[c] : op[0]->value.u[c] - op[1]->value.u[c]; + break; + case GLSL_TYPE_INT: + data.i[c] = (op[1]->value.i[c] > op[0]->value.i[c]) ? (unsigned)op[1]->value.i[c] - (unsigned)op[0]->value.i[c] : (unsigned)op[0]->value.i[c] - (unsigned)op[1]->value.i[c]; + break; + case GLSL_TYPE_UINT64: + data.u64[c] = (op[1]->value.u64[c] > op[0]->value.u64[c]) ? op[1]->value.u64[c] - op[0]->value.u64[c] : op[0]->value.u64[c] - op[1]->value.u64[c]; + break; + case GLSL_TYPE_INT64: + data.i64[c] = (op[1]->value.i64[c] > op[0]->value.i64[c]) ? (uint64_t)op[1]->value.i64[c] - (uint64_t)op[0]->value.i64[c] : (uint64_t)op[0]->value.i64[c] - (uint64_t)op[1]->value.i64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_avg: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.u[c] = (op[0]->value.u[c] >> 1) + (op[1]->value.u[c] >> 1) + ((op[0]->value.u[c] & op[1]->value.u[c]) & 1); + break; + case GLSL_TYPE_INT: + data.i[c] = (op[0]->value.i[c] >> 1) + (op[1]->value.i[c] >> 1) + ((op[0]->value.i[c] & op[1]->value.i[c]) & 1); + break; + case GLSL_TYPE_UINT64: + data.u64[c] = (op[0]->value.u64[c] >> 1) + (op[1]->value.u64[c] >> 1) + ((op[0]->value.u64[c] & op[1]->value.u64[c]) & 1); + break; + case GLSL_TYPE_INT64: + data.i64[c] = (op[0]->value.i64[c] >> 1) + (op[1]->value.i64[c] >> 1) + ((op[0]->value.i64[c] & op[1]->value.i64[c]) & 1); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_avg_round: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.u[c] = (op[0]->value.u[c] >> 1) + (op[1]->value.u[c] >> 1) + ((op[0]->value.u[c] | op[1]->value.u[c]) & 1); + break; + case GLSL_TYPE_INT: + data.i[c] = (op[0]->value.i[c] >> 1) + (op[1]->value.i[c] >> 1) + ((op[0]->value.i[c] | op[1]->value.i[c]) & 1); + break; + case GLSL_TYPE_UINT64: + data.u64[c] = (op[0]->value.u64[c] >> 1) + (op[1]->value.u64[c] >> 1) + ((op[0]->value.u64[c] | op[1]->value.u64[c]) & 1); + break; + case GLSL_TYPE_INT64: + data.i64[c] = (op[0]->value.i64[c] >> 1) + (op[1]->value.i64[c] >> 1) + ((op[0]->value.i64[c] | op[1]->value.i64[c]) & 1); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -1369,7 +1369,7 @@ + data.i64[c] = op[0]->value.i64[c0] * op[1]->value.i64[c1]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + } else { +@@ -1411,7 +1411,7 @@ + data.i[c] = op[0]->value.i[c] * (int16_t)op[0]->value.i[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -1442,7 +1442,7 @@ + data.i64[c] = op[1]->value.i64[c1] == 0 ? 0 : op[0]->value.i64[c0] / op[1]->value.i64[c1]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -1473,61 +1473,61 @@ + data.i64[c] = op[1]->value.i64[c1] == 0 ? 0 : op[0]->value.i64[c0] % op[1]->value.i64[c1]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_less: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.b[c] = op[0]->value.u[c] < op[1]->value.u[c]; + break; + case GLSL_TYPE_INT: + data.b[c] = op[0]->value.i[c] < op[1]->value.i[c]; + break; + case GLSL_TYPE_FLOAT: + data.b[c] = op[0]->value.f[c] < op[1]->value.f[c]; + break; + case GLSL_TYPE_DOUBLE: + data.b[c] = op[0]->value.d[c] < op[1]->value.d[c]; + break; + case GLSL_TYPE_UINT64: + data.b[c] = op[0]->value.u64[c] < op[1]->value.u64[c]; + break; + case GLSL_TYPE_INT64: + data.b[c] = op[0]->value.i64[c] < op[1]->value.i64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_gequal: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.b[c] = op[0]->value.u[c] >= op[1]->value.u[c]; + break; + case GLSL_TYPE_INT: + data.b[c] = op[0]->value.i[c] >= op[1]->value.i[c]; + break; + case GLSL_TYPE_FLOAT: + data.b[c] = op[0]->value.f[c] >= op[1]->value.f[c]; + break; + case GLSL_TYPE_DOUBLE: + data.b[c] = op[0]->value.d[c] >= op[1]->value.d[c]; + break; + case GLSL_TYPE_UINT64: + data.b[c] = op[0]->value.u64[c] >= op[1]->value.u64[c]; + break; + case GLSL_TYPE_INT64: + data.b[c] = op[0]->value.i64[c] >= op[1]->value.i64[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -1557,7 +1557,7 @@ + data.b[c] = op[0]->value.b[c] == op[1]->value.b[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -1587,7 +1587,7 @@ + data.b[c] = op[0]->value.b[c] != op[1]->value.b[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -1627,7 +1627,7 @@ + data.i64[c] = op[0]->value.i64[c0] << op[1]->value.i64[c1]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -1659,132 +1659,132 @@ + data.i64[c] = op[0]->value.i64[c0] >> op[1]->value.i64[c1]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_bit_and: + assert(op[0]->type == op[1]->type || op0_scalar || op1_scalar); + for (unsigned c = 0, c0 = 0, c1 = 0; + c < components; + c0 += c0_inc, c1 += c1_inc, c++) { + + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.u[c] = op[0]->value.u[c0] & op[1]->value.u[c1]; + break; + case GLSL_TYPE_INT: + data.i[c] = op[0]->value.i[c0] & op[1]->value.i[c1]; + break; + case GLSL_TYPE_UINT64: + data.u64[c] = op[0]->value.u64[c0] & op[1]->value.u64[c1]; + break; + case GLSL_TYPE_INT64: + data.i64[c] = op[0]->value.i64[c0] & op[1]->value.i64[c1]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_bit_xor: + assert(op[0]->type == op[1]->type || op0_scalar || op1_scalar); + for (unsigned c = 0, c0 = 0, c1 = 0; + c < components; + c0 += c0_inc, c1 += c1_inc, c++) { + + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.u[c] = op[0]->value.u[c0] ^ op[1]->value.u[c1]; + break; + case GLSL_TYPE_INT: + data.i[c] = op[0]->value.i[c0] ^ op[1]->value.i[c1]; + break; + case GLSL_TYPE_UINT64: + data.u64[c] = op[0]->value.u64[c0] ^ op[1]->value.u64[c1]; + break; + case GLSL_TYPE_INT64: + data.i64[c] = op[0]->value.i64[c0] ^ op[1]->value.i64[c1]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_bit_or: + assert(op[0]->type == op[1]->type || op0_scalar || op1_scalar); + for (unsigned c = 0, c0 = 0, c1 = 0; + c < components; + c0 += c0_inc, c1 += c1_inc, c++) { + + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.u[c] = op[0]->value.u[c0] | op[1]->value.u[c1]; + break; + case GLSL_TYPE_INT: + data.i[c] = op[0]->value.i[c0] | op[1]->value.i[c1]; + break; + case GLSL_TYPE_UINT64: + data.u64[c] = op[0]->value.u64[c0] | op[1]->value.u64[c1]; + break; + case GLSL_TYPE_INT64: + data.i64[c] = op[0]->value.i64[c0] | op[1]->value.i64[c1]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_logic_and: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_BOOL: + data.b[c] = op[0]->value.b[c] && op[1]->value.b[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_logic_xor: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_BOOL: + data.b[c] = op[0]->value.b[c] != op[1]->value.b[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_logic_or: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_BOOL: + data.b[c] = op[0]->value.b[c] || op[1]->value.b[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_dot: + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[0] = dot_f(op[0], op[1]); + break; + case GLSL_TYPE_DOUBLE: + data.d[0] = dot_d(op[0], op[1]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + break; + +@@ -1814,7 +1814,7 @@ + data.i64[c] = MIN2(op[0]->value.i64[c0], op[1]->value.i64[c1]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -1845,34 +1845,34 @@ + data.i64[c] = MAX2(op[0]->value.i64[c0], op[1]->value.i64[c1]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_pow: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = powf(op[0]->value.f[c], op[1]->value.f[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_binop_ldexp: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = ldexpf_flush_subnormal(op[0]->value.f[c], op[1]->value.i[c]); + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = ldexp_flush_subnormal(op[0]->value.d[c], op[1]->value.i[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -1904,54 +1904,54 @@ + data.b[0] = op[0]->value.b[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + break; + } + + case ir_binop_atan2: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = atan2(op[0]->value.f[c], op[1]->value.f[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_triop_fma: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = op[0]->value.f[c] * op[1]->value.f[c] + op[2]->value.f[c]; + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = op[0]->value.d[c] * op[1]->value.d[c] + op[2]->value.d[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_triop_lrp: { + assert(op[0]->type->is_float() || op[0]->type->is_double()); + assert(op[1]->type->is_float() || op[1]->type->is_double()); + assert(op[2]->type->is_float() || op[2]->type->is_double()); + + unsigned c2_inc = op[2]->type->is_scalar() ? 0 : 1; + for (unsigned c = 0, c2 = 0; c < components; c2 += c2_inc, c++) { + switch (this->type->base_type) { + case GLSL_TYPE_FLOAT: + data.f[c] = op[0]->value.f[c] * (1.0f - op[2]->value.f[c2]) + (op[1]->value.f[c] * op[2]->value.f[c2]); + break; + case GLSL_TYPE_DOUBLE: + data.d[c] = op[0]->value.d[c] * (1.0 - op[2]->value.d[c2]) + (op[1]->value.d[c] * op[2]->value.d[c2]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -1982,22 +1982,22 @@ + data.b[c] = op[0]->value.b[c] ? op[1]->value.b[c] : op[2]->value.b[c]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; + + case ir_triop_bitfield_extract: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.i[c] = bitfield_extract_uint(op[0]->value.u[c], op[1]->value.i[c], op[2]->value.i[c]); + break; + case GLSL_TYPE_INT: + data.i[c] = bitfield_extract_int(op[0]->value.i[c], op[1]->value.i[c], op[2]->value.i[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -2030,22 +2030,22 @@ + data.b[idx] = op[1]->value.b[0]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + break; + } + + case ir_quadop_bitfield_insert: + for (unsigned c = 0; c < op[0]->type->components(); c++) { + switch (op[0]->type->base_type) { + case GLSL_TYPE_UINT: + data.u[c] = bitfield_insert(op[0]->value.u[c], op[1]->value.u[c], op[2]->value.i[c], op[3]->value.i[c]); + break; + case GLSL_TYPE_INT: + data.i[c] = bitfield_insert(op[0]->value.i[c], op[1]->value.i[c], op[2]->value.i[c], op[3]->value.i[c]); + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +@@ -2075,7 +2075,7 @@ + data.b[c] = op[c]->value.b[0]; + break; + default: +- unreachable("invalid type"); ++ UNREACHABLE("invalid type"); + } + } + break; +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_print_glsl_visitor.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_print_glsl_visitor.cpp +index d15bfd0e5640..b7618753c2c3 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_print_glsl_visitor.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_print_glsl_visitor.cpp +@@ -835,7 +835,7 @@ static const char* operator_glsl_str(ir_expression_operation op, const glsl_type + case ir_triop_lrp: + return "mix"; + default: +- unreachable("Unexpected operator in operator_glsl_str"); ++ UNREACHABLE("Unexpected operator in operator_glsl_str"); + return "UNIMPLEMENTED"; + } + } +@@ -1891,21 +1891,21 @@ interface_packing_string(enum glsl_interface_packing packing) + case GLSL_INTERFACE_PACKING_STD430: + return "std430"; + default: +- unreachable("Unexpected interface packing"); ++ UNREACHABLE("Unexpected interface packing"); + return "UNKNOWN"; + } + } + + static const char* + interface_variable_mode_string(enum ir_variable_mode mode) + { + switch (mode) { + case ir_var_uniform: + return "uniform"; + case ir_var_shader_storage: + return "buffer"; + default: +- unreachable("Unexpected interface variable mode"); ++ UNREACHABLE("Unexpected interface variable mode"); + return "UNKOWN"; + } + } +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_print_visitor.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_print_visitor.cpp +index d621c2670032..964177fd11b7 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_print_visitor.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/ir_print_visitor.cpp +@@ -381,7 +381,7 @@ void ir_print_visitor::visit(ir_texture *ir) + ir->lod_info.component->accept(this); + break; + case ir_samples_identical: +- unreachable("ir_samples_identical was already handled"); ++ UNREACHABLE("ir_samples_identical was already handled"); + }; + fprintf(f, ")"); + } +@@ -522,7 +522,7 @@ void ir_print_visitor::visit(ir_constant *ir) + fprintf(f, "%f", ir->value.d[i]); + break; + default: +- unreachable("Invalid constant type"); ++ UNREACHABLE("Invalid constant type"); + } + } + } +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/linker.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/linker.cpp +index 212abf084b2e..112076d40733 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/linker.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/linker.cpp +@@ -3988,7 +3988,7 @@ add_packed_varyings(const struct gl_context *ctx, + iface = GL_PROGRAM_OUTPUT; + break; + default: +- unreachable("unexpected type"); ++ UNREACHABLE("unexpected type"); + } + + if (type == iface) { +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/loop_analysis.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/loop_analysis.cpp +index 9429e69c2a7f..445bfd06c01b 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/loop_analysis.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/loop_analysis.cpp +@@ -171,7 +171,7 @@ calculate_iterations(ir_rvalue *from, ir_rvalue *to, ir_rvalue *increment, + iter = new(mem_ctx) ir_constant(double(iter_value + bias[i])); + break; + default: +- unreachable("Unsupported type for loop iterator."); ++ UNREACHABLE("Unsupported type for loop iterator."); + } + + ir_expression *const mul = +@@ -238,7 +238,7 @@ incremented_before_terminator(ir_loop *loop, ir_variable *var, + } + } + +- unreachable("Unable to find induction variable"); ++ UNREACHABLE("Unable to find induction variable"); + } + + /** +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_blend_equation_advanced.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_blend_equation_advanced.cpp +index c85b39bcaa34..1a7b8d4e8d6a 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_blend_equation_advanced.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_blend_equation_advanced.cpp +@@ -386,7 +386,7 @@ calc_blend_result(ir_factory f, + break; + case BLEND_NONE: + case BLEND_ALL: +- unreachable("not real cases"); ++ UNREACHABLE("not real cases"); + } + + if (val) +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_buffer_access.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_buffer_access.cpp +index a6e2f741ebe6..c97f497c384d 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_buffer_access.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_buffer_access.cpp +@@ -244,19 +244,19 @@ lower_buffer_access::is_dereferenced_thing_row_major(const ir_rvalue *deref) + return matrix || deref->type->without_array()->is_struct(); + } + +- unreachable("invalid matrix layout"); ++ UNREACHABLE("invalid matrix layout"); + break; + } + + default: + return false; + } + } + + /* The tree must have ended with a dereference that wasn't an + * ir_dereference_variable. That is invalid, and it should be impossible. + */ +- unreachable("invalid dereference tree"); ++ UNREACHABLE("invalid dereference tree"); + return false; + } + +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_distance.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_distance.cpp +index b4e730c64fbd..749bfc509748 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_distance.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_distance.cpp +@@ -155,7 +155,7 @@ lower_distance_visitor::visit(ir_variable *ir) + old_var = &old_distance_in_var; + new_var = &new_distance_in_var; + } else { +- unreachable("not reached"); ++ UNREACHABLE("not reached"); + } + + this->progress = true; +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_ubo_reference.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_ubo_reference.cpp +index 08d4f72efa0a..3a44c60c7abe 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_ubo_reference.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/lower_ubo_reference.cpp +@@ -549,7 +549,7 @@ lower_ubo_reference_visitor::insert_buffer_access(void *mem_ctx, + } + break; + default: +- unreachable("invalid buffer_access_type in insert_buffer_access"); ++ UNREACHABLE("invalid buffer_access_type in insert_buffer_access"); + } + } + +@@ -730,7 +730,7 @@ lower_ubo_reference_visitor::calculate_unsized_array_stride(ir_dereference *dere + break; + } + default: +- unreachable("Unsupported dereference type"); ++ UNREACHABLE("Unsupported dereference type"); + } + return array_stride; + } +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_algebraic.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_algebraic.cpp +index 7cef4fc6ef93..ecb592d5c13d 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_algebraic.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_algebraic.cpp +@@ -995,7 +995,7 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir) + break; + default: + one = NULL; +- unreachable("unexpected type"); ++ UNREACHABLE("unexpected type"); + } + + return mul(ir->operands[0], add(one, neg(ir->operands[2]))); +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_minmax.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_minmax.cpp +index 36fe0a9f05b6..a56ef38b81b1 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_minmax.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_minmax.cpp +@@ -154,7 +154,7 @@ compare_components(ir_constant *a, ir_constant *b) + foundequal = true; + break; + default: +- unreachable("not reached"); ++ UNREACHABLE("not reached"); + } + } + +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_vectorize.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_vectorize.cpp +index 88318cd8a6eb..9475467629c9 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_vectorize.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl/opt_vectorize.cpp +@@ -228,7 +228,7 @@ write_mask_to_swizzle(unsigned write_mask) + case WRITEMASK_Z: return SWIZZLE_Z; + case WRITEMASK_W: return SWIZZLE_W; + } +- unreachable("not reached"); ++ UNREACHABLE("not reached"); + } + + /** +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.cpp b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.cpp +index 445659599c22..77ea8b11ff87 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.cpp ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.cpp +@@ -459,7 +459,7 @@ const glsl_type *glsl_type::get_bare_type() const + return this; + } + +- unreachable("Invalid base type"); ++ UNREACHABLE("Invalid base type"); + } + + const glsl_type *glsl_type::get_float16_type() const +@@ -899,7 +899,7 @@ glsl_type::get_sampler_instance(enum glsl_sampler_dim dim, + return error_type; + } + +- unreachable("switch statement above should be complete"); ++ UNREACHABLE("switch statement above should be complete"); + } + + const glsl_type * +@@ -998,7 +998,7 @@ glsl_type::get_image_instance(enum glsl_sampler_dim dim, + return error_type; + } + +- unreachable("switch statement above should be complete"); ++ UNREACHABLE("switch statement above should be complete"); + } + + const glsl_type * +@@ -2015,7 +2015,7 @@ glsl_type::get_explicit_std140_type(bool row_major) const + delete[] fields; + return type; + } else { +- unreachable("Invalid type for UBO or SSBO"); ++ UNREACHABLE("Invalid type for UBO or SSBO"); + } + } + +@@ -2373,7 +2373,7 @@ glsl_type::get_explicit_std430_type(bool row_major) const + delete[] fields; + return type; + } else { +- unreachable("Invalid type for SSBO"); ++ UNREACHABLE("Invalid type for SSBO"); + } + } + +@@ -2447,7 +2447,7 @@ glsl_type::get_explicit_type_for_size_align(glsl_type_size_align_func type_info, + return glsl_type::get_instance(this->base_type, this->vector_elements, + this->matrix_columns, stride, false); + } else { +- unreachable("Unhandled type."); ++ UNREACHABLE("Unhandled type."); + } + } + +@@ -2583,7 +2583,7 @@ glsl_type::count_dword_slots(bool is_bindless) const + case GLSL_TYPE_ERROR: + case GLSL_TYPE_FUNCTION: + default: +- unreachable("invalid type in st_glsl_type_dword_size()"); ++ UNREACHABLE("invalid type in st_glsl_type_dword_size()"); + } + + return 0; +@@ -2947,7 +2947,7 @@ glsl_get_sampler_dim_coordinate_components(enum glsl_sampler_dim dim) + case GLSL_SAMPLER_DIM_CUBE: + return 3; + default: +- unreachable("Unknown sampler dim"); ++ UNREACHABLE("Unknown sampler dim"); + } + } + +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.h b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.h +index f709bdd702e2..45d608ce47e3 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.h ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/glsl_types.h +@@ -187,7 +187,7 @@ glsl_base_type_get_bit_size(const enum glsl_base_type base_type) + return 64; + + default: +- unreachable("unknown base type"); ++ UNREACHABLE("unknown base type"); + } + + return 0; +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/compiler/shader_enums.c b/third_party/rust/glslopt/glsl-optimizer/src/compiler/shader_enums.c +index a2a5eb82a61f..6df48d39abc0 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/compiler/shader_enums.c ++++ b/third_party/rust/glslopt/glsl-optimizer/src/compiler/shader_enums.c +@@ -66,27 +66,27 @@ _mesa_shader_stage_to_string(unsigned stage) + case MESA_SHADER_TESS_EVAL: return "tessellation evaluation"; + } + +- unreachable("Unknown shader stage."); ++ UNREACHABLE("Unknown shader stage."); + } + + /** + * Translate a gl_shader_stage to a shader stage abbreviation (VS, GS, FS) + * for debug printouts and error messages. + */ + const char * + _mesa_shader_stage_to_abbrev(unsigned stage) + { + switch (stage) { + case MESA_SHADER_VERTEX: return "VS"; + case MESA_SHADER_FRAGMENT: return "FS"; + case MESA_SHADER_GEOMETRY: return "GS"; + case MESA_SHADER_COMPUTE: return "CS"; + case MESA_SHADER_KERNEL: return "CL"; + case MESA_SHADER_TESS_CTRL: return "TCS"; + case MESA_SHADER_TESS_EVAL: return "TES"; + } + +- unreachable("Unknown shader stage."); ++ UNREACHABLE("Unknown shader stage."); + } + + const char * +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/mesa/main/shaderobj.h b/third_party/rust/glslopt/glsl-optimizer/src/mesa/main/shaderobj.h +index 0d512550de47..3f105d64d21b 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/mesa/main/shaderobj.h ++++ b/third_party/rust/glslopt/glsl-optimizer/src/mesa/main/shaderobj.h +@@ -140,7 +140,7 @@ _mesa_shader_enum_to_shader_stage(GLenum v) + case GL_COMPUTE_SHADER: + return MESA_SHADER_COMPUTE; + default: +- unreachable("bad value in _mesa_shader_enum_to_shader_stage()"); ++ UNREACHABLE("bad value in _mesa_shader_enum_to_shader_stage()"); + } + } + +@@ -184,75 +184,75 @@ _mesa_shader_stage_from_subroutine_uniform(GLenum subuniform) + case GL_TESS_EVALUATION_SUBROUTINE_UNIFORM: + return MESA_SHADER_TESS_EVAL; + } +- unreachable("not reached"); ++ UNREACHABLE("not reached"); + } + + static inline gl_shader_stage + _mesa_shader_stage_from_subroutine(GLenum subroutine) + { + switch (subroutine) { + case GL_VERTEX_SUBROUTINE: + return MESA_SHADER_VERTEX; + case GL_GEOMETRY_SUBROUTINE: + return MESA_SHADER_GEOMETRY; + case GL_FRAGMENT_SUBROUTINE: + return MESA_SHADER_FRAGMENT; + case GL_COMPUTE_SUBROUTINE: + return MESA_SHADER_COMPUTE; + case GL_TESS_CONTROL_SUBROUTINE: + return MESA_SHADER_TESS_CTRL; + case GL_TESS_EVALUATION_SUBROUTINE: + return MESA_SHADER_TESS_EVAL; + } +- unreachable("not reached"); ++ UNREACHABLE("not reached"); + } + + static inline GLenum + _mesa_shader_stage_to_subroutine(gl_shader_stage stage) + { + switch (stage) { + case MESA_SHADER_VERTEX: + return GL_VERTEX_SUBROUTINE; + case MESA_SHADER_GEOMETRY: + return GL_GEOMETRY_SUBROUTINE; + case MESA_SHADER_FRAGMENT: + return GL_FRAGMENT_SUBROUTINE; + case MESA_SHADER_COMPUTE: + return GL_COMPUTE_SUBROUTINE; + case MESA_SHADER_TESS_CTRL: + return GL_TESS_CONTROL_SUBROUTINE; + case MESA_SHADER_TESS_EVAL: + return GL_TESS_EVALUATION_SUBROUTINE; + case MESA_SHADER_NONE: + break; + case MESA_SHADER_KERNEL: +- unreachable("not reached"); ++ UNREACHABLE("not reached"); + break; + } +- unreachable("not reached"); ++ UNREACHABLE("not reached"); + } + + static inline GLenum + _mesa_shader_stage_to_subroutine_uniform(gl_shader_stage stage) + { + switch (stage) { + case MESA_SHADER_VERTEX: + return GL_VERTEX_SUBROUTINE_UNIFORM; + case MESA_SHADER_GEOMETRY: + return GL_GEOMETRY_SUBROUTINE_UNIFORM; + case MESA_SHADER_FRAGMENT: + return GL_FRAGMENT_SUBROUTINE_UNIFORM; + case MESA_SHADER_COMPUTE: + return GL_COMPUTE_SUBROUTINE_UNIFORM; + case MESA_SHADER_TESS_CTRL: + return GL_TESS_CONTROL_SUBROUTINE_UNIFORM; + case MESA_SHADER_TESS_EVAL: + return GL_TESS_EVALUATION_SUBROUTINE_UNIFORM; + case MESA_SHADER_NONE: + case MESA_SHADER_KERNEL: + break; + } +- unreachable("not reached"); ++ UNREACHABLE("not reached"); + } + + extern bool +diff --git a/third_party/rust/glslopt/glsl-optimizer/src/util/macros.h b/third_party/rust/glslopt/glsl-optimizer/src/util/macros.h +index fcace4e351d6..e4dfd67c8cc2 100644 +--- a/third_party/rust/glslopt/glsl-optimizer/src/util/macros.h ++++ b/third_party/rust/glslopt/glsl-optimizer/src/util/macros.h +@@ -68,24 +68,34 @@ + } while (0) + + ++/** ++ * Unreachable macro. Useful for suppressing "control reaches end of non-void ++ * function" warnings. ++ */ + /** + * Unreachable macro. Useful for suppressing "control reaches end of non-void + * function" warnings. + */ + #if defined(HAVE___BUILTIN_UNREACHABLE) || __has_builtin(__builtin_unreachable) +-#define unreachable(str) \ ++#define UNREACHABLE(str) \ + do { \ ++ (void)"" str; /* str must be a string literal */ \ + assert(!str); \ + __builtin_unreachable(); \ + } while (0) + #elif defined (_MSC_VER) +-#define unreachable(str) \ ++#define UNREACHABLE(str) \ + do { \ ++ (void)"" str; /* str must be a string literal */ \ + assert(!str); \ + __assume(0); \ + } while (0) + #else +-#define unreachable(str) assert(!str) ++#define UNREACHABLE(str) \ ++do { \ ++ (void)"" str; /* str must be a string literal */ \ ++ assert(!str); \ ++} while (0) + #endif + + /** +@@ -190,8 +200,10 @@ do { \ + * performs no action and all member variables and base classes are + * trivially destructible themselves. + */ +-# if (defined(__clang__) && defined(__has_feature)) +-# if __has_feature(has_trivial_destructor) ++# if defined(__clang__) ++# if __has_builtin(__is_trivially_destructible) ++# define HAS_TRIVIAL_DESTRUCTOR(T) __is_trivially_destructible(T) ++# elif (defined(__has_feature) && __has_feature(has_trivial_destructor)) + # define HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T) + # endif + # elif defined(__GNUC__) +diff --git a/third_party/rust/glslopt/src/bindings.rs b/third_party/rust/glslopt/src/bindings.rs +index f4e5bebd08ba..5c1ca487d5e9 100644 +--- a/third_party/rust/glslopt/src/bindings.rs ++++ b/third_party/rust/glslopt/src/bindings.rs +@@ -1,131 +1,131 @@ +-/* automatically generated by rust-bindgen */ ++/* automatically generated by rust-bindgen 0.72.1 */ + + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct glslopt_shader { + _unused: [u8; 0], + } + #[repr(C)] + #[derive(Debug, Copy, Clone)] + pub struct glslopt_ctx { + _unused: [u8; 0], + } + pub const glslopt_shader_type_kGlslOptShaderVertex: glslopt_shader_type = 0; + pub const glslopt_shader_type_kGlslOptShaderFragment: glslopt_shader_type = 1; +-pub type glslopt_shader_type = u32; ++pub type glslopt_shader_type = ::std::os::raw::c_uint; + pub const glslopt_options_kGlslOptionSkipPreprocessor: glslopt_options = 1; + pub const glslopt_options_kGlslOptionNotFullShader: glslopt_options = 2; +-pub type glslopt_options = u32; ++pub type glslopt_options = ::std::os::raw::c_uint; + pub const glslopt_target_kGlslTargetOpenGL: glslopt_target = 0; + pub const glslopt_target_kGlslTargetOpenGLES20: glslopt_target = 1; + pub const glslopt_target_kGlslTargetOpenGLES30: glslopt_target = 2; + pub const glslopt_target_kGlslTargetMetal: glslopt_target = 3; +-pub type glslopt_target = u32; ++pub type glslopt_target = ::std::os::raw::c_uint; + pub const glslopt_basic_type_kGlslTypeFloat: glslopt_basic_type = 0; + pub const glslopt_basic_type_kGlslTypeInt: glslopt_basic_type = 1; + pub const glslopt_basic_type_kGlslTypeBool: glslopt_basic_type = 2; + pub const glslopt_basic_type_kGlslTypeTex2D: glslopt_basic_type = 3; + pub const glslopt_basic_type_kGlslTypeTex3D: glslopt_basic_type = 4; + pub const glslopt_basic_type_kGlslTypeTexCube: glslopt_basic_type = 5; + pub const glslopt_basic_type_kGlslTypeTex2DShadow: glslopt_basic_type = 6; + pub const glslopt_basic_type_kGlslTypeTex2DArray: glslopt_basic_type = 7; + pub const glslopt_basic_type_kGlslTypeOther: glslopt_basic_type = 8; + pub const glslopt_basic_type_kGlslTypeCount: glslopt_basic_type = 9; +-pub type glslopt_basic_type = u32; ++pub type glslopt_basic_type = ::std::os::raw::c_uint; + pub const glslopt_precision_kGlslPrecHigh: glslopt_precision = 0; + pub const glslopt_precision_kGlslPrecMedium: glslopt_precision = 1; + pub const glslopt_precision_kGlslPrecLow: glslopt_precision = 2; + pub const glslopt_precision_kGlslPrecCount: glslopt_precision = 3; +-pub type glslopt_precision = u32; +-extern "C" { ++pub type glslopt_precision = ::std::os::raw::c_uint; ++unsafe extern "C" { + pub fn glslopt_initialize(target: glslopt_target) -> *mut glslopt_ctx; + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_cleanup(ctx: *mut glslopt_ctx); + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_set_max_unroll_iterations( + ctx: *mut glslopt_ctx, + iterations: ::std::os::raw::c_uint, + ); + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_optimize( + ctx: *mut glslopt_ctx, + type_: glslopt_shader_type, + shaderSource: *const ::std::os::raw::c_char, + options: ::std::os::raw::c_uint, + ) -> *mut glslopt_shader; + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_get_status(shader: *mut glslopt_shader) -> bool; + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_get_output(shader: *mut glslopt_shader) -> *const ::std::os::raw::c_char; + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_get_raw_output(shader: *mut glslopt_shader) -> *const ::std::os::raw::c_char; + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_get_log(shader: *mut glslopt_shader) -> *const ::std::os::raw::c_char; + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_shader_delete(shader: *mut glslopt_shader); + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_shader_get_input_count(shader: *mut glslopt_shader) -> ::std::os::raw::c_int; + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_shader_get_input_desc( + shader: *mut glslopt_shader, + index: ::std::os::raw::c_int, + outName: *mut *const ::std::os::raw::c_char, + outType: *mut glslopt_basic_type, + outPrec: *mut glslopt_precision, + outVecSize: *mut ::std::os::raw::c_int, + outMatSize: *mut ::std::os::raw::c_int, + outArraySize: *mut ::std::os::raw::c_int, + outLocation: *mut ::std::os::raw::c_int, + ); + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_shader_get_uniform_count(shader: *mut glslopt_shader) -> ::std::os::raw::c_int; + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_shader_get_uniform_total_size( + shader: *mut glslopt_shader, + ) -> ::std::os::raw::c_int; + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_shader_get_uniform_desc( + shader: *mut glslopt_shader, + index: ::std::os::raw::c_int, + outName: *mut *const ::std::os::raw::c_char, + outType: *mut glslopt_basic_type, + outPrec: *mut glslopt_precision, + outVecSize: *mut ::std::os::raw::c_int, + outMatSize: *mut ::std::os::raw::c_int, + outArraySize: *mut ::std::os::raw::c_int, + outLocation: *mut ::std::os::raw::c_int, + ); + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_shader_get_texture_count(shader: *mut glslopt_shader) -> ::std::os::raw::c_int; + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_shader_get_texture_desc( + shader: *mut glslopt_shader, + index: ::std::os::raw::c_int, + outName: *mut *const ::std::os::raw::c_char, + outType: *mut glslopt_basic_type, + outPrec: *mut glslopt_precision, + outVecSize: *mut ::std::os::raw::c_int, + outMatSize: *mut ::std::os::raw::c_int, + outArraySize: *mut ::std::os::raw::c_int, + outLocation: *mut ::std::os::raw::c_int, + ); + } +-extern "C" { ++unsafe extern "C" { + pub fn glslopt_shader_get_stats( + shader: *mut glslopt_shader, + approxMath: *mut ::std::os::raw::c_int, diff --git a/arch/firefox-fourier/patches/arch-0004-Bug-2023597-Use-wasm32-wasip1-target-for-clang-22.1-.patch b/arch/firefox-fourier/patches/arch-0004-Bug-2023597-Use-wasm32-wasip1-target-for-clang-22.1-.patch new file mode 100644 index 000000000..815ed6a96 --- /dev/null +++ b/arch/firefox-fourier/patches/arch-0004-Bug-2023597-Use-wasm32-wasip1-target-for-clang-22.1-.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Alex Hochheiden +Date: Wed, 1 Apr 2026 18:11:37 +0000 +Subject: [PATCH] Bug 2023597 - Use `wasm32-wasip1` target for clang >= 22.1 + r=firefox-build-system-reviewers,sergesanspaille + +https://github.com/llvm/llvm-project/pull/165345 +https://releases.llvm.org/22.1.0/tools/clang/docs/ReleaseNotes.html + +Differential Revision: https://phabricator.services.mozilla.com/D291023 +--- + build/moz.configure/toolchain.configure | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/build/moz.configure/toolchain.configure b/build/moz.configure/toolchain.configure +index a37ed610cc43..c7d0c8bdf75c 100644 +--- a/build/moz.configure/toolchain.configure ++++ b/build/moz.configure/toolchain.configure +@@ -695,6 +695,9 @@ def check_compiler(configure_cache, compiler, language, target, android_version) + # This makes clang define __ANDROID_API__ and use versioned library + # directories from the NDK. + toolchain = "%s%d" % (target.toolchain, android_version) ++ elif target.kernel == "WASI" and info.type == "clang" and info.version >= Version("22.1"): ++ # The wasm32-wasi target was renamed to wasm32-wasip1 in LLVM 22.1. ++ toolchain = "wasm32-wasip1" + else: + toolchain = target.toolchain +