From c2c096e52ff48f35e2d4804d84cf3a874342a13d Mon Sep 17 00:00:00 2001 From: Schell Carl Scivally Date: Wed, 8 Jan 2025 17:59:34 +1300 Subject: [PATCH] feature: added xtask, don't track wgsl as text, remove wgsl files (#148) * don't track wgsl as text, remove wgsl files use linguist-generated=true in gitattributes * added xtask, added renderling-build, updated deps, use GrayImage for depth reading, regenerate linkage * fix cargo gpu show cache * use xtask to compile shaders on CI * regenerate shaders * don't assert the shader dirs existence when creating paths * update rust-gpu build values, don't err if shader dir is missing * Trigger linguist re-evaluation * bump workflow caches * show cargo gpu commitsh * bump ci cargo cache, again * ensure cargo cache keys match --- .cargo/config.toml | 5 +- .gitattributes | 7 +- .github/workflows/push.yaml | 12 +- Cargo.lock | 469 ++++++++-- Cargo.toml | 14 +- crates/img-diff/Cargo.toml | 2 +- crates/img-diff/src/lib.rs | 22 + crates/renderling-build/Cargo.toml | 16 + crates/renderling-build/src/lib.rs | 181 ++++ crates/renderling/Cargo.toml | 15 +- ...volution-brdf_lut_convolution_fragment.spv | Bin 5140 -> 5140 bytes ...olution-brdf_lut_convolution_fragment.wgsl | 126 +-- ...prefilter_environment_cubemap_fragment.spv | Bin 6432 -> 6432 bytes ...refilter_environment_cubemap_fragment.wgsl | 74 +- ...n-prefilter_environment_cubemap_vertex.spv | Bin 12068 -> 12068 bytes ...-prefilter_environment_cubemap_vertex.wgsl | 92 +- .../shaders/cull-compute_culling.spv | Bin 26424 -> 26424 bytes .../shaders/cull-compute_culling.wgsl | 504 +++++------ .../shaders/debug-debug_overlay_fragment.spv | Bin 20744 -> 20744 bytes .../shaders/debug-debug_overlay_fragment.wgsl | 440 +++++----- .../shaders/skybox-skybox_cubemap_vertex.spv | Bin 11228 -> 11228 bytes .../shaders/skybox-skybox_cubemap_vertex.wgsl | 68 +- .../shaders/skybox-skybox_vertex.spv | Bin 9776 -> 9776 bytes .../shaders/skybox-skybox_vertex.wgsl | 68 +- .../shaders/stage-renderlet_fragment.spv | Bin 70028 -> 70028 bytes .../shaders/stage-renderlet_fragment.wgsl | 772 ++++++++--------- .../shaders/stage-renderlet_vertex.spv | Bin 42508 -> 42508 bytes .../shaders/stage-renderlet_vertex.wgsl | 806 +++++++++--------- .../tutorial-tutorial_slabbed_renderlet.spv | Bin 19076 -> 19076 bytes .../tutorial-tutorial_slabbed_renderlet.wgsl | 166 ++-- .../tutorial-tutorial_slabbed_vertices.spv | Bin 5716 -> 5716 bytes .../tutorial-tutorial_slabbed_vertices.wgsl | 84 +- ...-tutorial_slabbed_vertices_no_instance.spv | Bin 5092 -> 5092 bytes ...tutorial_slabbed_vertices_no_instance.wgsl | 82 +- crates/renderling/src/atlas/atlas_image.rs | 14 +- crates/renderling/src/build.rs | 165 +--- crates/renderling/src/color.rs | 21 +- crates/renderling/src/cull/cpu.rs | 35 +- crates/renderling/src/draw/cpu.rs | 2 +- .../src/linkage/bloom_downsample_fragment.rs | 4 +- .../src/linkage/bloom_mix_fragment.rs | 4 +- .../src/linkage/bloom_upsample_fragment.rs | 4 +- crates/renderling/src/linkage/bloom_vertex.rs | 4 +- .../linkage/brdf_lut_convolution_fragment.rs | 4 +- .../linkage/brdf_lut_convolution_vertex.rs | 4 +- .../linkage/compute_copy_depth_to_pyramid.rs | 4 +- ...pute_copy_depth_to_pyramid_multisampled.rs | 4 +- .../renderling/src/linkage/compute_culling.rs | 4 +- .../compute_downsample_depth_pyramid.rs | 4 +- .../src/linkage/debug_overlay_fragment.rs | 4 +- .../src/linkage/debug_overlay_vertex.rs | 4 +- .../src/linkage/di_convolution_fragment.rs | 4 +- .../src/linkage/generate_mipmap_fragment.rs | 4 +- .../src/linkage/generate_mipmap_vertex.rs | 4 +- .../prefilter_environment_cubemap_fragment.rs | 4 +- .../prefilter_environment_cubemap_vertex.rs | 4 +- .../src/linkage/renderlet_fragment.rs | 4 +- .../src/linkage/renderlet_vertex.rs | 4 +- .../src/linkage/skybox_cubemap_fragment.rs | 4 +- .../src/linkage/skybox_cubemap_vertex.rs | 4 +- .../skybox_equirectangular_fragment.rs | 4 +- .../renderling/src/linkage/skybox_vertex.rs | 4 +- .../src/linkage/tonemapping_fragment.rs | 4 +- .../src/linkage/tonemapping_vertex.rs | 4 +- .../tutorial_implicit_isosceles_vertex.rs | 4 +- .../src/linkage/tutorial_passthru_fragment.rs | 4 +- .../src/linkage/tutorial_slabbed_renderlet.rs | 4 +- .../src/linkage/tutorial_slabbed_vertices.rs | 4 +- .../tutorial_slabbed_vertices_no_instance.rs | 4 +- crates/renderling/src/stage/cpu.rs | 2 +- crates/renderling/src/texture.rs | 64 +- crates/xtask/Cargo.toml | 10 + crates/xtask/src/main.rs | 46 + 73 files changed, 2504 insertions(+), 2000 deletions(-) create mode 100644 crates/renderling-build/Cargo.toml create mode 100644 crates/renderling-build/src/lib.rs create mode 100644 crates/xtask/Cargo.toml create mode 100644 crates/xtask/src/main.rs diff --git a/.cargo/config.toml b/.cargo/config.toml index 3937a294..6a86f80d 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,6 +1,9 @@ [alias] -shaders = "gpu toml crates/renderling" +xtask = "run --package xtask --" [build] rustflags = ["--cfg=web_sys_unstable_apis"] rustdocflags = ["--cfg=web_sys_unstable_apis"] + +[env] +CARGO_WORKSPACE_DIR = { value = "", relative = true } diff --git a/.gitattributes b/.gitattributes index 7c3f0664..42f0b0f0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,6 @@ -* text=auto +*.txt text +*.rs text +*.md text +*.yaml text *.spv binary -*.wgsl binary +**/*.wgsl linguist-generated=true binary diff --git a/.github/workflows/push.yaml b/.github/workflows/push.yaml index d878aea7..5f88e0dc 100644 --- a/.github/workflows/push.yaml +++ b/.github/workflows/push.yaml @@ -33,14 +33,16 @@ jobs: - uses: actions/cache@v4 with: path: ~/.cargo - key: cargo-cache-${{ runner.os }} + # THIS KEY MUST MATCH BELOW + key: cargo-cache-1-${{ runner.os }} - uses: moonrepo/setup-rust@v1 - run: rustup default stable - run: rustup update - run: cargo install --git https://github.com/rust-gpu/cargo-gpu cargo-gpu + - run: cargo gpu show commitsh - id: cachepathstep run: | - CACHE_PATH=`cargo gpu show --cache-directory` + CACHE_PATH=`cargo gpu show cache-directory` echo $CACHE_PATH echo "cachepath-$RUNNER_OS=$CACHE_PATH" >> "$GITHUB_OUTPUT" @@ -61,7 +63,8 @@ jobs: - uses: actions/cache@v4 with: path: ~/.cargo - key: cargo-cache-${{ runner.os }} + # THIS KEY MUST MATCH ABOVE + key: cargo-cache-1-${{ runner.os }} - uses: actions/cache@v4 with: path: | @@ -70,8 +73,9 @@ jobs: ${{ needs.install-cargo-gpu.outputs.cachepath-Windows }} key: rust-gpu-cache-0-${{ runner.os }} - uses: moonrepo/setup-rust@v1 + - run: cargo gpu show commitsh - run: rm -rf crates/renderling/src/linkage/* crates/renderling/shaders - - run: cargo shaders + - run: cargo xtask compile-shaders - run: cargo build -p renderling - run: git diff --exit-code --no-ext-diff diff --git a/Cargo.lock b/Cargo.lock index cbe8b919..43dff4f0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "ab_glyph" @@ -46,6 +46,12 @@ dependencies = [ "memchr", ] +[[package]] +name = "aligned-vec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1" + [[package]] name = "allocator-api2" version = "0.2.19" @@ -146,6 +152,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "anyhow" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1fd03a028ef38ba2276dce7e33fcd6369c158a1bca17946c4b1b701891c1ff7" + [[package]] name = "approx" version = "0.3.2" @@ -164,6 +176,23 @@ dependencies = [ "num-traits", ] +[[package]] +name = "arbitrary" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" + +[[package]] +name = "arg_enum_proc_macro" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + [[package]] name = "arrayref" version = "0.3.9" @@ -279,6 +308,29 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "av1-grain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf" +dependencies = [ + "anyhow", + "arrayvec", + "log", + "nom", + "num-rational", + "v_frame", +] + +[[package]] +name = "avif-serialize" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e335041290c43101ca215eed6f43ec437eb5a42125573f600fc3fa42b9bddd62" +dependencies = [ + "arrayvec", +] + [[package]] name = "base64" version = "0.13.1" @@ -318,6 +370,12 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" +[[package]] +name = "bitstream-io" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2" + [[package]] name = "block" version = "0.1.6" @@ -346,6 +404,12 @@ dependencies = [ "piper", ] +[[package]] +name = "built" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c360505aed52b7ec96a3636c3f039d99103c37d1d9b4f7a8c743d3ea9ffcd03b" + [[package]] name = "bumpalo" version = "3.16.0" @@ -369,7 +433,7 @@ checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -433,6 +497,16 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" +[[package]] +name = "cfg-expr" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" +dependencies = [ + "smallvec", + "target-lexicon", +] + [[package]] name = "cfg-if" version = "1.0.0" @@ -480,9 +554,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.20" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97f376d85a664d5837dbae44bf546e6477a679ff6610010f17276f686d867e8" +checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84" dependencies = [ "clap_builder", "clap_derive", @@ -490,9 +564,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.20" +version = "4.5.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19bc80abd44e4bed93ca373a0704ccbd1b710dc5749406201bb018272808dc54" +checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838" dependencies = [ "anstream", "anstyle", @@ -509,14 +583,14 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] name = "clap_lex" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "cloudabi" @@ -648,7 +722,7 @@ checksum = "ef999dd82fff9dc1f2cf371c0f9a6315016b9562a04811fbefae2d80da6a1fad" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -713,7 +787,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" dependencies = [ "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -863,12 +937,12 @@ dependencies = [ name = "example" version = "0.1.0" dependencies = [ - "clap 4.5.20", + "clap 4.5.23", "env_logger", "futures-lite 1.13.0", "gltf", "icosahedron", - "image 0.24.9", + "image", "img-diff", "lazy_static", "loading-bytes", @@ -1001,7 +1075,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1125,7 +1199,7 @@ dependencies = [ "base64", "byteorder", "gltf-json", - "image 0.25.5", + "image", "lazy_static", "serde_json", "urlencoding", @@ -1140,7 +1214,7 @@ dependencies = [ "inflections", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -1334,34 +1408,35 @@ dependencies = [ [[package]] name = "image" -version = "0.24.9" +version = "0.25.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d" +checksum = "cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b" dependencies = [ "bytemuck", - "byteorder", + "byteorder-lite", "color_quant", "exr", "gif", - "jpeg-decoder", + "image-webp", "num-traits", "png", "qoi", + "ravif", + "rayon", + "rgb", "tiff", + "zune-core", + "zune-jpeg", ] [[package]] -name = "image" -version = "0.25.5" +name = "image-webp" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd6f44aed642f18953a158afeb30206f4d50da59fbc66ecb53c66488de73563b" +checksum = "e031e8e3d94711a9ccb5d6ea357439ef3dcbed361798bd4071dc4d9793fbe22f" dependencies = [ - "bytemuck", "byteorder-lite", - "num-traits", - "png", - "zune-core", - "zune-jpeg", + "quick-error", ] [[package]] @@ -1369,10 +1444,16 @@ name = "img-diff" version = "0.1.0" dependencies = [ "glam", - "image 0.24.9", + "image", "snafu", ] +[[package]] +name = "imgref" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0263a3d970d5c054ed9312c0057b4f3bde9c0b33836d3637361d4a9e6e7a408" + [[package]] name = "indexmap" version = "2.6.0" @@ -1398,6 +1479,17 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "interpolate_name" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + [[package]] name = "is-terminal" version = "0.4.13" @@ -1415,6 +1507,15 @@ version = "1.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -1457,9 +1558,6 @@ name = "jpeg-decoder" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0" -dependencies = [ - "rayon", -] [[package]] name = "js-sys" @@ -1505,6 +1603,16 @@ version = "0.2.162" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" +[[package]] +name = "libfuzzer-sys" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b9569d2f74e257076d8c6bfa73fb505b46b851e51ddaecc825944aa3bed17fa" +dependencies = [ + "arbitrary", + "cc", +] + [[package]] name = "libloading" version = "0.8.5" @@ -1579,6 +1687,15 @@ version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" +[[package]] +name = "loop9" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fae87c125b03c1d2c0150c90365d7d6bcc53fb73a9acaef207d2d065860f062" +dependencies = [ + "imgref", +] + [[package]] name = "lyon" version = "1.0.1" @@ -1640,6 +1757,16 @@ dependencies = [ "libc", ] +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", + "rayon", +] + [[package]] name = "memchr" version = "2.7.4" @@ -1680,6 +1807,12 @@ dependencies = [ "walkdir", ] +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" version = "0.8.0" @@ -1750,6 +1883,69 @@ dependencies = [ "jni-sys", ] +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "noop_proc_macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.90", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint", + "num-integer", + "num-traits", +] + [[package]] name = "num-traits" version = "0.2.19" @@ -1778,7 +1974,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2100,7 +2296,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2190,9 +2386,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.89" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] @@ -2202,6 +2398,19 @@ name = "profiling" version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "afbdc74edc00b6f6a218ca6a5364d6226a259d4b8ea1af4a0ea063f27e179f4d" +dependencies = [ + "profiling-procmacros", +] + +[[package]] +name = "profiling-procmacros" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30" +dependencies = [ + "quote", + "syn 2.0.90", +] [[package]] name = "qoi" @@ -2212,6 +2421,12 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + [[package]] name = "quick-xml" version = "0.36.2" @@ -2372,6 +2587,56 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8a99fddc9f0ba0a85884b8d14e3592853e787d581ca1816c91349b10e4eeab" +[[package]] +name = "rav1e" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9" +dependencies = [ + "arbitrary", + "arg_enum_proc_macro", + "arrayvec", + "av1-grain", + "bitstream-io", + "built", + "cfg-if", + "interpolate_name", + "itertools", + "libc", + "libfuzzer-sys", + "log", + "maybe-rayon", + "new_debug_unreachable", + "noop_proc_macro", + "num-derive", + "num-traits", + "once_cell", + "paste", + "profiling", + "rand 0.8.5", + "rand_chacha 0.3.1", + "simd_helpers", + "system-deps", + "thiserror", + "v_frame", + "wasm-bindgen", +] + +[[package]] +name = "ravif" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2413fd96bd0ea5cdeeb37eaf446a22e6ed7b981d792828721e74ded1980a45c6" +dependencies = [ + "avif-serialize", + "imgref", + "loop9", + "quick-error", + "rav1e", + "rayon", + "rgb", +] + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -2467,6 +2732,7 @@ dependencies = [ "assert_approx_eq", "async-channel 1.9.0", "bytemuck", + "cfg_aliases 0.2.1", "crabslab", "crunch", "ctor", @@ -2479,13 +2745,14 @@ dependencies = [ "gltf", "half", "icosahedron", - "image 0.24.9", + "image", "img-diff", "log", "naga", "pathdiff", "pretty_assertions", "quote", + "renderling_build", "rustc-hash 1.1.0", "serde", "serde_json", @@ -2496,6 +2763,17 @@ dependencies = [ "winit", ] +[[package]] +name = "renderling_build" +version = "0.1.0" +dependencies = [ + "log", + "naga", + "quote", + "serde", + "serde_json", +] + [[package]] name = "renderling_ui" version = "0.3.5" @@ -2505,7 +2783,7 @@ dependencies = [ "env_logger", "futures-lite 1.13.0", "glyph_brush", - "image 0.24.9", + "image", "img-diff", "loading-bytes", "log", @@ -2517,6 +2795,12 @@ dependencies = [ "wgpu", ] +[[package]] +name = "rgb" +version = "0.8.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57397d16646700483b67d2dd6511d79318f9d057fdbd21a4066aeac8b41d310a" + [[package]] name = "rustc-hash" version = "1.1.0" @@ -2614,7 +2898,7 @@ checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2629,6 +2913,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + [[package]] name = "shlex" version = "1.3.0" @@ -2641,6 +2934,15 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[package]] +name = "simd_helpers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95890f873bec569a0362c235787f3aca6e1e887302ba4840839bcc6459c42da6" +dependencies = [ + "quote", +] + [[package]] name = "slab" version = "0.4.9" @@ -2733,7 +3035,7 @@ dependencies = [ [[package]] name = "spirv-std" version = "0.9.0" -source = "git+https://github.com/Rust-GPU/rust-gpu#9be942e96730726a61a742fd41465bdc8a81aa34" +source = "git+https://github.com/Rust-GPU/rust-gpu#565db88a8c9022ffcf23d85e369a2595aa4e81cd" dependencies = [ "bitflags 1.3.2", "glam", @@ -2745,18 +3047,18 @@ dependencies = [ [[package]] name = "spirv-std-macros" version = "0.9.0" -source = "git+https://github.com/Rust-GPU/rust-gpu#9be942e96730726a61a742fd41465bdc8a81aa34" +source = "git+https://github.com/Rust-GPU/rust-gpu#565db88a8c9022ffcf23d85e369a2595aa4e81cd" dependencies = [ "proc-macro2", "quote", "spirv-std-types", - "syn 1.0.109", + "syn 2.0.90", ] [[package]] name = "spirv-std-types" version = "0.9.0" -source = "git+https://github.com/Rust-GPU/rust-gpu#9be942e96730726a61a742fd41465bdc8a81aa34" +source = "git+https://github.com/Rust-GPU/rust-gpu#565db88a8c9022ffcf23d85e369a2595aa4e81cd" [[package]] name = "static_assertions" @@ -2795,15 +3097,34 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "919d3b74a5dd0ccd15aeb8f93e7006bd9e14c295087c9896a110f490752bcf31" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "system-deps" +version = "6.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +dependencies = [ + "cfg-expr", + "heck 0.5.0", + "pkg-config", + "toml", + "version-compare", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + [[package]] name = "termcolor" version = "1.4.1" @@ -2839,7 +3160,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -2878,11 +3199,26 @@ dependencies = [ "strict-num", ] +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" @@ -2891,6 +3227,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap", + "serde", + "serde_spanned", "toml_datetime", "winnow", ] @@ -2968,12 +3306,29 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "v_frame" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b" +dependencies = [ + "aligned-vec", + "num-traits", + "wasm-bindgen", +] + [[package]] name = "vec_map" version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" +[[package]] +name = "version-compare" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" + [[package]] name = "version_check" version = "0.9.5" @@ -3024,7 +3379,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "wasm-bindgen-shared", ] @@ -3058,7 +3413,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -3092,7 +3447,7 @@ checksum = "c97b2ef2c8d627381e51c071c2ab328eac606d3f69dd82bcbca20a9e389d95f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -3395,7 +3750,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -3406,7 +3761,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] @@ -3763,6 +4118,16 @@ version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af310deaae937e48a26602b730250b4949e125f468f11e6990be3e5304ddd96f" +[[package]] +name = "xtask" +version = "0.1.0" +dependencies = [ + "clap 4.5.23", + "env_logger", + "log", + "renderling_build", +] + [[package]] name = "yansi" version = "1.0.1" @@ -3787,7 +4152,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.90", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 95479051..eef64945 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,8 +5,10 @@ members = [ "crates/example-wasm", "crates/loading-bytes", "crates/renderling", + "crates/renderling-build", "crates/renderling-ui", - "crates/sandbox" + "crates/sandbox", + "crates/xtask" ] exclude = ["./shaders"] @@ -17,6 +19,8 @@ resolver = "2" assert_approx_eq = "1.1.0" async-channel = "1.8" bytemuck = { version = "1.13.0", features = ["derive"] } +clap = { version = "4.5.23", features = ["derive"] } +cfg_aliases = "0.2" crabslab = { version = "0.6.2", default-features = false } ctor = "0.2.2" dagga = "0.2.1" @@ -24,16 +28,18 @@ env_logger = "0.10.0" futures-lite = "1.13" glam = { version = "0.29", default-features = false } gltf = { version = "1.4,1", features = ["KHR_lights_punctual", "KHR_materials_unlit", "KHR_materials_emissive_strength", "extras", "extensions"] } -image = "0.24" +image = "0.25" log = "0.4" naga = { version = "23.0.0", features = ["spv-in", "wgsl-out", "wgsl-in", "msl-out"] } pretty_assertions = "1.4.0" proc-macro2 = { version = "1.0", features = ["span-locations"] } +quote = "1.0" rustc-hash = "1.1" +serde = {version = "1.0", features = ["derive"]} serde_json = "1.0.117" send_wrapper = "0.6.0" snafu = "0.7" -syn = { version = "2.0.49", features = ["full", "extra-traits", "parsing"] } +syn = { version = "2.0", features = ["full", "extra-traits", "parsing"] } wasm-bindgen = "0.2" wasm-bindgen-futures = "0.4" web-sys = "0.3" @@ -54,5 +60,3 @@ opt-level = 3 naga = { git = "https://github.com/gfx-rs/wgpu.git" } wgpu = { git = "https://github.com/gfx-rs/wgpu.git" } spirv-std = { git = "https://github.com/Rust-GPU/rust-gpu" } - - diff --git a/crates/img-diff/Cargo.toml b/crates/img-diff/Cargo.toml index f745b614..8a93cd81 100644 --- a/crates/img-diff/Cargo.toml +++ b/crates/img-diff/Cargo.toml @@ -7,5 +7,5 @@ edition = "2021" [dependencies] glam = { workspace = true, features = ["std"] } -image = { version = "^0.24" } +image.workspace = true snafu = "^0.7" diff --git a/crates/img-diff/src/lib.rs b/crates/img-diff/src/lib.rs index e6bd24df..50ad997a 100644 --- a/crates/img-diff/src/lib.rs +++ b/crates/img-diff/src/lib.rs @@ -218,6 +218,28 @@ pub fn assert_img_eq(filename: &str, seen: impl Into) { assert_img_eq_cfg(filename, seen, DiffCfg::default()) } +/// Normalize the depth image to make it easier to see. +/// +/// ## Warning +/// This is only normalization, not linearization. +pub fn normalize_gray_img(seen: &mut image::GrayImage) { + let mut max = 0u8; + let mut min = u8::MAX; + seen.pixels().for_each(|Luma([c])| { + max = max.max(*c); + min = min.min(*c); + }); + let total = (max - min) as f32; + seen.pixels_mut().for_each(|c| { + let comps = c.0.map(|u| { + let percent = (u as f32 - min as f32) / total; + let float = percent * 255.0; + float as u8 + }); + c.0 = comps; + }); +} + #[cfg(test)] mod test { use crate::assert_img_eq; diff --git a/crates/renderling-build/Cargo.toml b/crates/renderling-build/Cargo.toml new file mode 100644 index 00000000..3d157bf8 --- /dev/null +++ b/crates/renderling-build/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "renderling_build" +version = "0.1.0" +edition = "2021" +description = "Builds shader linkage for the Renderling project" +repository = "https://github.com/schell/renderling" +license = "MIT OR Apache-2.0" +keywords = ["game", "graphics", "shader", "rendering"] +categories = ["rendering", "game-development", "graphics"] + +[dependencies] +log.workspace = true +naga.workspace = true +quote.workspace = true +serde.workspace = true +serde_json.workspace = true diff --git a/crates/renderling-build/src/lib.rs b/crates/renderling-build/src/lib.rs new file mode 100644 index 00000000..054be926 --- /dev/null +++ b/crates/renderling-build/src/lib.rs @@ -0,0 +1,181 @@ +#![allow(unexpected_cfgs)] +use quote::quote; + +#[derive(Debug, serde::Deserialize)] +struct Linkage { + source_path: std::path::PathBuf, + entry_point: String, + wgsl_entry_point: String, +} + +impl core::fmt::Display for Linkage { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let spv_source_path = self.source_path.clone(); + let spv_source_filename = spv_source_path.file_name().unwrap().to_str().unwrap(); + let spv_include_source_path = format!("../../shaders/{spv_source_filename}"); + + let wgsl_source_path = self.source_path.with_extension("wgsl"); + let wgsl_source_filename = wgsl_source_path.file_name().unwrap().to_str().unwrap(); + let wgsl_include_source_path = format!("../../shaders/{wgsl_source_filename}"); + + let Linkage { + source_path: _, + entry_point, + wgsl_entry_point, + } = self; + + let fn_name = self.fn_name(); + + let quote = quote! { + use crate::linkage::ShaderLinkage; + + #[cfg(not(target_arch = "wasm32"))] + mod target { + pub const ENTRY_POINT: &str = #entry_point; + + pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> { + wgpu::include_spirv!(#spv_include_source_path) + } + + pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { + log::debug!("creating native linkage for {}", #fn_name); + super::ShaderLinkage { + entry_point: ENTRY_POINT, + module: device.create_shader_module(descriptor()).into() + } + } + } + #[cfg(target_arch = "wasm32")] + mod target { + pub const ENTRY_POINT: &str = #wgsl_entry_point; + + pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> { + wgpu::include_wgsl!(#wgsl_include_source_path) + } + + pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { + log::debug!("creating web linkage for {}", #fn_name); + super::ShaderLinkage { + entry_point: ENTRY_POINT, + module: device.create_shader_module(descriptor()).into() + } + } + } + + pub fn linkage(device: &wgpu::Device) -> ShaderLinkage { + target::linkage(device) + } + }; + + f.write_fmt(format_args!( + r#"#![allow(dead_code)] + //! Automatically generated by Renderling's `build.rs`. + {quote} + "#, + )) + } +} + +impl Linkage { + pub fn fn_name(&self) -> &str { + self.entry_point.split("::").last().unwrap() + } +} + +fn wgsl(spv_filepath: impl AsRef, destination: impl AsRef) { + let bytes = std::fs::read(spv_filepath.as_ref()).unwrap_or_else(|e| { + panic!( + "could not read spv filepath '{}' while attempting to translate to wgsl: {e}", + spv_filepath.as_ref().display() + ); + }); + let opts = naga::front::spv::Options::default(); + let module = naga::front::spv::parse_u8_slice(&bytes, &opts).unwrap(); + let mut validator = + naga::valid::Validator::new(Default::default(), naga::valid::Capabilities::empty()); + let info = validator.validate(&module).unwrap(); + let wgsl = + naga::back::wgsl::write_string(&module, &info, naga::back::wgsl::WriterFlags::empty()) + .unwrap(); + let destination = destination.as_ref().with_extension("wgsl"); + std::fs::write(destination, wgsl).unwrap(); +} + +pub struct RenderlingPaths { + pub cargo_workspace: std::path::PathBuf, + pub renderling_crate: std::path::PathBuf, + pub shader_dir: std::path::PathBuf, + pub shader_manifest: std::path::PathBuf, + pub linkage_dir: std::path::PathBuf, +} + +impl Default for RenderlingPaths { + fn default() -> Self { + let cargo_workspace = + std::path::PathBuf::from(std::env::var("CARGO_WORKSPACE_DIR").unwrap()); + let renderling_crate = cargo_workspace.join("crates").join("renderling"); + log::debug!("cargo_manifest_dir: {renderling_crate:#?}"); + let shader_dir = renderling_crate.join("shaders"); + + let shader_manifest = shader_dir.join("manifest.json"); + let linkage_dir = renderling_crate.join("src").join("linkage"); + + Self { + cargo_workspace, + renderling_crate, + shader_dir, + shader_manifest, + linkage_dir, + } + } +} +/// Generate linkage (Rust source) files for each shader in the manifest. +pub fn generate_linkage() { + log::trace!("{:#?}", std::env::vars().collect::>()); + let paths = RenderlingPaths::default(); + + assert!( + paths.shader_manifest.is_file(), + "missing file '{}', you must first compile the shaders", + paths.shader_manifest.display() + ); + + if !paths.linkage_dir.is_dir() { + log::info!("creating linkage directory"); + std::fs::create_dir_all(&paths.linkage_dir).unwrap(); + } + + log::debug!("cwd: {:?}", std::env::current_dir().unwrap()); + + let manifest_file = std::fs::File::open(&paths.shader_manifest).unwrap(); + let manifest: Vec = serde_json::from_reader(manifest_file).unwrap(); + let mut set = std::collections::HashSet::new(); + for linkage in manifest.into_iter() { + log::debug!("linkage: {linkage:#?}"); + let fn_name = linkage.fn_name(); + + if set.contains(fn_name) { + panic!("Shader name '{fn_name}' is used for two or more shaders, aborting!"); + } + set.insert(fn_name.to_string()); + + let absolute_source_path = paths + .shader_dir + .join(linkage.source_path.file_name().unwrap()); + let wgsl_source_path = linkage.source_path.with_extension("wgsl"); + let absolute_wgsl_source_path = + paths.shader_dir.join(wgsl_source_path.file_name().unwrap()); + wgsl(absolute_source_path, absolute_wgsl_source_path); + + let filepath = paths.linkage_dir.join(fn_name).with_extension("rs"); + log::info!("generating: {}", linkage.entry_point,); + + let contents = linkage.to_string(); + std::fs::write(&filepath, contents).unwrap(); + std::process::Command::new("rustfmt") + .args([&format!("{}", filepath.display())]) + .output() + .expect("could not format generated code"); + } + log::info!("...done!") +} diff --git a/crates/renderling/Cargo.toml b/crates/renderling/Cargo.toml index b03b43d2..7462b9e1 100644 --- a/crates/renderling/Cargo.toml +++ b/crates/renderling/Cargo.toml @@ -10,11 +10,8 @@ categories = ["rendering", "game-development", "graphics"] readme = "../../README.md" build = "src/build.rs" -[package.metadata.rust-gpu.build.spirv-builder] -git = "https://github.com/Rust-GPU/rust-gpu.git" -rev = "0da80f8" - [package.metadata.rust-gpu.build] +auto-install-rust-toolchain = true output-dir = "shaders" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -34,11 +31,13 @@ tutorial = [] wasm = ["wgpu/fragile-send-sync-non-atomic-wasm"] [build-dependencies] -naga = {workspace = true} +cfg_aliases.workspace = true +naga.workspace = true pathdiff = "0.2.2" -quote = "1.0" -serde = {version = "1.0", features = ["derive"]} -serde_json = {workspace = true} +quote.workspace = true +renderling_build = { path = "../renderling-build", version = "0.1.0" } +serde.workspace = true +serde_json.workspace = true # dependencies for CPU and GPU code [dependencies] diff --git a/crates/renderling/shaders/convolution-brdf_lut_convolution_fragment.spv b/crates/renderling/shaders/convolution-brdf_lut_convolution_fragment.spv index 1e418fafbef658bea69f63aceb1b82070067a3f2..50662b7c9f3005148372dca4149fc346a211a8cb 100644 GIT binary patch literal 5140 zcmZvgSBzCv6owB&6B(F6s-So;L!Y7dIwD=APR{w@j=m7UyLzo zL?t33&4|(jqsByy3Wy!`k(gk?Ab#JudreLzZq8z__5Z8vcK5w!T36Mz&)T-ivaBZi zt%{D;C9BFr?0@K%WgWA2x!p8p!JOd_Zdy5f?6{HobyFh6yM)+!ko8*n64Dc{H@&uXOW1wrtt;LY^g8-7$o2H<-N4LUpYq;- zZqtsuMZ27{+Z)Z@54{y)?kUN(mRRI-9*$)wHLcUXzzskTUuz9SXfvYrpo%@#c@0L_ z$NZ6d2>Mk>UwGHjbx~U3rCpy(WxX2EUB`$WhF*)fp2O)&h+{F$0ET^M8BOD_9X0AX<<*s9zzRz3iijeu%}|z(88XEeSsGCbnGkq z3%e0pK-;m*(9X7x2zw^hmc!c`V@|WMOG(P~;n#$oWzWxWZ#_q@pX=X{&h9BT);)CY zk?S;=IZ8<)*I5riwtaHg-(a7u`EW|uKjwVa81~N<|M%Sc^XTr0wZ~K2b6auG@^kzb z*1urW@bxUR3Ayh)e4T$QY%yD4RSC1J<`b%4YYc7o*%;5?Hgd|Hp`d&f{ zu8dyIIgxLdct212{>>OW&^uQ9i`4XtUXAWLI{uF6)rm7lC-f4%T;~>CO@XUT+#ig! zOVSC+YhHtGO?&6==c6mSb!~xlOPKI({9Nzu82ZZn$%^)nq+OzpTu-DIVt)Ji%-uN+ zKzH7L{%p?OSpAIIp2pD+-Ta=Rh^@mGkMYgL*PQ*6pZ>*s=8d&<{fxJU@s26Df#~Lt zb9{0!_d)3Lw!j7_On58v^^O>Vp|5K(RD$*o`zT(Y>;`((Vf^QO?H?fC{d^YPyvNi0 zUr4rh(b0sxSinvs>?JULyR?K4$n7DpX<1K9C<)X%3baC&vsId=Q+&eq`_9s8@zNm2! zOkBUHaR}RZxrluSU3_|>#=F?!eusqL;pFH288zMq6W1?l9KkkTF81~)y7=Slk9&O# zU2Fz=V5hLFk_7ejn`54=G>W`!uJe1Pu8i0?^!^(qVKun>vvTdIlvsf%f1Ddn~6S`d&=*WUl8$-o#5X6zb4M_ zMZeFy6Wr7D_{z~WV;2$z)VxN&gNa+me3#IT6)$1OTt|{iOo{azmGZlu#why5T8vM; z>#6VFG`|Vxa_0Abx)t5#T`e~onTU8N*~i}Bf?meY*d63@yiMqiS95LBhl%*Ftnc^RXDC=okE=0&gzG znAr2hiFeQSjXht2E>{9~&)1^c+;h46k)?=xXCHgM2EB}*v9ag(p*trz_t;#-B}~^?!|`CP5xH2S3Ftie8n#0*zkU%j5#9F( z{Q{ecE^ghpzrLrC@sYO?ohQ$$uX*(e{>B!(V>$yL=inx6b688?sJ$57FptXb?3=-O@_R$RRN$HloNHa=<`y{j zS?*A}|K?$vSIjk-k8X1fT=dbFi?Kb&Kr!>Nc?L`9v8Qjs`Q7TfN}Q*k z5*B;7C&hd3$mv@~4}Ncfx0e3qjlFzZ9kH(SIEZd@9&!heeTd_>kGw?`o!AZh0c?&oxF8wkl>f0^W?m7@|_UpA7|1&=6^T3 zF|LVzp5Ne>qgzkT8gaILKXF}sA2Dy(^(}1ii&=;KJot{8|J@?>##*~FmWog9|M)nD z@bS0S3T*#=Vy*u4=J9VR`Z$(qddFt(dC|WE;=8N3eeByxbmw)pu)nLYT?aAW4}Irf UjjgZTbk3u{|HLk{(i4&Y0EVO6@c;k- literal 5140 zcmZvgX^53&7>2)@vCK4QDoxvT&e1H*G)qfoQpYkah_E6EB5biDC=JsV2ofsjSN&y&&q@rq9|MFPeE>#M5~rX*&cOWXWm;rq}TKK-Ov5p@AJIddCxi1(LQEiwOdBH?->S;QyUfS2ciVJ9fd6 z#aAx5bosJNmMre+Ie+P*ix%Q6tg#C(T6*5amtDAcS=Gv5zb=q{2V(QdWX@5T?WAfq z#?s%$lxH}{DQ6D*`Aomzc>CjbW48UsdH~OEYy`0bdForY8~-4l)|KBE_F$e381spT z!Hwp5_%3<%&C|ea@tZAg#cXps#x~5{y~VedT=I-koy*~l$o=6=-ZO^S|%H}!# zU9YXGW}@{hwt>~2hSvGFuWQorK1RaN_juDq7D& zV$ORA=fwEkCGNP@{=pdU;ptd??x3b;^j@&*XyK=@A4<#|E5Qw(#KJ)f4=yuc?w_PKj$Iuc-8A0ulwpQ zC%^ms8`!#UmUTql^1Z9xC|rAud#i9AaB7XcUAO^YdGDU&+Z|uteTi;h(e>1741$wa zml}KG+uvCF4hGA6f2GD=`0`_GHHH?Q_gd!B1t+gAHTK50zp>QV2Q2R$m>R?I<-OCR z8(wtYjj1sLPF`JVjKsIUvGm;^Ebl#<8VBOb`xz76K}FXGml~tsrb_Tq$y0*7y{VZ!@YnY?8kApWh7rcNw%g>y-n0)Nf@*UvB z5}SwC&pYo7_w)p`#vDtyQws;RbBz|j$y>+o6la0$E8oD+TyHL%eAe?8u=!n2`)KO2 z7PpqTb5gsy%Y*Xb7qas1{>$KlRKwy&NXN2TsZmkJHKd<>|C?uaO&LqtmBnnwQ^a< ztHD`EW1cJfCVovVZcXFnN&Na+-0>Ut+-Fa309(U6YBQE+3n!mk&w(=*`)KMCf3X%f zmu8>r`Aa44o~zBCuK^p&p1%vWx#z}S#@1r)vDm#+qc5L5e+S&8pSiN<>%h*@SiPV9 zv*+)D-E(uRH)r;44HGtQ3%9m#u0^<43a2z{_$r*=#f)W*UIX)L)$_ZT`PHS*>tKIh zs0;TdSl+rhW3zbw+CO>U2J>p=Rcl@~iLcuw?wI^Om~-$hzB#O=Hnl%uLULMieGG@& zs%0NdUE=F&adT<*$vN0i;+_MwIR_iT#v1Ux_rC|*JO{=$VVg1cUF?3U(U;FT*a~ja z&s;eN+rZAzSiPV9a}It0dk)O4-kjOr_vve#7xU=<9{vFwuh#c(uE##9 z#oT9OYs>w&9^brjuEEz}n`>Zf1NIf>oW&W--wX`5H5SiY1DrkVWS{*k?c$pdNZI0X6Fl;#HxW(>)8h!cf-F{&6o2#x- z>puDUH42DQt_t)yzZ2KRLHKOtE`5xcDpP0wL_n61O zp{Q{V{*HA{K0P1m@4>bg-e>mdC$Qu8?+4+2#&@1_{*LrF|1bDzjm_eH;`ckbf2y`> GI`$vA!1ELU diff --git a/crates/renderling/shaders/convolution-brdf_lut_convolution_fragment.wgsl b/crates/renderling/shaders/convolution-brdf_lut_convolution_fragment.wgsl index 99b2a287..35c613e2 100644 --- a/crates/renderling/shaders/convolution-brdf_lut_convolution_fragment.wgsl +++ b/crates/renderling/shaders/convolution-brdf_lut_convolution_fragment.wgsl @@ -7,21 +7,21 @@ var global: vec2; var global_1: vec2; fn function() { - var phi_415_: type_6; - var phi_416_: f32; - var phi_417_: f32; - var phi_430_: type_6; - var phi_431_: type_6; - var phi_680_: vec3; - var phi_715_: vec3; - var phi_750_: vec3; - var phi_792_: f32; - var phi_805_: f32; - var phi_488_: f32; - var phi_489_: f32; - var phi_491_: f32; - var phi_492_: f32; - var phi_493_: bool; + var phi_266_: type_6; + var phi_269_: f32; + var phi_271_: f32; + var phi_267_: type_6; + var phi_294_: type_6; + var phi_586_: vec3; + var phi_621_: vec3; + var phi_656_: vec3; + var phi_698_: f32; + var phi_711_: f32; + var phi_352_: f32; + var phi_353_: f32; + var phi_270_: f32; + var phi_272_: f32; + var phi_354_: bool; var local: f32; var local_1: f32; @@ -29,29 +29,29 @@ fn function() { let _e40 = max(_e37.x, 0.00000011920929f); let _e41 = -(_e40); let _e43 = sqrt(fma(_e41, _e40, 1f)); - phi_415_ = type_6(1u, 1024u); - phi_416_ = 0f; - phi_417_ = 0f; + phi_266_ = type_6(1u, 1024u); + phi_269_ = 0f; + phi_271_ = 0f; loop { - let _e45 = phi_415_; - let _e47 = phi_416_; - let _e49 = phi_417_; + let _e45 = phi_266_; + let _e47 = phi_269_; + let _e49 = phi_271_; local = _e49; local_1 = _e47; if (_e45.member < _e45.member_1) { - phi_430_ = type_6((_e45.member + 1u), _e45.member_1); - phi_431_ = type_6(1u, _e45.member); + phi_267_ = type_6((_e45.member + 1u), _e45.member_1); + phi_294_ = type_6(1u, _e45.member); } else { - phi_430_ = _e45; - phi_431_ = type_6(0u, type_6().member_1); + phi_267_ = _e45; + phi_294_ = type_6(0u, type_6().member_1); } - let _e62 = phi_430_; - let _e64 = phi_431_; + let _e62 = phi_267_; + let _e64 = phi_294_; switch bitcast(_e64.member) { case 0: { - phi_491_ = f32(); - phi_492_ = f32(); - phi_493_ = false; + phi_270_ = f32(); + phi_272_ = f32(); + phi_354_ = false; break; } case 1: { @@ -70,21 +70,21 @@ fn function() { let _e125 = -(_e122.x); let _e129 = sqrt(fma(_e122.y, _e122.y, (_e125 * _e125))); if (_e129 == 0f) { - phi_680_ = vec3(0f, 0f, 0f); + phi_586_ = vec3(0f, 0f, 0f); } else { - phi_680_ = (vec3(_e122.y, _e125, 0f) * (1f / _e129)); + phi_586_ = (vec3(_e122.y, _e125, 0f) * (1f / _e129)); } - let _e134 = phi_680_; + let _e134 = phi_586_; let _e141 = fma(_e134.x, _e116, (-(_e134.y) * _e118)); let _e142 = fma(_e134.y, _e116, (_e134.x * _e118)); let _e143 = fma(_e134.z, _e116, _e111); let _e148 = sqrt(fma(_e143, _e143, fma(_e141, _e141, (_e142 * _e142)))); if (_e148 == 0f) { - phi_715_ = vec3(0f, 0f, 0f); + phi_621_ = vec3(0f, 0f, 0f); } else { - phi_715_ = (vec3(_e141, _e142, _e143) * (1f / _e148)); + phi_621_ = (vec3(_e141, _e142, _e143) * (1f / _e148)); } - let _e153 = phi_715_; + let _e153 = phi_621_; let _e158 = fma(_e43, _e153.x, (_e40 * _e153.z)); let _e159 = (2f * _e158); let _e160 = (_e159 * _e153.y); @@ -92,11 +92,11 @@ fn function() { let _e163 = fma(_e159, _e153.z, _e41); let _e168 = sqrt(fma(_e163, _e163, fma(_e162, _e162, (_e160 * _e160)))); if (_e168 == 0f) { - phi_750_ = vec3(0f, 0f, 0f); + phi_656_ = vec3(0f, 0f, 0f); } else { - phi_750_ = (vec3(_e162, _e160, _e163) * (1f / _e168)); + phi_656_ = (vec3(_e162, _e160, _e163) * (1f / _e168)); } - let _e173 = phi_750_; + let _e173 = phi_656_; let _e175 = max(_e173.z, 0f); let _e177 = max(_e158, 0f); if (_e175 > 0f) { @@ -105,48 +105,48 @@ fn function() { let _e182 = fma(-(_e104), 0.5f, 1f); let _e183 = fma(_e179, _e182, _e180); if (_e183 == 0f) { - phi_792_ = 0f; + phi_698_ = 0f; } else { - phi_792_ = (_e179 / _e183); + phi_698_ = (_e179 / _e183); } - let _e187 = phi_792_; + let _e187 = phi_698_; let _e188 = fma(_e175, _e182, _e180); if (_e188 == 0f) { - phi_805_ = 0f; + phi_711_ = 0f; } else { - phi_805_ = (_e175 / _e188); + phi_711_ = (_e175 / _e188); } - let _e192 = phi_805_; + let _e192 = phi_711_; let _e196 = (((_e187 * _e192) * _e177) / (max(_e153.z, 0f) * _e40)); let _e198 = pow((1f - _e177), 5f); - phi_488_ = fma(_e198, _e196, _e47); - phi_489_ = fma((1f - _e198), _e196, _e49); + phi_352_ = fma(_e198, _e196, _e47); + phi_353_ = fma((1f - _e198), _e196, _e49); } else { - phi_488_ = _e47; - phi_489_ = _e49; + phi_352_ = _e47; + phi_353_ = _e49; } - let _e203 = phi_488_; - let _e205 = phi_489_; - phi_491_ = _e203; - phi_492_ = _e205; - phi_493_ = true; + let _e203 = phi_352_; + let _e205 = phi_353_; + phi_270_ = _e203; + phi_272_ = _e205; + phi_354_ = true; break; } default: { - phi_491_ = f32(); - phi_492_ = f32(); - phi_493_ = bool(); + phi_270_ = f32(); + phi_272_ = f32(); + phi_354_ = bool(); break; } } - let _e207 = phi_491_; - let _e209 = phi_492_; - let _e211 = phi_493_; + let _e207 = phi_270_; + let _e209 = phi_272_; + let _e211 = phi_354_; continue; continuing { - phi_415_ = _e62; - phi_416_ = _e207; - phi_417_ = _e209; + phi_266_ = _e62; + phi_269_ = _e207; + phi_271_ = _e209; break if !(_e211); } } diff --git a/crates/renderling/shaders/convolution-prefilter_environment_cubemap_fragment.spv b/crates/renderling/shaders/convolution-prefilter_environment_cubemap_fragment.spv index 14d02e93b284f70c1ae102923642aa179c19a4d9..07b728ce17f56eab91b22052de3fcc0fbe7ae943 100644 GIT binary patch literal 6432 zcmZ9Q3y_vo8OPt{BBIFJWIAa>A7CYy0A(p%60p%x5Nj!n( z-(J0;8UZ%N^1j{;eQVYa^z`+1cCPDRxvFQ)z{>umD|M<}J+PQ{djp zJf-A)8`z=VU_MKQ5q(lq8=M<`a!cPGeM(cW=AKU8sbJUe_7>OF^>h8xkYUJV)?)qX zNNgT<8#24Zx)(=koZV9AMW5NyJM?$Io{M|7A05n%q9^|>^y86n*gZ4XqqGsF{!S#m z=Yp*t{XFo=h`#3TL_Cw(%nihKYjaQULM9b_K6ol8ZOk0RzDC|yjjraRHxSotUoy<+ zu#fYas4BiAsteGyxAr)qdUw$q%=SXNcTFF4?cO!@?B_x-Cb-r;x~OKG55Alc-v#K~ z8PP9ApUH^65d8on`eo?tjOgz{f0+^ez3BhrU-T|?3H1hWk$N>aJ^Es_Yj<5YboZ8^ z-*EIhbIxGx9|GG$_c@Q*K02nB=kn07s`75T-{d&lpzK zfWH&WPxHCacPI7T?_FSR_UiBKey>i9f3h!adyt)o`*+?{)_p(N9vk~PID7H{cp0;{ zqxhT4ICIo>`PX>rjd>94^QDjR*2q4W7dzBYzgB?deUF)QHM2FG&FTB#O2qqPogVO2 z#b&*$5$kDN!yH=!ycV$!+IpF_{f$2K70lGExsKVI&aTyW(MJ&LI>PmX%BKfjjm zx9IZrDSn5G--23=-^0o4ml}_w8?P;~Pk`lp7iY~!(B=J%jo*{S&v$h8@f4iAeyQ!rBj?k=_pe~NMc{Bp(Yw)=aQ}w$Uif~$uH2KSz{ci% z`Cl+U&G)4?b525H=b8=Kt)Wb=*@xHc`nopb^L`uwXAS-G4jx%zd|znK+MWh$OYKp` z&-Z_9t+ln@<;NGhdGt;G(S;uiZx7Os6X3NO7vB?$?@7n_j)B*vug`4*`$=Hm(@aD0 zV^N^!Zp(f*zJ8vx!)sd%?&96$=jzLdeB@^M4(zWKo1f!;W~bh%U~T3PcY5KNhW2#^ z$_jLC>E)lm^6BN9z~-@+=5;UnB=0z|dvk;v4`+QxdN={ySZ%5G3|Kz3CW2GTHJMwV zgo%2jw3-%rxo8K8e3U*K0{0uUeaptJ& z^7)Ca4X`sX>ATc6aL1-6zW zdCx=F&$Cb7=fLvG+X+ry>zhZPu8rXA)fh#;*f-bg=4$3^+FS49EyeCLqHms&o50%g zjC>R9@EOte4dk+*R6biT2Ajw9iTMgRF`kz`=1HBeg3m_u%YA61J3J@l=JdG*a&x8WnFB-i)h z+R*)s*;+)u*l(%X&7~NV_w0^h_YUcsJ9H~pTkg<(V25`|+iv7G#Jk{}J9IDDJ7jF` z&@Qlh(&n8pmvQE(>+-onKLvY-^fBHVIp=Ng+8yC;2Fuxt^lLlVJESfB_yIWm@{G-; zU-Ik#o5%Etxec5c&ru)qjNxyE2J`KRc6+6-^F8Hvk~_fK)5kl(4*RI>E@UTSKb-A{ zKI$!7>vx+U!gV9b^CPgsJlcMY+>IFLoF439z1ClXWW9UgvR>`xjQ>9L!-zid-w%$z z_L=zSydOqCg6NYwbpWjYI7EALKLVZtr`>(J2iNP`>$<%6puv0(;`;P4-o5#~hu;_e z1Q}8Exy+AZAI`jl-uoTTFVW@n`ylxyFdsyh&l#IPXMb<8GYxUO3g>>}x4Uqp8R8xQ zUyV3&Z}xzV^Vu}F=b&HmJP0;MpTs;=bYrY-jDCsP2R6pqiP;ZM9oJ@zetDlf40bK% z*7th)(_lV;tVQ&%-#hPLp2J7L#(O5#^^WFjeg-y&HuL2EZUTF*TbRuoee*H8{A+xl z*}=R9=|uE#HrCp$wTy1Aw-@~)L?35;Ttj^P8{p@N-=*p^9nr_{Q}uBzS24RbXP+JY zS0jCecTTT=0d~)h-1kSp^6oc&2f_Mz2J!n9SibJ}7`lF*UHlG#<@M_-cl0-4>zG6P RBxDXZdla*_|4`{%--_3K~*L^+r{hZ$S z``kh8V~19Q+p4M>QN7eoM|*qKUdh-$J+i9aS`BIX7cczq!pZCUR!p8Y{cLr^t3h_n ze@9gBtUAD^Sl-jUp=b5_zEwTlGiR>t?Yer^>b|btrCr?{R`vFDuj%UUTe^JxRb6X3 z*Dk%fw{xXLGl$~`V?(f^*om;_6JJbr+7r2ca_$y`>E@y-$kr}*-l2?pw~_zrcP|F2LD>ueDWu;k~8Q>!@QebJQD6q z`iUj)d%!mR2K_i4TKw@%uYXSb2`&GD_!FCcHRm+)P69iJvszr!SLggEW9`@k=3@OR zSYjS_8#b$qbuG5knA&pZ#y_{^PgC!DJr~#PeoUip6hHZ=i}Xv}0yt?rZGS>V#?zegkvf?n|2a zZ0_USCaQ|Iqq-2^cx#Ov)kVc`(7PALy=!XpjeFPhvz~ciLU65nG`|*G0R9Lq+Dq_v z)8c;+|6E%9h4_!q;$MnCf)@WW{D0EoUylDK|HWT~FQMN6F4nL5r^LSk?^Am>4cxsY z_*-AwG5d7pekIsFbe(hQ-ACJ`@?0KnuPX1h>rK8RaO9ttb9oFuXW~5%|2VvUVi|w5 zIsR7*;{O@{*ocF(ymv2vy#vnUz0BbZ`lg)TXYWtyWsdV#~9blGmKd^ z;CF-hG@l!_Kcl|uy&Y`Kz4{NUzh4pUzpTsH9oU_i>leR9uSQ?~hO&NH&!3#_?LO=)$9fPe3@IlIkV2?B@Q*PUn{`!zQ@eDlHR%4o74BfCo%7jbyk6| zDKYC^i&@XuYWl<);5C^0V62_eQX>--ERpSp|C%6}G9r`|oXhWX5!v7ZC` zeEIIQ)phE#m+qf+oQrkLk=RDCwTzk1Sk`_$*tjj+=fQIB$41ucJ9rbO*1hPbx4q6e z%5QFZRkelQFm;LE$;(H$weOKLU#2q&*DH6Fuvys?aZ94zm**D_}m&_o*>+`hH9N)mq#d+JsvC^;%r5b8~#&m;b}JhPu3?-vIMzzE6y2 zZck9(SZcpnbbdc1)|y-EUC*O2kVkFuw-tUkvP=z z4hH)km(KVhI8f|vD}FCpzi)=Z8@mF$i1(P^yMM#vW4qv|5r477{GRtaJ@tlzjhR2( zI|@fPu&$GER^S`UUj7vIjHjjI0Ue}@~c~1trHe0w;;jC}V9-fBpSYxU6Bv?MR zP6wx!b27J@P9WA$;4&u@x#V87$dt=^nDyEDPY`3!L53g=#Azb3%Rd!{*yr@`{spNZh?pXXq1 zHK}zL*jl#aor%m#8V>ES%Z?477r8y?g$d(fK8Bv>O zWGmQMo{?{YZ9XH$zJP7Rd?v)+bv63(c}Bht_8Bo(o{?{WU8Ax3ILGH1`4-q`#N6u5 znS1+1c;mKkUjoay7ul~bgWZ2)*^jS)vtOQ_xzr`kSHb2nea74f&X~aj)R-rAZURrm z)aAZEhtB-T@oi$sq29V`693L|ap&y+M%*`>Hy2Nj;#m%KTCU%P<+Q&+cD}g=0UJyter9Yz^UWh9HTDpkB7j{#oTH) zvp)^`{n#2zz5DN7^uBoi>b`uQ!vkRRc}C7dZO-b~U~?KXZ}Rkm&1?TMf6w%{<7#Xs zwz>3M=*``#bwYD~-T3n{HTG((5skm`AI8qd)J(zD`1e#buHhPbYuo#*s9%Zo6y832 z`x|i1F!%W&oV@Fa?oiRS(MR_PSiY`%wCLJvy2D_3b&JZK{5{w@<}f}Uo6SugN^k59 IPIm_Oe=QD#3IG5A diff --git a/crates/renderling/shaders/convolution-prefilter_environment_cubemap_fragment.wgsl b/crates/renderling/shaders/convolution-prefilter_environment_cubemap_fragment.wgsl index 29e5c0d7..148b79c8 100644 --- a/crates/renderling/shaders/convolution-prefilter_environment_cubemap_fragment.wgsl +++ b/crates/renderling/shaders/convolution-prefilter_environment_cubemap_fragment.wgsl @@ -12,21 +12,21 @@ var global_3: f32; var global_4: texture_cube; fn function() { - var phi_446_: vec3; + var phi_454_: vec3; var phi_104_: type_7; var phi_107_: vec3; var phi_109_: f32; var phi_105_: type_7; - var phi_124_: type_7; - var phi_627_: vec3; - var phi_662_: vec3; - var phi_697_: vec3; - var phi_178_: f32; - var phi_197_: vec3; - var phi_198_: f32; + var phi_132_: type_7; + var phi_635_: vec3; + var phi_670_: vec3; + var phi_705_: vec3; + var phi_186_: f32; + var phi_205_: vec3; + var phi_206_: f32; var phi_108_: vec3; var phi_110_: f32; - var phi_199_: bool; + var phi_207_: bool; var local: vec3; var local_1: f32; var local_2: vec3; @@ -38,11 +38,11 @@ fn function() { let _e43 = global_3; let _e50 = sqrt(fma(_e42.z, _e42.z, fma(_e42.x, _e42.x, (_e42.y * _e42.y)))); if (_e50 == 0f) { - phi_446_ = vec3(0f, 0f, 0f); + phi_454_ = vec3(0f, 0f, 0f); } else { - phi_446_ = (_e42 * (1f / _e50)); + phi_454_ = (_e42 * (1f / _e50)); } - let _e55 = phi_446_; + let _e55 = phi_454_; let _e57 = (_e55.y * -1f); phi_104_ = type_7(0u, 1024u); phi_107_ = vec3(0f, 0f, 0f); @@ -59,18 +59,18 @@ fn function() { local_5 = _e63; if (_e59.member < _e59.member_1) { phi_105_ = type_7((_e59.member + 1u), _e59.member_1); - phi_124_ = type_7(1u, _e59.member); + phi_132_ = type_7(1u, _e59.member); } else { phi_105_ = _e59; - phi_124_ = type_7(0u, type_7().member_1); + phi_132_ = type_7(0u, type_7().member_1); } let _e76 = phi_105_; - let _e78 = phi_124_; + let _e78 = phi_132_; switch bitcast(_e78.member) { case 0: { phi_108_ = vec3(); phi_110_ = f32(); - phi_199_ = false; + phi_207_ = false; break; } case 1: { @@ -91,64 +91,64 @@ fn function() { let _e150 = fma(_e137.x, _e57, -((_e55.x * _e137.y))); let _e155 = sqrt(fma(_e150, _e150, fma(_e142, _e142, (_e147 * _e147)))); if (_e155 == 0f) { - phi_627_ = vec3(0f, 0f, 0f); + phi_635_ = vec3(0f, 0f, 0f); } else { - phi_627_ = (vec3(_e142, _e147, _e150) * (1f / _e155)); + phi_635_ = (vec3(_e142, _e147, _e150) * (1f / _e155)); } - let _e160 = phi_627_; + let _e160 = phi_635_; let _e179 = fma(_e55.x, _e125, fma(_e160.x, _e130, (fma(_e57, _e160.z, -((_e160.y * _e55.z))) * _e132))); let _e180 = fma(_e57, _e125, fma(_e160.y, _e130, (fma(_e55.z, _e160.x, -((_e160.z * _e55.x))) * _e132))); let _e181 = fma(_e55.z, _e125, fma(_e160.z, _e130, (fma(_e55.x, _e160.y, -((_e160.x * _e57))) * _e132))); let _e186 = sqrt(fma(_e181, _e181, fma(_e179, _e179, (_e180 * _e180)))); if (_e186 == 0f) { - phi_662_ = vec3(0f, 0f, 0f); + phi_670_ = vec3(0f, 0f, 0f); } else { - phi_662_ = (vec3(_e179, _e180, _e181) * (1f / _e186)); + phi_670_ = (vec3(_e179, _e180, _e181) * (1f / _e186)); } - let _e191 = phi_662_; + let _e191 = phi_670_; let _e198 = (2f * fma(_e55.z, _e191.z, fma(_e55.x, _e191.x, (_e57 * _e191.y)))); let _e200 = fma(_e198, _e191.x, -(_e55.x)); let _e201 = fma(_e198, _e191.y, _e55.y); let _e203 = fma(_e198, _e191.z, -(_e55.z)); let _e208 = sqrt(fma(_e203, _e203, fma(_e200, _e200, (_e201 * _e201)))); if (_e208 == 0f) { - phi_697_ = vec3(0f, 0f, 0f); + phi_705_ = vec3(0f, 0f, 0f); } else { - phi_697_ = (vec3(_e200, _e201, _e203) * (1f / _e208)); + phi_705_ = (vec3(_e200, _e201, _e203) * (1f / _e208)); } - let _e213 = phi_697_; + let _e213 = phi_705_; let _e220 = max(fma(_e55.z, _e213.z, fma(_e55.x, _e213.x, (_e57 * _e213.y))), 0f); if (_e220 > 0f) { if (_e43 == 0f) { - phi_178_ = 0f; + phi_186_ = 0f; } else { - phi_178_ = (0.5f * log2((1572864f / max((1024f * max((_e220 * 0.31830987f), 0f)), 0.00000011920929f)))); + phi_186_ = (0.5f * log2((1572864f / max((1024f * max((_e220 * 0.31830987f), 0f)), 0.00000011920929f)))); } - let _e231 = phi_178_; + let _e231 = phi_186_; let _e232 = textureSampleLevel(global_4, global, _e213, _e231); - phi_197_ = vec3(fma(_e232.x, _e220, _e61.x), fma(_e232.y, _e220, _e61.y), fma(_e232.z, _e220, _e61.z)); - phi_198_ = (_e63 + _e220); + phi_205_ = vec3(fma(_e232.x, _e220, _e61.x), fma(_e232.y, _e220, _e61.y), fma(_e232.z, _e220, _e61.z)); + phi_206_ = (_e63 + _e220); } else { - phi_197_ = _e61; - phi_198_ = _e63; + phi_205_ = _e61; + phi_206_ = _e63; } - let _e245 = phi_197_; - let _e247 = phi_198_; + let _e245 = phi_205_; + let _e247 = phi_206_; phi_108_ = _e245; phi_110_ = _e247; - phi_199_ = true; + phi_207_ = true; break; } default: { phi_108_ = vec3(); phi_110_ = f32(); - phi_199_ = bool(); + phi_207_ = bool(); break; } } let _e249 = phi_108_; let _e251 = phi_110_; - let _e253 = phi_199_; + let _e253 = phi_207_; continue; continuing { phi_104_ = _e76; diff --git a/crates/renderling/shaders/convolution-prefilter_environment_cubemap_vertex.spv b/crates/renderling/shaders/convolution-prefilter_environment_cubemap_vertex.spv index 7b350164e002fe7105c24e8acaf842a38da8a428..03c5c9d52ae18813bcd6ff179a74999026e59a9e 100644 GIT binary patch literal 12068 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 TJthB-kMnb_Zv1!mZms_Skh6QL literal 12068 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 T-&6Ac;W)qE>coGC@6`G)cpGmi diff --git a/crates/renderling/shaders/convolution-prefilter_environment_cubemap_vertex.wgsl b/crates/renderling/shaders/convolution-prefilter_environment_cubemap_vertex.wgsl index 98c2226a..39e33527 100644 --- a/crates/renderling/shaders/convolution-prefilter_environment_cubemap_vertex.wgsl +++ b/crates/renderling/shaders/convolution-prefilter_environment_cubemap_vertex.wgsl @@ -44,20 +44,20 @@ fn function() { var local: array, 8>; var local_1: array, 6>; var local_2: array, 36>; - var phi_767_: bool; + var phi_783_: bool; var phi_165_: type_24; - var phi_795_: bool; + var phi_811_: bool; var phi_326_: type_24; var phi_327_: type_24; - var phi_342_: type_24; - var phi_369_: bool; - var phi_375_: type_24; - var phi_376_: type_24; - var phi_391_: type_24; - var phi_414_: bool; - var phi_422_: type_22; - var phi_827_: bool; - var phi_430_: f32; + var phi_350_: type_24; + var phi_377_: bool; + var phi_383_: type_24; + var phi_384_: type_24; + var phi_407_: type_24; + var phi_430_: bool; + var phi_438_: type_22; + var phi_843_: bool; + var phi_446_: f32; switch bitcast(0u) { default: { @@ -71,11 +71,11 @@ fn function() { } let _e87 = local_2[_e82]; if (_e84 >= 2u) { - phi_767_ = (_e81 <= (_e84 - 2u)); + phi_783_ = (_e81 <= (_e84 - 2u)); } else { - phi_767_ = false; + phi_783_ = false; } - let _e92 = phi_767_; + let _e92 = phi_783_; if _e92 { let _e95 = global.member[_e81]; let _e99 = global.member[(_e81 + 1u)]; @@ -85,11 +85,11 @@ fn function() { } let _e102 = phi_165_; if (_e84 >= 83u) { - phi_795_ = (_e102.member <= (_e84 - 83u)); + phi_811_ = (_e102.member <= (_e84 - 83u)); } else { - phi_795_ = false; + phi_811_ = false; } - let _e109 = phi_795_; + let _e109 = phi_811_; if _e109 { let _e112 = global.member[_e102.member]; let _e117 = global.member[(_e102.member + 1u)]; @@ -132,16 +132,16 @@ fn function() { let _e297 = phi_326_; if (_e297.member < _e297.member_1) { phi_327_ = type_24((_e297.member + 1u), _e297.member_1); - phi_342_ = type_24(1u, _e297.member); + phi_350_ = type_24(1u, _e297.member); } else { phi_327_ = _e297; - phi_342_ = type_24(0u, type_24().member_1); + phi_350_ = type_24(0u, type_24().member_1); } let _e310 = phi_327_; - let _e312 = phi_342_; + let _e312 = phi_350_; switch bitcast(_e312.member) { case 0: { - phi_369_ = false; + phi_377_ = false; break; } case 1: { @@ -151,15 +151,15 @@ fn function() { let _e330 = global.member[(_e317 + 2u)]; let _e335 = global.member[(_e317 + 3u)]; local_1[_e312.member_1] = vec4(bitcast(_e320), bitcast(_e325), bitcast(_e330), bitcast(_e335)); - phi_369_ = true; + phi_377_ = true; break; } default: { - phi_369_ = bool(); + phi_377_ = bool(); break; } } - let _e340 = phi_369_; + let _e340 = phi_377_; continue; continuing { phi_326_ = _e310; @@ -168,21 +168,21 @@ fn function() { } let _e342 = local_1; local = array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)); - phi_375_ = type_24(0u, 8u); + phi_383_ = type_24(0u, 8u); loop { - let _e345 = phi_375_; + let _e345 = phi_383_; if (_e345.member < _e345.member_1) { - phi_376_ = type_24((_e345.member + 1u), _e345.member_1); - phi_391_ = type_24(1u, _e345.member); + phi_384_ = type_24((_e345.member + 1u), _e345.member_1); + phi_407_ = type_24(1u, _e345.member); } else { - phi_376_ = _e345; - phi_391_ = type_24(0u, type_24().member_1); + phi_384_ = _e345; + phi_407_ = type_24(0u, type_24().member_1); } - let _e358 = phi_376_; - let _e360 = phi_391_; + let _e358 = phi_384_; + let _e360 = phi_407_; switch bitcast(_e360.member) { case 0: { - phi_414_ = false; + phi_430_ = false; break; } case 1: { @@ -191,40 +191,40 @@ fn function() { let _e373 = global.member[(_e365 + 1u)]; let _e378 = global.member[(_e365 + 2u)]; local[_e360.member_1] = vec3(bitcast(_e368), bitcast(_e373), bitcast(_e378)); - phi_414_ = true; + phi_430_ = true; break; } default: { - phi_414_ = bool(); + phi_430_ = bool(); break; } } - let _e383 = phi_414_; + let _e383 = phi_430_; continue; continuing { - phi_375_ = _e358; + phi_383_ = _e358; break if !(_e383); } } let _e385 = local; - phi_422_ = type_22(type_20(vec4(bitcast(_e112), bitcast(_e117), bitcast(_e122), bitcast(_e127)), vec4(bitcast(_e133), bitcast(_e138), bitcast(_e143), bitcast(_e148)), vec4(bitcast(_e154), bitcast(_e159), bitcast(_e164), bitcast(_e169)), vec4(bitcast(_e175), bitcast(_e180), bitcast(_e185), bitcast(_e190))), type_20(vec4(bitcast(_e197), bitcast(_e202), bitcast(_e207), bitcast(_e212)), vec4(bitcast(_e218), bitcast(_e223), bitcast(_e228), bitcast(_e233)), vec4(bitcast(_e239), bitcast(_e244), bitcast(_e249), bitcast(_e254)), vec4(bitcast(_e260), bitcast(_e265), bitcast(_e270), bitcast(_e275))), type_21(_e385, _e342), vec3(bitcast(_e282), bitcast(_e287), bitcast(_e292))); + phi_438_ = type_22(type_20(vec4(bitcast(_e112), bitcast(_e117), bitcast(_e122), bitcast(_e127)), vec4(bitcast(_e133), bitcast(_e138), bitcast(_e143), bitcast(_e148)), vec4(bitcast(_e154), bitcast(_e159), bitcast(_e164), bitcast(_e169)), vec4(bitcast(_e175), bitcast(_e180), bitcast(_e185), bitcast(_e190))), type_20(vec4(bitcast(_e197), bitcast(_e202), bitcast(_e207), bitcast(_e212)), vec4(bitcast(_e218), bitcast(_e223), bitcast(_e228), bitcast(_e233)), vec4(bitcast(_e239), bitcast(_e244), bitcast(_e249), bitcast(_e254)), vec4(bitcast(_e260), bitcast(_e265), bitcast(_e270), bitcast(_e275))), type_21(_e385, _e342), vec3(bitcast(_e282), bitcast(_e287), bitcast(_e292))); } else { - phi_422_ = type_22(type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_21(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); + phi_438_ = type_22(type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_21(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); } - let _e389 = phi_422_; + let _e389 = phi_438_; if (_e84 >= 1u) { - phi_827_ = (_e102.member_1 <= (_e84 - 1u)); + phi_843_ = (_e102.member_1 <= (_e84 - 1u)); } else { - phi_827_ = false; + phi_843_ = false; } - let _e396 = phi_827_; + let _e396 = phi_843_; if _e396 { let _e399 = global.member[_e102.member_1]; - phi_430_ = bitcast(_e399); + phi_446_ = bitcast(_e399); } else { - phi_430_ = 0f; + phi_446_ = 0f; } - let _e402 = phi_430_; + let _e402 = phi_446_; global_3 = _e402; global_4 = _e87; global_5 = vec4((fma(fma(_e389.member.member_3.x, _e389.member_1.member_2.w, fma(_e389.member.member_2.x, _e389.member_1.member_2.z, fma(_e389.member.member.x, _e389.member_1.member_2.x, (_e389.member.member_1.x * _e389.member_1.member_2.y)))), _e87.z, fma(fma(_e389.member.member_3.x, _e389.member_1.member.w, fma(_e389.member.member_2.x, _e389.member_1.member.z, fma(_e389.member.member.x, _e389.member_1.member.x, (_e389.member.member_1.x * _e389.member_1.member.y)))), _e87.x, (fma(_e389.member.member_3.x, _e389.member_1.member_1.w, fma(_e389.member.member_2.x, _e389.member_1.member_1.z, fma(_e389.member.member.x, _e389.member_1.member_1.x, (_e389.member.member_1.x * _e389.member_1.member_1.y)))) * _e87.y))) + fma(_e389.member.member_3.x, _e389.member_1.member_3.w, fma(_e389.member.member_2.x, _e389.member_1.member_3.z, fma(_e389.member.member.x, _e389.member_1.member_3.x, (_e389.member.member_1.x * _e389.member_1.member_3.y))))), (fma(fma(_e389.member.member_3.y, _e389.member_1.member_2.w, fma(_e389.member.member_2.y, _e389.member_1.member_2.z, fma(_e389.member.member.y, _e389.member_1.member_2.x, (_e389.member.member_1.y * _e389.member_1.member_2.y)))), _e87.z, fma(fma(_e389.member.member_3.y, _e389.member_1.member.w, fma(_e389.member.member_2.y, _e389.member_1.member.z, fma(_e389.member.member.y, _e389.member_1.member.x, (_e389.member.member_1.y * _e389.member_1.member.y)))), _e87.x, (fma(_e389.member.member_3.y, _e389.member_1.member_1.w, fma(_e389.member.member_2.y, _e389.member_1.member_1.z, fma(_e389.member.member.y, _e389.member_1.member_1.x, (_e389.member.member_1.y * _e389.member_1.member_1.y)))) * _e87.y))) + fma(_e389.member.member_3.y, _e389.member_1.member_3.w, fma(_e389.member.member_2.y, _e389.member_1.member_3.z, fma(_e389.member.member.y, _e389.member_1.member_3.x, (_e389.member.member_1.y * _e389.member_1.member_3.y))))), (fma(fma(_e389.member.member_3.z, _e389.member_1.member_2.w, fma(_e389.member.member_2.z, _e389.member_1.member_2.z, fma(_e389.member.member.z, _e389.member_1.member_2.x, (_e389.member.member_1.z * _e389.member_1.member_2.y)))), _e87.z, fma(fma(_e389.member.member_3.z, _e389.member_1.member.w, fma(_e389.member.member_2.z, _e389.member_1.member.z, fma(_e389.member.member.z, _e389.member_1.member.x, (_e389.member.member_1.z * _e389.member_1.member.y)))), _e87.x, (fma(_e389.member.member_3.z, _e389.member_1.member_1.w, fma(_e389.member.member_2.z, _e389.member_1.member_1.z, fma(_e389.member.member.z, _e389.member_1.member_1.x, (_e389.member.member_1.z * _e389.member_1.member_1.y)))) * _e87.y))) + fma(_e389.member.member_3.z, _e389.member_1.member_3.w, fma(_e389.member.member_2.z, _e389.member_1.member_3.z, fma(_e389.member.member.z, _e389.member_1.member_3.x, (_e389.member.member_1.z * _e389.member_1.member_3.y))))), (fma(fma(_e389.member.member_3.w, _e389.member_1.member_2.w, fma(_e389.member.member_2.w, _e389.member_1.member_2.z, fma(_e389.member.member.w, _e389.member_1.member_2.x, (_e389.member.member_1.w * _e389.member_1.member_2.y)))), _e87.z, fma(fma(_e389.member.member_3.w, _e389.member_1.member.w, fma(_e389.member.member_2.w, _e389.member_1.member.z, fma(_e389.member.member.w, _e389.member_1.member.x, (_e389.member.member_1.w * _e389.member_1.member.y)))), _e87.x, (fma(_e389.member.member_3.w, _e389.member_1.member_1.w, fma(_e389.member.member_2.w, _e389.member_1.member_1.z, fma(_e389.member.member.w, _e389.member_1.member_1.x, (_e389.member.member_1.w * _e389.member_1.member_1.y)))) * _e87.y))) + fma(_e389.member.member_3.w, _e389.member_1.member_3.w, fma(_e389.member.member_2.w, _e389.member_1.member_3.z, fma(_e389.member.member.w, _e389.member_1.member_3.x, (_e389.member.member_1.w * _e389.member_1.member_3.y)))))); diff --git a/crates/renderling/shaders/cull-compute_culling.spv b/crates/renderling/shaders/cull-compute_culling.spv index ad8275030e86495628bb350d8b1dbfd63296404d..76c52bfc5e37b63a63780ffd680d83128acf2464 100644 GIT binary patch literal 26424 zcmaK!2iTwE*~Z^2iAd1eD}o|+2mM;U*62X1ZOm3Fk_ho4iS>2R$`B$NvoEG3_S65fpJY93m zMaT7puHIcD_D{~=)iqbw936lCjW*qA)jjsye%002__A?xclELB{CA$N!Cn2Zd(%ek zwaYGRt~qMluH*OGbM&@)JB{73#r35(ZVuYK{MYy|(1y|+)3$zB->$9bdt!S0t($ND z`i%GsdUH2GP1|dkp01O>4R-R4S+;SB3FdfW^U{K;D>k%XeH!M(ja!c1tLlkGZvwV) z%hP++II+a7gPpjHJE341cRLb{8wTf9^~9prvp#*hwgq$k`sS@b?^W}}YF^?}#{l?X zsbdhB`?DQ=*4OX%SNx@WT>L(rniFgN#`bEl`k%%2WoA9R zW2>cKd294oFHUnVtI&I;wqWXuWzNQ_DVDP#X6<6umt1QSt7BM)*b=nFS&P_^g7t6M zk_}sx-pe>IbH!3$Y7t9)LtETx^j^o<)&@3|GrxO-tc#}$dSo?p_8{T02j>Lm8p z*u7}3$8YGZvkxu&-q@ZS=k9aI7%}zsp|?iyA*|4{^wwM35aO0=F|Ltu%hMZclT%Z@ z-_fh5Z{9F^Yqj;FD*b(Fsci!GCtUF-;%{2`N!WERlkwf_#P5ggdc>cC?HOE|DxAXs zH217F&)8J3p|oC|*0aV3Vz1EFdm45$55o3-TA6t}uj#a^m$428_dI+acSyr4pS(j$ zPWW(#6;54wIoJJgnq#W1hOw#nNNn#}_uOZ#XTr5~kB*{ukHp_o9ifh41;6Gbg@#7+<}9#W&x3RgKJN2KGRj`e)Ev z|0r7cGqHV+TF+VZ*3+97{%mZ=h(8lsjriwa&sqF)u?H9bJnXrPe?Im+#lHaC_X*Lv z5c`Y8zX*Fi+7M>33cWSjhS99md%U)lsaF0{n$I9xu*0e6=cU=en%)cIgKnLr&uU=)L zt$i5SEd#r{CeZiHXU@(u_g1h2z&@`f?>1u08ADr{o%VTkJDBtM|C;$epY9;mc*pYo zSsv_8Z0{kPygJ4^_j~ZC(P!PQ{a!GApPi}e{)SCzn7I#v`MfqZ=izBE-l~4;KZCzO z@t?(Cu=xMNU#R%c;V)ABf8#G&{O9o(EB*`kzTRj27x8_qkN*<>kmA3LKeYI-;4fAD zSMirF{%iQl6#sSnwVLmJ`2qeXpX~b+$J751pPj$Py;}wAKlq+)&$4I2wVGC%>-Tl` zVh8%(G_M_L@8SKeSI=`~C;SD;?N9G>#n-Y0itlsoMqj8W*uk*pW=^w-wH{Y5bYWxRi$URJZgl1j#>#`cZBJVM5$FpwpJ-?1?&5z^DugmDh zK8fudjFn5=Q`mAdTP;sxi}_rd&}x1T-<-X`qW5q7=*dU#d2G4lzKm_IwI%lz{N&0f z_f>4UeVD^2;$OoSi`MJdYE3R$Z{SBuK3Z>L%SG!gY_Vv)jjfiiDXHrn{AkHX>s@TQ zXuXFm7OfAk)$+L(tq<{|B_FN-V9Q18BW$r~eS)pl%%bJZ6D|2@^#YemZf|UJeYT~J zJ|$N^xqZcH$sK@g?l~oQPGj&rGxEtDh%J}gLD=TbD7k~dk}IFwxv}MP-o7w^*CYH1 zRv!W6!WL$^YJL`SRwAoAal34{V?w z`Mbb-KW>Qc<^3r41KJO1-jDXVkC&!qpA}~kYc1XMpP(x~4cq6TdOs$|OFj9Y;16$l z_V1%>jQVof%Z;(Krp_yCx(T>k;x;RB&M|SDgUbzPo@aq?fo-mMa({-MF}&ZCyCt|> z;CCwE)yj4`?7ZU-*s8jYa$`jA&U@sZ6RMb8pboA*cb%&5`c>a`t-kABefOdI?oajIx9Yo})pwt(?>fHCyN!{o@h`DG_r}

-kpGv+7ur=&iwXWot_hp{5*R1 z!p{uu(G+_3?gD!E)Xxg;wVx3@13Bxz#?D!{mfTOj0hh~jaBu7mMoe;lTXL;GxxWLK zOYXkdVy;DUC*o&Z=bYS0;Bv{Gj4f7kr{E{obxQ93;Bv`509&l)9*Cb@*EYG+z~xfk z?@OF(pSbDZay~zXfj`MjYOeV3_P+BeFrQsMTjV_#uAl4Re5}helxL{@+dKt)&w4zz z`JOA^zxurOy;(Qh3E1*JH+%-2i0$QbTJDdulW5-8_KsnUzFb}he#nEy*MW)TsHIY2jJaVD2>F2~O}@)_p}Y`Kgx3tKE&S7NJG->?1|KU(t9x(Zt^T32I> zMe8rvYKEf=lpu*ITvJ+@jii`HN9qa`1$zhTQo>jrGGtmTc^&f9t& zM?T}+gzY%>z3t!eGmd=5`3JUK#`!0Lwpg_8##YPMplIELA1(Q4-HR<3t^2UWvX=K_J8$cC9Qlm% z0Jh`oSH^h|KjX+}oQJUGGS0);V$pg8TPXg!B5mbLshw)3`L$B~y?7VYP; zeFk`TU2|ho!wcBfFs0P+B7SO+PYo|&%cX{wvBjeG3btCl-^hGk#gCSJv|huOi`MJd zV$pg7TP@$SMC(obXvs(GEo`}Hy^Spvt#`21@_kRV-o=lWe6-%fmW$T=*kW1d53rrL z^*WAx#`zH2ah~QiJLCKZKjX+}oR6^OGS0`?V$u2pTP?r8iKb>*pGtQFOav5hRwpg^5!dA=gd84&77(X2?`DiVJ zEf=jXVT(m;S!}iZjyPJ&f$`JPl8@H%*mBVthAkGY6|mJhlH6#m2*yuGOFmjFVar8p zWo)smGUe0Ifs@OgQJiD&Bv8iD-Y-{j4?$q#QFn&5U$ft&{V9TY3uVRZu z>ucC*`TcmbRtMv!qa`1$HL&HP^>u8qX#E$qT7I`4t#5$w)6tTT);F=`qO~Tr*l<2^ z_&cAqu&vcG^c5*ZX~y-(UMX5Z|w_4d?rHd*A;LLuVaqf7fz4IqPDtM|-EM zZ`XI4O-LvAyZGkX=lkjJVVmz2?E4M#dzTB_=aBWmjFt1V#Rl|VezuU?koE(b`u3YJ zM{D~j_RjSC8qDP!%r(xO%y~0x_5JLS+|BXDQ(rzKZqee5uX^fcOPri+kAW2jou#E2htnkXKZt)(YvSS zc+aV6?>%9>_o(-vxV`h*ikv;Mtu1S^7rytqzmKz4e}CogJ=OhH%eT+@{WZ3~*HrU2 zw7qHG@B1{HAv(Fg#dmD`oaNtPo9`8D--dZsbH7gjGgi(sK9SzbxyenUO{S@DpL_OD z?Ah;kbB!}6bDoafsRhmC9t z$CmdBc0|Km56_YRwdUKAUcfR(y-;c#s*K?mWI1b;vm&?6y zJT^a_HI&c2a00em?u8Sv#iI2`Y~$tpUxR`?3}SH0OfMVW?_rvyk3cId_DVr z2IHrrB_FM;u;rq4HMUr^{(`MmeXY9&jGvB{e6+5`mW$SP*kU>R*JE3&W5{KUzhXPa zBs4Skzk%`78ACo}+<+~YF>b^bi`GrpYE3R$e+T2Iqa`1$e_+c+>z~+S(YhI1t@@qg zEnxg~wB)08E4Ey;Zo?Lf*6rA8jVX2A0me^9OFmk6V#`JAE^M*9&fksgysg)9*pGtPb3avA4-Y_VuPfUQ>j&hbGoemYw6(Rv75E?N&`i$&`ZY_;ll zj*o)z)6tTT)??Um(Rv(PEa&J6Y-@E4IdT6c>`83TnCoLqy|28#yibjL8rxX!wORPy zgFaXM3^IZHQ{GE#H2uVe<@saWq=qr2PTVN^$zaBMnJczm!;&jDrC~L9|AsmA#Fl#i zn3^5khE2s+v!mOv1M$`Dw1!P@F~(16*dZ;Z6W_2y!5rJM5_ed`YVP3;Gj|ZbNp>Db zU^}m`(yYgL$C%u-|A4(~i%ZUtV99Y_=BT}ISKp528$8z?Kk-Ll*LcS_CilY8_>QBl zvHs0MwB966?Pwi?U9}wBnDEEW#=9nUKF8rZALEj9e93VQtj{$~eJ5Z$uDQlqUvf{x zul1Pg+*AKs)TUPA|5)NPmNDT^D!glJ{hovD$H~~%Z(Qm-1=~8*mbbo~-Ba;B=UxZ1 zr``*v;k)K?i8~$JIOmeM8Tig!E^%jI8|S%C+?n{+AeXqau)Pnxf}Pzk#|SpFVf8+G zfg8vgy>gyk1QYk~sgnCri&HOgFN2BKxK~=7V>Z zy$5ED_mMjOt(G;1f4}f*%3Evr4+^ioyfvndkFZ^5uV9}v%yEPD>e~}nYwH7MjJ2ub z-+ozd#_n5qHRY{0e80l0FK@kh#ti^-za1yoKy3G0?O=nj-EZ~sIxra9eBMFiQ5=lF12rp zE!J6|_RQW4-|^i~bzMK>qP;nGYVbW@w6_44%f4=j9UVE>U+w7p96LIbiq2Nxa@p6d zvDFgKb8lO0*Z2z7t()BKu#FS<{qzWWFW*ngjiimD`Tp77*Zm!uZ=cV-J7W92pfO`; zJJI}}pu5>>n!7W;TK4YUNbp^-&G!nnYr|ZJd`~bI%vd>V9Y^nFt#adOyV2CQ&u9JL zVbA_Ofw{(+llM`3W2^7JCwCuw@zj^^34Yt+jCWqqv(K8i4(2MU|To2#7O{Jd%W~^&5xyAcEf%tySpF(fW{`Ah*{+zb=2Vkq~+Nd!V+spNo zJCHVwW}dzCG)7-8`*IMrI%CLHXF9f*I&%64)6BD1$8(`CmvenMw&yxE<^DJVTrP1( zmAHD39t|#+d-Parv4OPQTgPGN-cok}&A4bEkDVIoJ$eGTTy##tj*i?Qn%dDh89O@l z9z6wIF8AoE*lLOAo;(9vd|O)n*3&;E6!)|5G+NyY_r!DM{d^9#v97Ce**DLJ>+N|k zH@@ej`r`SX;{t5I=P<@`%~ii=yq@nWFDx;RXN={wRoN%x8=XIAR=a_PywdcUR)HdJ0xfgRxdt)vlHZkg4jDHEu7<=n9Mqe(kfmiYx zwjO?(@AdqA@@MeD;PURH*mVU{@3N+6pE+Dleb(q0|Dd1MxMAd9j_tn{k-LH>=kxQ* zW?R3yf5x{?`#c-2!ZzP4*wqd5jOIT53z)HTuFEy_Uapf7fTcpLWY&rfrW zGbhi_o3Yie&(B-%#ZzCNpSQL+|HO{#C0&=G0eB7aJOTtA!mJZnfo2s@?OF2 zY?$kj=jUBu#<~`Fw|JkQ;`cQFUV3xxqj$dc*84#7?Nif(*nU@T%tN$?8#k5wN3i`j zQgV+r&i#F?*-#zb$MGG`hd$Nu5XE}uTlNL<$Qi^i}W1Wj$yu>?~DES zPU4wke{Am!U!$DkocLbOQBHp#%{kfEIm)fa1blxz7q;4JWqyOe#N8v`YY)cu+36K* z?uNMs!RBdLZ?Mc|UNG~Gmv=7yTP<I-k8O)jWf^K=y`tC^SqiH z-*a4jabLgH@;P%Yy)pLYs^2qS&+GRR_`b#)<7=)l)98&+*JqgH+Pk*KKY*QcZvQrK zIJ(KXif5m>-V64g7kk&=*FH5|zvp=k_EOKBE5XGa$3A}pK7>5i;Cf=sTN2;PJh`E? zrD*2aTkkT>x6iZWOV~b_jainqT;p7$<*|J(%MELs&*c@G?Re_0i0?S|dFHHyt+rRN zl^f=H&ONpYn6YxsV^w-D=OMQm?aMUv?ekpz7WVAVWpj-)C(q?IvDL57<+bp|Q(vCT z|J~w@cV5x6&w9B=<~xS@))emB*lNgGpIqj?HnzN1uyq>ddgOI?T`*%^i}hN(&t>uN zH2=Hw=6sLd`PyeazmKhMp356xd%2!+`Ww>Bvv;2Er@maCqd&yXEx8!zu%{5P`V?(a7AUha)` z>u*c5Zu?rdT2r%(0sk()_l(!`Tpok(bJ-Z5 z%f?KjH%8s%=pEPI`5M0rE$7@m&*i^z#?AF!u=l*!yZ%0Z)o}e@F3)9id@hSQj(wiX zI}z_1_*~BC(_VA&nGDQY)waeZ@y#7dUwv`cwVSwqGLB=ZZ!N}#8;h-;nEJ+q8&^2T zm2(W=$2+F)+pF*U`RW^&&$)gUvkvR>b;?|Oa}qNi&ixRxCS$CxXD&T^wp)pr)?$pU zF}s(T=nR=nXOGW`alYy}hgpp69PQnEYr72F{SvoN-G65uuB)%puJa1Se)ie3r|vgd zJ3m_+Y1sb% z9gOk+5s}=BSW|QD6MGOb#+&c|OXCu_)YzXI{H~(bIGs2zYm`42{}7tG_SR&KzMQZ5 z)^sSg^PGr&jWIU09ENS2dDa!Z5v}f#EjPY>at|loxf-L6y1r&~Gv*Q4@?J9<_6K}% zYjW+6YP|E3JDPS3&3V}Sn({qfbap1*`i++}E}XB+8S^;sRDRstmY(LkGq(2#4E^()pxV%3w?lf?@#GPH@CKbJz;BtvOx5P~@ zap!@{ji(M@w=cuCmiSj-JEr@-J^UcBVdkOa~}nB+=@MhZ>(3o+kG5g-1yY;1h#SJ zChkdm@f!D3i?hDOJq;#aD z4XgA1xM6kP{)2vV>%4n|W!`E#rfZS9`xM@B^Sc0;_l;bzg|NLxDz*ri_d~@N1M}>QrPjru`+lOBCL- zFYkEahZNqkFYnmlmn^(zU*0;hk4s@YZ}%)YE8?dn&!sWe8Gfb0doJazGyKYh_gu&eXITwl&o=^9}see*f!Ox!EAZ`iPUW_}3fnUTwx`4P5freZ$<^UPFiV=&K*SZdt_J8R*Yu@1)w zziHt;GxClXezU@RX5<|^{N{!C%*b0u=J-===UvatcKE5uGh>W(Msq~rJu~vw8GdBp zJu~vw8GcmZJu~vwnVLppTT?wVWARgyXT})ojOMt)duHUVGyM3%duHUVGyHCa_sqy! zXU@zX*q)jCEZqxCyq=kT8&=QEL@>{cT+Ym7Y|l)^rhs{7Ds}*vXGScwPQ}hzcxJ4_ zF~T2Mc+ZTy&X60$9CTJ%p8TEnmjYcSZ6ekF1%+(-a5k{ zQ+Useymf{@w(y=AdFxC~$75SlJu|1{rzX#gG1eK)8HM-E$XjRlGYapSk+;t9XBOTw zBX6DA9fw?xd*!y%;#Ih?gU$_VbQ(|EVcU@>+j~(3x9Xv`!rtd@b?zJU*jDo z{Nsi9-tu?$jv4-m!h3JYJ7)N&3h%um@0b(Y`{S3e9m72c_AidcVEbFxM();r)iy^Z7AY)^j~-Rm(Nad>H!w@anop;d{@< zJBD-4zV?Iny^P}o>ksDIi$!N}(eZW6am@`sci}w~^6G@2zwkcOtV_-C3l!dckykV8 zy)d@tTAg5vV!Qt4PHp?Q7`Cx;*_WlUvoCcImI0Tm*q0hs_hs3J)qPnJtnQ0ibzfGV zjaRqs%c`^Sj#2mJEBNk<<78jHhV8zHW!=7sojTkX$2B+nnuT{?rylP zx`lUN7k&Q772>T8Os_nR`{QN z4qtV*gjd5j_shQt_3vVCV2&dX<)F}t?! zjmBcj&El+d!;Ndce;1zd$2ZLXKdR%8gxd|Q6N{}z@ZGVEpU`3^p=b+CpC+U$>pATko9z(T(4k{fVobtSJwGaup4MT+j4I`fp5O|O0XyK%@@lW z{T3b9&Sp;5Xacxg)@Wk$>l#gJSY4yZV8;4Aof?_re%QuO05|5QwnkI1o&S;G*Eei` zFyrM?=Km2F-<>;#b(}z+mvtC(BK{v~j%%-;G5T`(F7_nszT~-Ij{WI(z}RwG$5XK7 zz2}m9Dt>b1lY1JroUbE3`_9BZnI>NAupZ}S%(>XcS)2bqWNY?5bU)6+miG#Fe#1Pw zIZKy-oy=Z)mU1TkgzXuV%UmwS7WaP0zV=~EadlnKx$wPQPq~4#zBJd*K3W5?t~^Vn9UcL_y6f^y#Fuf>Wl09dp3Fdk9eAWgZ96HBlY9} literal 26424 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 kwf>iz|CPmjae4or&c^%ya<0C(zQ1Raw|, 6>; var phi_631_: u32; var phi_667_: type_31; - var phi_2083_: bool; + var phi_2131_: bool; var phi_832_: type_19; var phi_833_: type_19; - var phi_848_: type_19; - var phi_875_: bool; - var phi_881_: type_19; - var phi_882_: type_19; - var phi_897_: type_19; - var phi_920_: bool; - var phi_928_: type_17; - var phi_2115_: bool; - var phi_979_: type_32; - var phi_1111_: type_19; - var phi_1112_: type_19; + var phi_856_: type_19; + var phi_883_: bool; + var phi_889_: type_19; + var phi_890_: type_19; + var phi_913_: type_19; + var phi_936_: bool; + var phi_944_: type_17; + var phi_2163_: bool; + var phi_995_: type_32; var phi_1127_: type_19; - var phi_1171_: bool; - var phi_1175_: bool; - var phi_1176_: bool; - var phi_2679_: bool; - var phi_1984_: bool; - var phi_2705_: bool; - var phi_1183_: type_19; - var phi_1184_: type_19; - var phi_1199_: type_19; - var phi_1209_: type_19; - var phi_1212_: i32; - var phi_1210_: type_19; - var phi_1227_: type_19; - var phi_1268_: i32; - var phi_1213_: i32; - var phi_1269_: bool; - var phi_2700_: bool; + var phi_1128_: type_19; + var phi_1151_: type_19; + var phi_1195_: bool; + var phi_1199_: bool; + var phi_1200_: bool; + var phi_2727_: bool; + var phi_2032_: bool; + var phi_2754_: bool; + var phi_1207_: type_19; + var phi_1208_: type_19; + var phi_1231_: type_19; + var phi_1241_: type_19; + var phi_1244_: i32; + var phi_1242_: type_19; + var phi_1267_: type_19; + var phi_1308_: i32; + var phi_1245_: i32; + var phi_1309_: bool; + var phi_2748_: bool; var local_8: i32; - var phi_1276_: type_19; - var phi_1279_: i32; - var phi_1277_: type_19; - var phi_1294_: type_19; - var phi_1335_: i32; - var phi_1280_: i32; - var phi_1336_: bool; - var phi_2707_: bool; + var phi_1316_: type_19; + var phi_1319_: i32; + var phi_1317_: type_19; + var phi_1342_: type_19; + var phi_1383_: i32; + var phi_1320_: i32; + var phi_1384_: bool; + var phi_2755_: bool; var local_9: i32; - var phi_2714_: bool; - var phi_1342_: bool; - var phi_1343_: bool; - var phi_2713_: bool; - var phi_1344_: bool; - var phi_1345_: bool; - var phi_1346_: bool; - var phi_1347_: bool; - var phi_2712_: bool; - var phi_1987_: bool; - var phi_1986_: bool; - var phi_1985_: bool; - var phi_1370_: type_33; - var phi_1371_: type_33; + var phi_2762_: bool; + var phi_1390_: bool; + var phi_1391_: bool; + var phi_2761_: bool; + var phi_1392_: bool; + var phi_1393_: bool; + var phi_1394_: bool; + var phi_1395_: bool; + var phi_2760_: bool; + var phi_2035_: bool; + var phi_2034_: bool; + var phi_2033_: bool; + var phi_1418_: type_33; + var phi_1419_: type_33; var local_10: u32; - var phi_1377_: type_33; - var phi_1378_: type_33; - var phi_1642_: u32; - var phi_2498_: bool; - var phi_1660_: type_19; - var phi_2524_: u32; + var phi_1425_: type_33; + var phi_1426_: type_33; + var phi_1690_: u32; + var phi_2546_: bool; + var phi_1708_: type_19; + var phi_2572_: u32; switch bitcast(0u) { default: { @@ -274,11 +274,11 @@ fn function() { let _e203 = phi_667_; if _e203.member_6 { if (_e90 >= 83u) { - phi_2083_ = (_e141 <= (_e90 - 83u)); + phi_2131_ = (_e141 <= (_e90 - 83u)); } else { - phi_2083_ = false; + phi_2131_ = false; } - let _e209 = phi_2083_; + let _e209 = phi_2131_; if _e209 { let _e212 = global.member[_e141]; let _e217 = global.member[(_e141 + 1u)]; @@ -321,16 +321,16 @@ fn function() { let _e397 = phi_832_; if (_e397.member < _e397.member_1) { phi_833_ = type_19((_e397.member + 1u), _e397.member_1); - phi_848_ = type_19(1u, _e397.member); + phi_856_ = type_19(1u, _e397.member); } else { phi_833_ = _e397; - phi_848_ = type_19(0u, type_19().member_1); + phi_856_ = type_19(0u, type_19().member_1); } let _e410 = phi_833_; - let _e412 = phi_848_; + let _e412 = phi_856_; switch bitcast(_e412.member) { case 0: { - phi_875_ = false; + phi_883_ = false; break; } case 1: { @@ -340,15 +340,15 @@ fn function() { let _e430 = global.member[(_e417 + 2u)]; let _e435 = global.member[(_e417 + 3u)]; local_7[_e412.member_1] = vec4(bitcast(_e420), bitcast(_e425), bitcast(_e430), bitcast(_e435)); - phi_875_ = true; + phi_883_ = true; break; } default: { - phi_875_ = bool(); + phi_883_ = bool(); break; } } - let _e440 = phi_875_; + let _e440 = phi_883_; continue; continuing { phi_832_ = _e410; @@ -357,21 +357,21 @@ fn function() { } let _e442 = local_7; local_6 = array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)); - phi_881_ = type_19(0u, 8u); + phi_889_ = type_19(0u, 8u); loop { - let _e445 = phi_881_; + let _e445 = phi_889_; if (_e445.member < _e445.member_1) { - phi_882_ = type_19((_e445.member + 1u), _e445.member_1); - phi_897_ = type_19(1u, _e445.member); + phi_890_ = type_19((_e445.member + 1u), _e445.member_1); + phi_913_ = type_19(1u, _e445.member); } else { - phi_882_ = _e445; - phi_897_ = type_19(0u, type_19().member_1); + phi_890_ = _e445; + phi_913_ = type_19(0u, type_19().member_1); } - let _e458 = phi_882_; - let _e460 = phi_897_; + let _e458 = phi_890_; + let _e460 = phi_913_; switch bitcast(_e460.member) { case 0: { - phi_920_ = false; + phi_936_ = false; break; } case 1: { @@ -380,33 +380,33 @@ fn function() { let _e473 = global.member[(_e465 + 1u)]; let _e478 = global.member[(_e465 + 2u)]; local_6[_e460.member_1] = vec3(bitcast(_e468), bitcast(_e473), bitcast(_e478)); - phi_920_ = true; + phi_936_ = true; break; } default: { - phi_920_ = bool(); + phi_936_ = bool(); break; } } - let _e483 = phi_920_; + let _e483 = phi_936_; continue; continuing { - phi_881_ = _e458; + phi_889_ = _e458; break if !(_e483); } } let _e485 = local_6; - phi_928_ = type_17(type_15(vec4(bitcast(_e212), bitcast(_e217), bitcast(_e222), bitcast(_e227)), vec4(bitcast(_e233), bitcast(_e238), bitcast(_e243), bitcast(_e248)), vec4(bitcast(_e254), bitcast(_e259), bitcast(_e264), bitcast(_e269)), vec4(bitcast(_e275), bitcast(_e280), bitcast(_e285), bitcast(_e290))), type_15(vec4(bitcast(_e297), bitcast(_e302), bitcast(_e307), bitcast(_e312)), vec4(bitcast(_e318), bitcast(_e323), bitcast(_e328), bitcast(_e333)), vec4(bitcast(_e339), bitcast(_e344), bitcast(_e349), bitcast(_e354)), vec4(bitcast(_e360), bitcast(_e365), bitcast(_e370), bitcast(_e375))), type_16(_e485, _e442), vec3(bitcast(_e382), bitcast(_e387), bitcast(_e392))); + phi_944_ = type_17(type_15(vec4(bitcast(_e212), bitcast(_e217), bitcast(_e222), bitcast(_e227)), vec4(bitcast(_e233), bitcast(_e238), bitcast(_e243), bitcast(_e248)), vec4(bitcast(_e254), bitcast(_e259), bitcast(_e264), bitcast(_e269)), vec4(bitcast(_e275), bitcast(_e280), bitcast(_e285), bitcast(_e290))), type_15(vec4(bitcast(_e297), bitcast(_e302), bitcast(_e307), bitcast(_e312)), vec4(bitcast(_e318), bitcast(_e323), bitcast(_e328), bitcast(_e333)), vec4(bitcast(_e339), bitcast(_e344), bitcast(_e349), bitcast(_e354)), vec4(bitcast(_e360), bitcast(_e365), bitcast(_e370), bitcast(_e375))), type_16(_e485, _e442), vec3(bitcast(_e382), bitcast(_e387), bitcast(_e392))); } else { - phi_928_ = type_17(type_15(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_15(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_16(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); + phi_944_ = type_17(type_15(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_15(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_16(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); } - let _e489 = phi_928_; + let _e489 = phi_944_; if (_e90 >= 10u) { - phi_2115_ = (_e145 <= (_e90 - 10u)); + phi_2163_ = (_e145 <= (_e90 - 10u)); } else { - phi_2115_ = false; + phi_2163_ = false; } - let _e497 = phi_2115_; + let _e497 = phi_2163_; if _e497 { let _e500 = global.member[_e145]; let _e505 = global.member[(_e145 + 1u)]; @@ -418,11 +418,11 @@ fn function() { let _e537 = global.member[(_e145 + 7u)]; let _e542 = global.member[(_e145 + 8u)]; let _e547 = global.member[(_e145 + 9u)]; - phi_979_ = type_32(vec3(bitcast(_e500), bitcast(_e505), bitcast(_e510)), vec4(bitcast(_e516), bitcast(_e521), bitcast(_e526), bitcast(_e531)), vec3(bitcast(_e537), bitcast(_e542), bitcast(_e547))); + phi_995_ = type_32(vec3(bitcast(_e500), bitcast(_e505), bitcast(_e510)), vec4(bitcast(_e516), bitcast(_e521), bitcast(_e526), bitcast(_e531)), vec3(bitcast(_e537), bitcast(_e542), bitcast(_e547))); } else { - phi_979_ = type_32(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); + phi_995_ = type_32(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); } - let _e552 = phi_979_; + let _e552 = phi_995_; let _e560 = (_e552.member_1.x + _e552.member_1.x); let _e561 = (_e552.member_1.y + _e552.member_1.y); let _e562 = (_e552.member_1.z + _e552.member_1.z); @@ -447,66 +447,66 @@ fn function() { let _e638 = local[0u][3u]; let _e640 = -(_e621); if ((fma(_e634, _e615, fma(_e626, _e613, (_e629 * _e614))) + _e638) < _e640) { - phi_1378_ = type_33(true, 0u); + phi_1426_ = type_33(true, 0u); } else { - phi_1111_ = type_19(0u, 6u); + phi_1127_ = type_19(0u, 6u); loop { - let _e643 = phi_1111_; + let _e643 = phi_1127_; if (_e643.member < _e643.member_1) { - phi_1112_ = type_19((_e643.member + 1u), _e643.member_1); - phi_1127_ = type_19(1u, _e643.member); + phi_1128_ = type_19((_e643.member + 1u), _e643.member_1); + phi_1151_ = type_19(1u, _e643.member); } else { - phi_1112_ = _e643; - phi_1127_ = type_19(0u, type_19().member_1); + phi_1128_ = _e643; + phi_1151_ = type_19(0u, type_19().member_1); } - let _e656 = phi_1112_; - let _e658 = phi_1127_; + let _e656 = phi_1128_; + let _e658 = phi_1151_; local_10 = _e658.member_1; switch bitcast(_e658.member) { case 0: { - phi_1175_ = false; - phi_1176_ = true; + phi_1199_ = false; + phi_1200_ = true; break; } case 1: { if (_e658.member_1 != 0u) { if (_e658.member_1 < 6u) { } else { - phi_2679_ = true; - phi_1984_ = bool(); + phi_2727_ = true; + phi_2032_ = bool(); break; } let _e666 = local[_e658.member_1][0u]; let _e669 = local[_e658.member_1][1u]; let _e674 = local[_e658.member_1][2u]; let _e678 = local[_e658.member_1][3u]; - phi_1171_ = select(true, false, ((fma(_e674, _e615, fma(_e666, _e613, (_e669 * _e614))) + _e678) < _e640)); + phi_1195_ = select(true, false, ((fma(_e674, _e615, fma(_e666, _e613, (_e669 * _e614))) + _e678) < _e640)); } else { - phi_1171_ = true; + phi_1195_ = true; } - let _e683 = phi_1171_; - phi_1175_ = _e683; - phi_1176_ = false; + let _e683 = phi_1195_; + phi_1199_ = _e683; + phi_1200_ = false; break; } default: { - phi_1175_ = bool(); - phi_1176_ = bool(); + phi_1199_ = bool(); + phi_1200_ = bool(); break; } } - let _e685 = phi_1175_; - let _e687 = phi_1176_; + let _e685 = phi_1199_; + let _e687 = phi_1200_; continue; continuing { - phi_1111_ = _e656; - phi_2679_ = false; - phi_1984_ = _e687; + phi_1127_ = _e656; + phi_2727_ = false; + phi_2032_ = _e687; break if !(_e685); } } - let _e690 = phi_2679_; - let _e692 = phi_1984_; + let _e690 = phi_2727_; + let _e692 = phi_2032_; if _e690 { break; } @@ -514,55 +514,55 @@ fn function() { let _e693 = vec3(_e621); let _e694 = (_e616 - _e693); let _e695 = (_e616 + _e693); - phi_2705_ = _e690; - phi_1183_ = type_19(0u, 3u); + phi_2754_ = _e690; + phi_1207_ = type_19(0u, 3u); loop { - let _e697 = phi_2705_; - let _e699 = phi_1183_; + let _e697 = phi_2754_; + let _e699 = phi_1207_; if (_e699.member < _e699.member_1) { - phi_1184_ = type_19((_e699.member + 1u), _e699.member_1); - phi_1199_ = type_19(1u, _e699.member); + phi_1208_ = type_19((_e699.member + 1u), _e699.member_1); + phi_1231_ = type_19(1u, _e699.member); } else { - phi_1184_ = _e699; - phi_1199_ = type_19(0u, type_19().member_1); + phi_1208_ = _e699; + phi_1231_ = type_19(0u, type_19().member_1); } - let _e712 = phi_1184_; - let _e714 = phi_1199_; + let _e712 = phi_1208_; + let _e714 = phi_1231_; switch bitcast(_e714.member) { case 0: { - phi_2713_ = _e697; - phi_1344_ = false; - phi_1345_ = true; - phi_1346_ = false; - phi_1347_ = false; + phi_2761_ = _e697; + phi_1392_ = false; + phi_1393_ = true; + phi_1394_ = false; + phi_1395_ = false; break; } case 1: { - phi_1209_ = type_19(0u, 8u); - phi_1212_ = 0i; + phi_1241_ = type_19(0u, 8u); + phi_1244_ = 0i; loop { - let _e719 = phi_1209_; - let _e721 = phi_1212_; + let _e719 = phi_1241_; + let _e721 = phi_1244_; local_8 = _e721; if (_e719.member < _e719.member_1) { - phi_1210_ = type_19((_e719.member + 1u), _e719.member_1); - phi_1227_ = type_19(1u, _e719.member); + phi_1242_ = type_19((_e719.member + 1u), _e719.member_1); + phi_1267_ = type_19(1u, _e719.member); } else { - phi_1210_ = _e719; - phi_1227_ = type_19(0u, type_19().member_1); + phi_1242_ = _e719; + phi_1267_ = type_19(0u, type_19().member_1); } - let _e734 = phi_1210_; - let _e736 = phi_1227_; + let _e734 = phi_1242_; + let _e736 = phi_1267_; switch bitcast(_e736.member) { case 0: { - phi_1213_ = i32(); - phi_1269_ = false; + phi_1245_ = i32(); + phi_1309_ = false; break; } case 1: { if (_e736.member_1 < 8u) { } else { - phi_2700_ = true; + phi_2748_ = true; break; } let _e743 = local_1[_e736.member_1][0u]; @@ -572,83 +572,83 @@ fn function() { let _e751 = (_e714.member_1 < 3u); if _e751 { } else { - phi_2700_ = true; + phi_2748_ = true; break; } let _e753 = local_2[_e714.member_1]; local_3 = array(_e694.x, _e694.y, _e694.z); if _e751 { } else { - phi_2700_ = true; + phi_2748_ = true; break; } let _e759 = local_3[_e714.member_1]; if (_e753 < _e759) { - phi_1268_ = (_e721 + 1i); + phi_1308_ = (_e721 + 1i); } else { - phi_1268_ = _e721; + phi_1308_ = _e721; } - let _e763 = phi_1268_; - phi_1213_ = _e763; - phi_1269_ = true; + let _e763 = phi_1308_; + phi_1245_ = _e763; + phi_1309_ = true; break; } default: { - phi_1213_ = i32(); - phi_1269_ = bool(); + phi_1245_ = i32(); + phi_1309_ = bool(); break; } } - let _e765 = phi_1213_; - let _e767 = phi_1269_; + let _e765 = phi_1245_; + let _e767 = phi_1309_; continue; continuing { - phi_1209_ = _e734; - phi_1212_ = _e765; - phi_2700_ = _e697; + phi_1241_ = _e734; + phi_1244_ = _e765; + phi_2748_ = _e697; break if !(_e767); } } - let _e770 = phi_2700_; - phi_2712_ = _e770; - phi_1987_ = bool(); - phi_1986_ = bool(); - phi_1985_ = bool(); + let _e770 = phi_2748_; + phi_2760_ = _e770; + phi_2035_ = bool(); + phi_2034_ = bool(); + phi_2033_ = bool(); if _e770 { break; } let _e772 = local_8; let _e773 = (_e772 == 8i); if _e773 { - phi_2714_ = _e770; - phi_1342_ = false; - phi_1343_ = false; + phi_2762_ = _e770; + phi_1390_ = false; + phi_1391_ = false; } else { - phi_1276_ = type_19(0u, 8u); - phi_1279_ = 0i; + phi_1316_ = type_19(0u, 8u); + phi_1319_ = 0i; loop { - let _e775 = phi_1276_; - let _e777 = phi_1279_; + let _e775 = phi_1316_; + let _e777 = phi_1319_; local_9 = _e777; if (_e775.member < _e775.member_1) { - phi_1277_ = type_19((_e775.member + 1u), _e775.member_1); - phi_1294_ = type_19(1u, _e775.member); + phi_1317_ = type_19((_e775.member + 1u), _e775.member_1); + phi_1342_ = type_19(1u, _e775.member); } else { - phi_1277_ = _e775; - phi_1294_ = type_19(0u, type_19().member_1); + phi_1317_ = _e775; + phi_1342_ = type_19(0u, type_19().member_1); } - let _e790 = phi_1277_; - let _e792 = phi_1294_; + let _e790 = phi_1317_; + let _e792 = phi_1342_; switch bitcast(_e792.member) { case 0: { - phi_1280_ = i32(); - phi_1336_ = false; + phi_1320_ = i32(); + phi_1384_ = false; break; } case 1: { if (_e792.member_1 < 8u) { } else { - phi_2707_ = true; + phi_2755_ = true; break; } let _e799 = local_1[_e792.member_1][0u]; @@ -658,121 +658,121 @@ fn function() { let _e807 = (_e714.member_1 < 3u); if _e807 { } else { - phi_2707_ = true; + phi_2755_ = true; break; } let _e809 = local_4[_e714.member_1]; local_5 = array(_e695.x, _e695.y, _e695.z); if _e807 { } else { - phi_2707_ = true; + phi_2755_ = true; break; } let _e815 = local_5[_e714.member_1]; if (_e809 > _e815) { - phi_1335_ = (_e777 + 1i); + phi_1383_ = (_e777 + 1i); } else { - phi_1335_ = _e777; + phi_1383_ = _e777; } - let _e819 = phi_1335_; - phi_1280_ = _e819; - phi_1336_ = true; + let _e819 = phi_1383_; + phi_1320_ = _e819; + phi_1384_ = true; break; } default: { - phi_1280_ = i32(); - phi_1336_ = bool(); + phi_1320_ = i32(); + phi_1384_ = bool(); break; } } - let _e821 = phi_1280_; - let _e823 = phi_1336_; + let _e821 = phi_1320_; + let _e823 = phi_1384_; continue; continuing { - phi_1276_ = _e790; - phi_1279_ = _e821; - phi_2707_ = _e770; + phi_1316_ = _e790; + phi_1319_ = _e821; + phi_2755_ = _e770; break if !(_e823); } } - let _e826 = phi_2707_; - phi_2712_ = _e826; - phi_1987_ = bool(); - phi_1986_ = bool(); - phi_1985_ = bool(); + let _e826 = phi_2755_; + phi_2760_ = _e826; + phi_2035_ = bool(); + phi_2034_ = bool(); + phi_2033_ = bool(); if _e826 { break; } let _e828 = local_9; let _e829 = (_e828 == 8i); - phi_2714_ = _e826; - phi_1342_ = select(true, false, _e829); - phi_1343_ = _e829; + phi_2762_ = _e826; + phi_1390_ = select(true, false, _e829); + phi_1391_ = _e829; } - let _e832 = phi_2714_; - let _e834 = phi_1342_; - let _e836 = phi_1343_; - phi_2713_ = _e832; - phi_1344_ = _e834; - phi_1345_ = false; - phi_1346_ = _e773; - phi_1347_ = _e836; + let _e832 = phi_2762_; + let _e834 = phi_1390_; + let _e836 = phi_1391_; + phi_2761_ = _e832; + phi_1392_ = _e834; + phi_1393_ = false; + phi_1394_ = _e773; + phi_1395_ = _e836; break; } default: { - phi_2713_ = _e697; - phi_1344_ = bool(); - phi_1345_ = bool(); - phi_1346_ = bool(); - phi_1347_ = bool(); + phi_2761_ = _e697; + phi_1392_ = bool(); + phi_1393_ = bool(); + phi_1394_ = bool(); + phi_1395_ = bool(); break; } } - let _e838 = phi_2713_; - let _e840 = phi_1344_; - let _e842 = phi_1345_; - let _e844 = phi_1346_; - let _e846 = phi_1347_; + let _e838 = phi_2761_; + let _e840 = phi_1392_; + let _e842 = phi_1393_; + let _e844 = phi_1394_; + let _e846 = phi_1395_; continue; continuing { - phi_2705_ = _e838; - phi_1183_ = _e712; - phi_2712_ = _e838; - phi_1987_ = _e846; - phi_1986_ = _e844; - phi_1985_ = _e842; + phi_2754_ = _e838; + phi_1207_ = _e712; + phi_2760_ = _e838; + phi_2035_ = _e846; + phi_2034_ = _e844; + phi_2033_ = _e842; break if !(_e840); } } - let _e849 = phi_2712_; - let _e851 = phi_1987_; - let _e853 = phi_1986_; - let _e855 = phi_1985_; + let _e849 = phi_2760_; + let _e851 = phi_2035_; + let _e853 = phi_2034_; + let _e855 = phi_2033_; if _e849 { break; } let _e856 = select(_e853, false, _e855); if select(true, false, select(_e856, true, select(select(_e851, false, _e855), false, _e856))) { - phi_1370_ = type_33(false, 0u); + phi_1418_ = type_33(false, 0u); } else { - phi_1370_ = type_33(true, 0u); + phi_1418_ = type_33(true, 0u); } - let _e862 = phi_1370_; - phi_1371_ = _e862; + let _e862 = phi_1418_; + phi_1419_ = _e862; } else { - phi_1371_ = type_33(); + phi_1419_ = type_33(); } - let _e864 = phi_1371_; + let _e864 = phi_1419_; if select(true, false, _e692) { let _e867 = local_10; - phi_1377_ = type_33(true, _e867); + phi_1425_ = type_33(true, _e867); } else { - phi_1377_ = _e864; + phi_1425_ = _e864; } - let _e870 = phi_1377_; - phi_1378_ = _e870; + let _e870 = phi_1425_; + phi_1426_ = _e870; } - let _e872 = phi_1378_; + let _e872 = phi_1426_; if (_e872.member != true) { global_2.member[_e95.x].member_1 = 1u; if _e203.member_7 { @@ -813,32 +813,32 @@ fn function() { let _e1090 = (_e1078 & 31u); let _e1093 = round(((_e1059.y + _e1060.y) * 0.5f)); if (_e1078 >= _e887) { - phi_1642_ = 4294967295u; + phi_1690_ = 4294967295u; } else { - phi_1642_ = (_e884 + (2u * _e1078)); + phi_1690_ = (_e884 + (2u * _e1078)); } - let _e1105 = phi_1642_; + let _e1105 = phi_1690_; if (_e92 >= 2u) { - phi_2498_ = (_e1105 <= (_e92 - 2u)); + phi_2546_ = (_e1105 <= (_e92 - 2u)); } else { - phi_2498_ = false; + phi_2546_ = false; } - let _e1110 = phi_2498_; + let _e1110 = phi_2546_; if _e1110 { let _e1113 = global_1.member[_e1105]; let _e1117 = global_1.member[(_e1105 + 1u)]; - phi_1660_ = type_19(_e1113, _e1117); + phi_1708_ = type_19(_e1113, _e1117); } else { - phi_1660_ = type_19(4294967295u, 0u); + phi_1708_ = type_19(4294967295u, 0u); } - let _e1120 = phi_1660_; + let _e1120 = phi_1708_; let _e1126 = (((select(select(u32(_e1093), 0u, (_e1093 < 0f)), 4294967295u, (_e1093 > 4294967000f)) >> bitcast(_e1090)) * (_e878 >> bitcast(_e1090))) + (select(select(u32(_e1084), 0u, (_e1084 < 0f)), 4294967295u, (_e1084 > 4294967000f)) >> bitcast(_e1090))); if (_e1126 >= _e1120.member_1) { - phi_2524_ = 4294967295u; + phi_2572_ = 4294967295u; } else { - phi_2524_ = (_e1120.member + _e1126); + phi_2572_ = (_e1120.member + _e1126); } - let _e1130 = phi_2524_; + let _e1130 = phi_2572_; let _e1133 = global_1.member[_e1130]; if select((_e1059.z > 1f), true, (_e1059.z > bitcast(_e1133))) { global_2.member[_e95.x].member_1 = 0u; diff --git a/crates/renderling/shaders/debug-debug_overlay_fragment.spv b/crates/renderling/shaders/debug-debug_overlay_fragment.spv index 43151e3ad104393a30aa72812708aabfea6607e3..5cb9a535ac49e6647abc4b1251142fe6a3ec608c 100644 GIT binary patch literal 20744 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 literal 20744 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 diff --git a/crates/renderling/shaders/debug-debug_overlay_fragment.wgsl b/crates/renderling/shaders/debug-debug_overlay_fragment.wgsl index a2ec575a..a9d46cae 100644 --- a/crates/renderling/shaders/debug-debug_overlay_fragment.wgsl +++ b/crates/renderling/shaders/debug-debug_overlay_fragment.wgsl @@ -40,59 +40,59 @@ fn function() { var local_5: array; var local_6: array, 8>; var local_7: array, 6>; - var phi_2139_: bool; + var phi_2195_: bool; + var phi_539_: type_17; var phi_540_: type_17; - var phi_541_: type_17; - var phi_556_: type_17; - var phi_726_: type_17; - var phi_727_: type_17; - var phi_742_: type_17; - var phi_769_: bool; - var phi_775_: type_17; - var phi_776_: type_17; + var phi_563_: type_17; + var phi_733_: type_17; + var phi_734_: type_17; + var phi_757_: type_17; + var phi_784_: bool; + var phi_790_: type_17; var phi_791_: type_17; - var phi_814_: bool; - var phi_870_: type_26; - var phi_1013_: type_17; - var phi_1014_: type_17; - var phi_1029_: type_17; - var phi_1073_: bool; - var phi_1077_: bool; - var phi_1078_: bool; - var phi_2127_: bool; - var phi_1576_: bool; - var phi_2147_: bool; - var phi_1085_: type_17; - var phi_1086_: type_17; - var phi_1101_: type_17; - var phi_1111_: type_17; - var phi_1114_: i32; - var phi_1112_: type_17; - var phi_1129_: type_17; - var phi_1170_: i32; - var phi_1115_: i32; - var phi_1171_: bool; - var phi_2142_: bool; + var phi_814_: type_17; + var phi_837_: bool; + var phi_893_: type_26; + var phi_1036_: type_17; + var phi_1037_: type_17; + var phi_1060_: type_17; + var phi_1104_: bool; + var phi_1108_: bool; + var phi_1109_: bool; + var phi_2182_: bool; + var phi_1631_: bool; + var phi_2203_: bool; + var phi_1116_: type_17; + var phi_1117_: type_17; + var phi_1140_: type_17; + var phi_1150_: type_17; + var phi_1153_: i32; + var phi_1151_: type_17; + var phi_1176_: type_17; + var phi_1217_: i32; + var phi_1154_: i32; + var phi_1218_: bool; + var phi_2197_: bool; var local_8: i32; - var phi_1178_: type_17; - var phi_1181_: i32; - var phi_1179_: type_17; - var phi_1196_: type_17; - var phi_1237_: i32; - var phi_1182_: i32; - var phi_1238_: bool; - var phi_2149_: bool; + var phi_1225_: type_17; + var phi_1228_: i32; + var phi_1226_: type_17; + var phi_1251_: type_17; + var phi_1292_: i32; + var phi_1229_: i32; + var phi_1293_: bool; + var phi_2204_: bool; var local_9: i32; - var phi_2156_: bool; - var phi_1244_: bool; - var phi_2155_: bool; - var phi_1246_: bool; - var phi_2154_: bool; - var phi_2162_: bool; - var phi_2161_: bool; - var phi_2159_: bool; - var phi_1491_: bool; - var phi_2158_: bool; + var phi_2211_: bool; + var phi_1299_: bool; + var phi_2210_: bool; + var phi_1301_: bool; + var phi_2209_: bool; + var phi_2219_: bool; + var phi_2218_: bool; + var phi_2214_: bool; + var phi_1546_: bool; + var phi_2213_: bool; switch bitcast(0u) { default: { @@ -100,24 +100,24 @@ fn function() { let _e78 = global.member[2u]; let _e81 = global.member[3u]; global_1 = vec4(0f, 0f, 0f, 0f); - phi_2139_ = false; - phi_540_ = type_17(0u, arrayLength((&global_2.member))); + phi_2195_ = false; + phi_539_ = type_17(0u, arrayLength((&global_2.member))); loop { - let _e84 = phi_2139_; - let _e86 = phi_540_; + let _e84 = phi_2195_; + let _e86 = phi_539_; if (_e86.member < _e86.member_1) { - phi_541_ = type_17((_e86.member + 1u), _e86.member_1); - phi_556_ = type_17(1u, _e86.member); + phi_540_ = type_17((_e86.member + 1u), _e86.member_1); + phi_563_ = type_17(1u, _e86.member); } else { - phi_541_ = _e86; - phi_556_ = type_17(0u, type_17().member_1); + phi_540_ = _e86; + phi_563_ = type_17(0u, type_17().member_1); } - let _e99 = phi_541_; - let _e101 = phi_556_; + let _e99 = phi_540_; + let _e101 = phi_563_; switch bitcast(_e101.member) { case 0: { - phi_2159_ = _e84; - phi_1491_ = false; + phi_2214_ = _e84; + phi_1546_ = false; break; } case 1: { @@ -188,21 +188,21 @@ fn function() { let _e270 = global.member[(_e112 + 31u)]; let _e271 = bitcast(_e270); local_7 = array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f)); - phi_726_ = type_17(0u, 6u); + phi_733_ = type_17(0u, 6u); loop { - let _e274 = phi_726_; + let _e274 = phi_733_; if (_e274.member < _e274.member_1) { - phi_727_ = type_17((_e274.member + 1u), _e274.member_1); - phi_742_ = type_17(1u, _e274.member); + phi_734_ = type_17((_e274.member + 1u), _e274.member_1); + phi_757_ = type_17(1u, _e274.member); } else { - phi_727_ = _e274; - phi_742_ = type_17(0u, type_17().member_1); + phi_734_ = _e274; + phi_757_ = type_17(0u, type_17().member_1); } - let _e287 = phi_727_; - let _e289 = phi_742_; + let _e287 = phi_734_; + let _e289 = phi_757_; switch bitcast(_e289.member) { case 0: { - phi_769_ = false; + phi_784_ = false; break; } case 1: { @@ -212,38 +212,38 @@ fn function() { let _e307 = global.member[(_e294 + 2u)]; let _e312 = global.member[(_e294 + 3u)]; local_7[_e289.member_1] = vec4(bitcast(_e297), bitcast(_e302), bitcast(_e307), bitcast(_e312)); - phi_769_ = true; + phi_784_ = true; break; } default: { - phi_769_ = bool(); + phi_784_ = bool(); break; } } - let _e317 = phi_769_; + let _e317 = phi_784_; continue; continuing { - phi_726_ = _e287; + phi_733_ = _e287; break if !(_e317); } } let _e319 = local_7; local_6 = array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)); - phi_775_ = type_17(0u, 8u); + phi_790_ = type_17(0u, 8u); loop { - let _e322 = phi_775_; + let _e322 = phi_790_; if (_e322.member < _e322.member_1) { - phi_776_ = type_17((_e322.member + 1u), _e322.member_1); - phi_791_ = type_17(1u, _e322.member); + phi_791_ = type_17((_e322.member + 1u), _e322.member_1); + phi_814_ = type_17(1u, _e322.member); } else { - phi_776_ = _e322; - phi_791_ = type_17(0u, type_17().member_1); + phi_791_ = _e322; + phi_814_ = type_17(0u, type_17().member_1); } - let _e335 = phi_776_; - let _e337 = phi_791_; + let _e335 = phi_791_; + let _e337 = phi_814_; switch bitcast(_e337.member) { case 0: { - phi_814_ = false; + phi_837_ = false; break; } case 1: { @@ -252,18 +252,18 @@ fn function() { let _e350 = global.member[(_e342 + 1u)]; let _e355 = global.member[(_e342 + 2u)]; local_6[_e337.member_1] = vec3(bitcast(_e345), bitcast(_e350), bitcast(_e355)); - phi_814_ = true; + phi_837_ = true; break; } default: { - phi_814_ = bool(); + phi_837_ = bool(); break; } } - let _e360 = phi_814_; + let _e360 = phi_837_; continue; continuing { - phi_775_ = _e335; + phi_790_ = _e335; break if !(_e360); } } @@ -280,11 +280,11 @@ fn function() { let _e408 = global.member[(_e366 + 7u)]; let _e413 = global.member[(_e366 + 8u)]; let _e418 = global.member[(_e366 + 9u)]; - phi_870_ = type_26(vec3(bitcast(_e371), bitcast(_e376), bitcast(_e381)), vec4(bitcast(_e387), bitcast(_e392), bitcast(_e397), bitcast(_e402)), vec3(bitcast(_e408), bitcast(_e413), bitcast(_e418))); + phi_893_ = type_26(vec3(bitcast(_e371), bitcast(_e376), bitcast(_e381)), vec4(bitcast(_e387), bitcast(_e392), bitcast(_e397), bitcast(_e402)), vec3(bitcast(_e408), bitcast(_e413), bitcast(_e418))); } else { - phi_870_ = type_26(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); + phi_893_ = type_26(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); } - let _e423 = phi_870_; + let _e423 = phi_893_; let _e427 = global.member[(_e108 + 3u)]; let _e428 = bitcast(_e427); let _e432 = global.member[(_e108 + 4u)]; @@ -316,66 +316,66 @@ fn function() { let _e527 = local[0u][3u]; let _e529 = -(_e512); if ((fma(_e523, _e506, fma(_e515, _e504, (_e518 * _e505))) + _e527) < _e529) { - phi_2161_ = _e84; + phi_2218_ = _e84; } else { - phi_1013_ = type_17(0u, 6u); + phi_1036_ = type_17(0u, 6u); loop { - let _e532 = phi_1013_; + let _e532 = phi_1036_; if (_e532.member < _e532.member_1) { - phi_1014_ = type_17((_e532.member + 1u), _e532.member_1); - phi_1029_ = type_17(1u, _e532.member); + phi_1037_ = type_17((_e532.member + 1u), _e532.member_1); + phi_1060_ = type_17(1u, _e532.member); } else { - phi_1014_ = _e532; - phi_1029_ = type_17(0u, type_17().member_1); + phi_1037_ = _e532; + phi_1060_ = type_17(0u, type_17().member_1); } - let _e545 = phi_1014_; - let _e547 = phi_1029_; + let _e545 = phi_1037_; + let _e547 = phi_1060_; switch bitcast(_e547.member) { case 0: { - phi_1077_ = false; - phi_1078_ = true; + phi_1108_ = false; + phi_1109_ = true; break; } case 1: { if (_e547.member_1 != 0u) { if (_e547.member_1 < 6u) { } else { - phi_2127_ = true; - phi_1576_ = bool(); + phi_2182_ = true; + phi_1631_ = bool(); break; } let _e555 = local[_e547.member_1][0u]; let _e558 = local[_e547.member_1][1u]; let _e563 = local[_e547.member_1][2u]; let _e567 = local[_e547.member_1][3u]; - phi_1073_ = select(true, false, ((fma(_e563, _e506, fma(_e555, _e504, (_e558 * _e505))) + _e567) < _e529)); + phi_1104_ = select(true, false, ((fma(_e563, _e506, fma(_e555, _e504, (_e558 * _e505))) + _e567) < _e529)); } else { - phi_1073_ = true; + phi_1104_ = true; } - let _e572 = phi_1073_; - phi_1077_ = _e572; - phi_1078_ = false; + let _e572 = phi_1104_; + phi_1108_ = _e572; + phi_1109_ = false; break; } default: { - phi_1077_ = bool(); - phi_1078_ = bool(); + phi_1108_ = bool(); + phi_1109_ = bool(); break; } } - let _e574 = phi_1077_; - let _e576 = phi_1078_; + let _e574 = phi_1108_; + let _e576 = phi_1109_; continue; continuing { - phi_1013_ = _e545; - phi_2127_ = _e84; - phi_1576_ = _e576; + phi_1036_ = _e545; + phi_2182_ = _e84; + phi_1631_ = _e576; break if !(_e574); } } - let _e579 = phi_2127_; - let _e581 = phi_1576_; - phi_2158_ = _e579; + let _e579 = phi_2182_; + let _e581 = phi_1631_; + phi_2213_ = _e579; if _e579 { break; } @@ -383,52 +383,52 @@ fn function() { let _e582 = vec3(_e512); let _e583 = (_e507 - _e582); let _e584 = (_e507 + _e582); - phi_2147_ = _e579; - phi_1085_ = type_17(0u, 3u); + phi_2203_ = _e579; + phi_1116_ = type_17(0u, 3u); loop { - let _e586 = phi_2147_; - let _e588 = phi_1085_; + let _e586 = phi_2203_; + let _e588 = phi_1116_; if (_e588.member < _e588.member_1) { - phi_1086_ = type_17((_e588.member + 1u), _e588.member_1); - phi_1101_ = type_17(1u, _e588.member); + phi_1117_ = type_17((_e588.member + 1u), _e588.member_1); + phi_1140_ = type_17(1u, _e588.member); } else { - phi_1086_ = _e588; - phi_1101_ = type_17(0u, type_17().member_1); + phi_1117_ = _e588; + phi_1140_ = type_17(0u, type_17().member_1); } - let _e601 = phi_1086_; - let _e603 = phi_1101_; + let _e601 = phi_1117_; + let _e603 = phi_1140_; switch bitcast(_e603.member) { case 0: { - phi_2155_ = _e586; - phi_1246_ = false; + phi_2210_ = _e586; + phi_1301_ = false; break; } case 1: { - phi_1111_ = type_17(0u, 8u); - phi_1114_ = 0i; + phi_1150_ = type_17(0u, 8u); + phi_1153_ = 0i; loop { - let _e608 = phi_1111_; - let _e610 = phi_1114_; + let _e608 = phi_1150_; + let _e610 = phi_1153_; local_8 = _e610; if (_e608.member < _e608.member_1) { - phi_1112_ = type_17((_e608.member + 1u), _e608.member_1); - phi_1129_ = type_17(1u, _e608.member); + phi_1151_ = type_17((_e608.member + 1u), _e608.member_1); + phi_1176_ = type_17(1u, _e608.member); } else { - phi_1112_ = _e608; - phi_1129_ = type_17(0u, type_17().member_1); + phi_1151_ = _e608; + phi_1176_ = type_17(0u, type_17().member_1); } - let _e623 = phi_1112_; - let _e625 = phi_1129_; + let _e623 = phi_1151_; + let _e625 = phi_1176_; switch bitcast(_e625.member) { case 0: { - phi_1115_ = i32(); - phi_1171_ = false; + phi_1154_ = i32(); + phi_1218_ = false; break; } case 1: { if (_e625.member_1 < 8u) { } else { - phi_2142_ = true; + phi_2197_ = true; break; } let _e632 = local_1[_e625.member_1][0u]; @@ -438,78 +438,78 @@ fn function() { let _e640 = (_e603.member_1 < 3u); if _e640 { } else { - phi_2142_ = true; + phi_2197_ = true; break; } let _e642 = local_2[_e603.member_1]; local_3 = array(_e583.x, _e583.y, _e583.z); if _e640 { } else { - phi_2142_ = true; + phi_2197_ = true; break; } let _e648 = local_3[_e603.member_1]; if (_e642 < _e648) { - phi_1170_ = (_e610 + 1i); + phi_1217_ = (_e610 + 1i); } else { - phi_1170_ = _e610; + phi_1217_ = _e610; } - let _e652 = phi_1170_; - phi_1115_ = _e652; - phi_1171_ = true; + let _e652 = phi_1217_; + phi_1154_ = _e652; + phi_1218_ = true; break; } default: { - phi_1115_ = i32(); - phi_1171_ = bool(); + phi_1154_ = i32(); + phi_1218_ = bool(); break; } } - let _e654 = phi_1115_; - let _e656 = phi_1171_; + let _e654 = phi_1154_; + let _e656 = phi_1218_; continue; continuing { - phi_1111_ = _e623; - phi_1114_ = _e654; - phi_2142_ = _e586; + phi_1150_ = _e623; + phi_1153_ = _e654; + phi_2197_ = _e586; break if !(_e656); } } - let _e659 = phi_2142_; - phi_2154_ = _e659; + let _e659 = phi_2197_; + phi_2209_ = _e659; if _e659 { break; } let _e661 = local_8; if (_e661 == 8i) { - phi_2156_ = _e659; - phi_1244_ = false; + phi_2211_ = _e659; + phi_1299_ = false; } else { - phi_1178_ = type_17(0u, 8u); - phi_1181_ = 0i; + phi_1225_ = type_17(0u, 8u); + phi_1228_ = 0i; loop { - let _e664 = phi_1178_; - let _e666 = phi_1181_; + let _e664 = phi_1225_; + let _e666 = phi_1228_; local_9 = _e666; if (_e664.member < _e664.member_1) { - phi_1179_ = type_17((_e664.member + 1u), _e664.member_1); - phi_1196_ = type_17(1u, _e664.member); + phi_1226_ = type_17((_e664.member + 1u), _e664.member_1); + phi_1251_ = type_17(1u, _e664.member); } else { - phi_1179_ = _e664; - phi_1196_ = type_17(0u, type_17().member_1); + phi_1226_ = _e664; + phi_1251_ = type_17(0u, type_17().member_1); } - let _e679 = phi_1179_; - let _e681 = phi_1196_; + let _e679 = phi_1226_; + let _e681 = phi_1251_; switch bitcast(_e681.member) { case 0: { - phi_1182_ = i32(); - phi_1238_ = false; + phi_1229_ = i32(); + phi_1293_ = false; break; } case 1: { if (_e681.member_1 < 8u) { } else { - phi_2149_ = true; + phi_2204_ = true; break; } let _e688 = local_1[_e681.member_1][0u]; @@ -519,87 +519,87 @@ fn function() { let _e696 = (_e603.member_1 < 3u); if _e696 { } else { - phi_2149_ = true; + phi_2204_ = true; break; } let _e698 = local_4[_e603.member_1]; local_5 = array(_e584.x, _e584.y, _e584.z); if _e696 { } else { - phi_2149_ = true; + phi_2204_ = true; break; } let _e704 = local_5[_e603.member_1]; if (_e698 > _e704) { - phi_1237_ = (_e666 + 1i); + phi_1292_ = (_e666 + 1i); } else { - phi_1237_ = _e666; + phi_1292_ = _e666; } - let _e708 = phi_1237_; - phi_1182_ = _e708; - phi_1238_ = true; + let _e708 = phi_1292_; + phi_1229_ = _e708; + phi_1293_ = true; break; } default: { - phi_1182_ = i32(); - phi_1238_ = bool(); + phi_1229_ = i32(); + phi_1293_ = bool(); break; } } - let _e710 = phi_1182_; - let _e712 = phi_1238_; + let _e710 = phi_1229_; + let _e712 = phi_1293_; continue; continuing { - phi_1178_ = _e679; - phi_1181_ = _e710; - phi_2149_ = _e659; + phi_1225_ = _e679; + phi_1228_ = _e710; + phi_2204_ = _e659; break if !(_e712); } } - let _e715 = phi_2149_; - phi_2154_ = _e715; + let _e715 = phi_2204_; + phi_2209_ = _e715; if _e715 { break; } let _e717 = local_9; - phi_2156_ = _e715; - phi_1244_ = select(true, false, (_e717 == 8i)); + phi_2211_ = _e715; + phi_1299_ = select(true, false, (_e717 == 8i)); } - let _e721 = phi_2156_; - let _e723 = phi_1244_; - phi_2155_ = _e721; - phi_1246_ = _e723; + let _e721 = phi_2211_; + let _e723 = phi_1299_; + phi_2210_ = _e721; + phi_1301_ = _e723; break; } default: { - phi_2155_ = _e586; - phi_1246_ = bool(); + phi_2210_ = _e586; + phi_1301_ = bool(); break; } } - let _e725 = phi_2155_; - let _e727 = phi_1246_; + let _e725 = phi_2210_; + let _e727 = phi_1301_; continue; continuing { - phi_2147_ = _e725; - phi_1085_ = _e601; - phi_2154_ = _e725; + phi_2203_ = _e725; + phi_1116_ = _e601; + phi_2209_ = _e725; break if !(_e727); } } - let _e730 = phi_2154_; - phi_2158_ = _e730; + let _e730 = phi_2209_; + phi_2213_ = _e730; if _e730 { break; } - phi_2162_ = _e730; + phi_2219_ = _e730; } else { - phi_2162_ = _e579; + phi_2219_ = _e579; } - let _e732 = phi_2162_; - phi_2161_ = _e732; + let _e732 = phi_2219_; + phi_2218_ = _e732; } - let _e734 = phi_2161_; + let _e734 = phi_2218_; let _e735 = f32(_e78); let _e752 = fma(_e186, _e211, fma(_e166, _e206, fma(_e126, _e196, (_e146 * _e201)))); let _e753 = fma(_e191, _e211, fma(_e171, _e206, fma(_e131, _e196, (_e151 * _e201)))); @@ -640,27 +640,27 @@ fn function() { } } } - phi_2159_ = _e734; - phi_1491_ = true; + phi_2214_ = _e734; + phi_1546_ = true; break; } default: { - phi_2159_ = _e84; - phi_1491_ = bool(); + phi_2214_ = _e84; + phi_1546_ = bool(); break; } } - let _e909 = phi_2159_; - let _e911 = phi_1491_; + let _e909 = phi_2214_; + let _e911 = phi_1546_; continue; continuing { - phi_2139_ = _e909; - phi_540_ = _e99; - phi_2158_ = _e909; + phi_2195_ = _e909; + phi_539_ = _e99; + phi_2213_ = _e909; break if !(_e911); } } - let _e914 = phi_2158_; + let _e914 = phi_2213_; if _e914 { break; } diff --git a/crates/renderling/shaders/skybox-skybox_cubemap_vertex.spv b/crates/renderling/shaders/skybox-skybox_cubemap_vertex.spv index ef4a3cdf11e6a3ce643be575d11d62331a635947..a8844f9bdb2f9e574e24b856ea2dac95b0d0ede2 100644 GIT binary patch literal 11228 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 literal 11228 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 diff --git a/crates/renderling/shaders/skybox-skybox_cubemap_vertex.wgsl b/crates/renderling/shaders/skybox-skybox_cubemap_vertex.wgsl index 277f1a99..275cf699 100644 --- a/crates/renderling/shaders/skybox-skybox_cubemap_vertex.wgsl +++ b/crates/renderling/shaders/skybox-skybox_cubemap_vertex.wgsl @@ -42,16 +42,16 @@ fn function() { var local: array, 8>; var local_1: array, 6>; var local_2: array, 36>; - var phi_689_: bool; + var phi_705_: bool; var phi_517_: type_23; var phi_518_: type_23; - var phi_533_: type_23; - var phi_560_: bool; - var phi_566_: type_23; - var phi_567_: type_23; - var phi_582_: type_23; - var phi_605_: bool; - var phi_613_: type_21; + var phi_541_: type_23; + var phi_568_: bool; + var phi_574_: type_23; + var phi_575_: type_23; + var phi_598_: type_23; + var phi_621_: bool; + var phi_629_: type_21; switch bitcast(0u) { default: { @@ -59,11 +59,11 @@ fn function() { let _e79 = global; let _e81 = arrayLength((&global_1.member)); if (_e81 >= 83u) { - phi_689_ = (_e78 <= (_e81 - 83u)); + phi_705_ = (_e78 <= (_e81 - 83u)); } else { - phi_689_ = false; + phi_705_ = false; } - let _e86 = phi_689_; + let _e86 = phi_705_; if _e86 { let _e89 = global_1.member[_e78]; let _e94 = global_1.member[(_e78 + 1u)]; @@ -106,16 +106,16 @@ fn function() { let _e274 = phi_517_; if (_e274.member < _e274.member_1) { phi_518_ = type_23((_e274.member + 1u), _e274.member_1); - phi_533_ = type_23(1u, _e274.member); + phi_541_ = type_23(1u, _e274.member); } else { phi_518_ = _e274; - phi_533_ = type_23(0u, type_23().member_1); + phi_541_ = type_23(0u, type_23().member_1); } let _e287 = phi_518_; - let _e289 = phi_533_; + let _e289 = phi_541_; switch bitcast(_e289.member) { case 0: { - phi_560_ = false; + phi_568_ = false; break; } case 1: { @@ -125,15 +125,15 @@ fn function() { let _e307 = global_1.member[(_e294 + 2u)]; let _e312 = global_1.member[(_e294 + 3u)]; local_1[_e289.member_1] = vec4(bitcast(_e297), bitcast(_e302), bitcast(_e307), bitcast(_e312)); - phi_560_ = true; + phi_568_ = true; break; } default: { - phi_560_ = bool(); + phi_568_ = bool(); break; } } - let _e317 = phi_560_; + let _e317 = phi_568_; continue; continuing { phi_517_ = _e287; @@ -142,21 +142,21 @@ fn function() { } let _e319 = local_1; local = array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)); - phi_566_ = type_23(0u, 8u); + phi_574_ = type_23(0u, 8u); loop { - let _e322 = phi_566_; + let _e322 = phi_574_; if (_e322.member < _e322.member_1) { - phi_567_ = type_23((_e322.member + 1u), _e322.member_1); - phi_582_ = type_23(1u, _e322.member); + phi_575_ = type_23((_e322.member + 1u), _e322.member_1); + phi_598_ = type_23(1u, _e322.member); } else { - phi_567_ = _e322; - phi_582_ = type_23(0u, type_23().member_1); + phi_575_ = _e322; + phi_598_ = type_23(0u, type_23().member_1); } - let _e335 = phi_567_; - let _e337 = phi_582_; + let _e335 = phi_575_; + let _e337 = phi_598_; switch bitcast(_e337.member) { case 0: { - phi_605_ = false; + phi_621_ = false; break; } case 1: { @@ -165,27 +165,27 @@ fn function() { let _e350 = global_1.member[(_e342 + 1u)]; let _e355 = global_1.member[(_e342 + 2u)]; local[_e337.member_1] = vec3(bitcast(_e345), bitcast(_e350), bitcast(_e355)); - phi_605_ = true; + phi_621_ = true; break; } default: { - phi_605_ = bool(); + phi_621_ = bool(); break; } } - let _e360 = phi_605_; + let _e360 = phi_621_; continue; continuing { - phi_566_ = _e335; + phi_574_ = _e335; break if !(_e360); } } let _e362 = local; - phi_613_ = type_21(type_19(vec4(bitcast(_e89), bitcast(_e94), bitcast(_e99), bitcast(_e104)), vec4(bitcast(_e110), bitcast(_e115), bitcast(_e120), bitcast(_e125)), vec4(bitcast(_e131), bitcast(_e136), bitcast(_e141), bitcast(_e146)), vec4(bitcast(_e152), bitcast(_e157), bitcast(_e162), bitcast(_e167))), type_19(vec4(bitcast(_e174), bitcast(_e179), bitcast(_e184), bitcast(_e189)), vec4(bitcast(_e195), bitcast(_e200), bitcast(_e205), bitcast(_e210)), vec4(bitcast(_e216), bitcast(_e221), bitcast(_e226), bitcast(_e231)), vec4(bitcast(_e237), bitcast(_e242), bitcast(_e247), bitcast(_e252))), type_20(_e362, _e319), vec3(bitcast(_e259), bitcast(_e264), bitcast(_e269))); + phi_629_ = type_21(type_19(vec4(bitcast(_e89), bitcast(_e94), bitcast(_e99), bitcast(_e104)), vec4(bitcast(_e110), bitcast(_e115), bitcast(_e120), bitcast(_e125)), vec4(bitcast(_e131), bitcast(_e136), bitcast(_e141), bitcast(_e146)), vec4(bitcast(_e152), bitcast(_e157), bitcast(_e162), bitcast(_e167))), type_19(vec4(bitcast(_e174), bitcast(_e179), bitcast(_e184), bitcast(_e189)), vec4(bitcast(_e195), bitcast(_e200), bitcast(_e205), bitcast(_e210)), vec4(bitcast(_e216), bitcast(_e221), bitcast(_e226), bitcast(_e231)), vec4(bitcast(_e237), bitcast(_e242), bitcast(_e247), bitcast(_e252))), type_20(_e362, _e319), vec3(bitcast(_e259), bitcast(_e264), bitcast(_e269))); } else { - phi_613_ = type_21(type_19(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_19(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_20(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); + phi_629_ = type_21(type_19(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_19(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_20(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); } - let _e366 = phi_613_; + let _e366 = phi_629_; local_2 = array, 36>(vec3(-0.5f, 0.5f, 0.5f), vec3(0.5f, 0.5f, -0.5f), vec3(-0.5f, 0.5f, -0.5f), vec3(-0.5f, 0.5f, 0.5f), vec3(0.5f, 0.5f, 0.5f), vec3(0.5f, 0.5f, -0.5f), vec3(-0.5f, 0.5f, 0.5f), vec3(-0.5f, -0.5f, 0.5f), vec3(0.5f, 0.5f, 0.5f), vec3(-0.5f, -0.5f, 0.5f), vec3(0.5f, -0.5f, 0.5f), vec3(0.5f, 0.5f, 0.5f), vec3(0.5f, 0.5f, 0.5f), vec3(0.5f, -0.5f, -0.5f), vec3(0.5f, 0.5f, -0.5f), vec3(0.5f, 0.5f, 0.5f), vec3(0.5f, -0.5f, 0.5f), vec3(0.5f, -0.5f, -0.5f), vec3(-0.5f, 0.5f, -0.5f), vec3(-0.5f, -0.5f, -0.5f), vec3(-0.5f, 0.5f, 0.5f), vec3(-0.5f, -0.5f, -0.5f), vec3(-0.5f, -0.5f, 0.5f), vec3(-0.5f, 0.5f, 0.5f), vec3(-0.5f, -0.5f, 0.5f), vec3(0.5f, -0.5f, -0.5f), vec3(0.5f, -0.5f, 0.5f), vec3(-0.5f, -0.5f, 0.5f), vec3(-0.5f, -0.5f, -0.5f), vec3(0.5f, -0.5f, -0.5f), vec3(0.5f, 0.5f, -0.5f), vec3(-0.5f, -0.5f, -0.5f), vec3(-0.5f, 0.5f, -0.5f), vec3(0.5f, 0.5f, -0.5f), vec3(0.5f, -0.5f, -0.5f), vec3(-0.5f, -0.5f, -0.5f)); if (_e79 < 36u) { } else { diff --git a/crates/renderling/shaders/skybox-skybox_vertex.spv b/crates/renderling/shaders/skybox-skybox_vertex.spv index 55c9e1976087037edc75babd040197b7db96fa69..f66577b460edc36afe0138d00a2fc8aa9a622370 100644 GIT binary patch literal 9776 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

mgL>kxR)2@BC4Prb(V4XW E0)a(q+5i9m literal 9776 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 diff --git a/crates/renderling/shaders/skybox-skybox_vertex.wgsl b/crates/renderling/shaders/skybox-skybox_vertex.wgsl index 6adee79a..13034d28 100644 --- a/crates/renderling/shaders/skybox-skybox_vertex.wgsl +++ b/crates/renderling/shaders/skybox-skybox_vertex.wgsl @@ -42,16 +42,16 @@ fn function() { var local: array, 8>; var local_1: array, 6>; var local_2: array, 36>; - var phi_714_: bool; + var phi_730_: bool; var phi_301_: type_23; var phi_302_: type_23; - var phi_317_: type_23; - var phi_344_: bool; - var phi_350_: type_23; - var phi_351_: type_23; - var phi_366_: type_23; - var phi_389_: bool; - var phi_397_: type_21; + var phi_325_: type_23; + var phi_352_: bool; + var phi_358_: type_23; + var phi_359_: type_23; + var phi_382_: type_23; + var phi_405_: bool; + var phi_413_: type_21; switch bitcast(0u) { default: { @@ -59,11 +59,11 @@ fn function() { let _e79 = global; let _e81 = arrayLength((&global_1.member)); if (_e81 >= 83u) { - phi_714_ = (_e78 <= (_e81 - 83u)); + phi_730_ = (_e78 <= (_e81 - 83u)); } else { - phi_714_ = false; + phi_730_ = false; } - let _e86 = phi_714_; + let _e86 = phi_730_; if _e86 { let _e89 = global_1.member[_e78]; let _e94 = global_1.member[(_e78 + 1u)]; @@ -106,16 +106,16 @@ fn function() { let _e274 = phi_301_; if (_e274.member < _e274.member_1) { phi_302_ = type_23((_e274.member + 1u), _e274.member_1); - phi_317_ = type_23(1u, _e274.member); + phi_325_ = type_23(1u, _e274.member); } else { phi_302_ = _e274; - phi_317_ = type_23(0u, type_23().member_1); + phi_325_ = type_23(0u, type_23().member_1); } let _e287 = phi_302_; - let _e289 = phi_317_; + let _e289 = phi_325_; switch bitcast(_e289.member) { case 0: { - phi_344_ = false; + phi_352_ = false; break; } case 1: { @@ -125,15 +125,15 @@ fn function() { let _e307 = global_1.member[(_e294 + 2u)]; let _e312 = global_1.member[(_e294 + 3u)]; local_1[_e289.member_1] = vec4(bitcast(_e297), bitcast(_e302), bitcast(_e307), bitcast(_e312)); - phi_344_ = true; + phi_352_ = true; break; } default: { - phi_344_ = bool(); + phi_352_ = bool(); break; } } - let _e317 = phi_344_; + let _e317 = phi_352_; continue; continuing { phi_301_ = _e287; @@ -142,21 +142,21 @@ fn function() { } let _e319 = local_1; local = array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)); - phi_350_ = type_23(0u, 8u); + phi_358_ = type_23(0u, 8u); loop { - let _e322 = phi_350_; + let _e322 = phi_358_; if (_e322.member < _e322.member_1) { - phi_351_ = type_23((_e322.member + 1u), _e322.member_1); - phi_366_ = type_23(1u, _e322.member); + phi_359_ = type_23((_e322.member + 1u), _e322.member_1); + phi_382_ = type_23(1u, _e322.member); } else { - phi_351_ = _e322; - phi_366_ = type_23(0u, type_23().member_1); + phi_359_ = _e322; + phi_382_ = type_23(0u, type_23().member_1); } - let _e335 = phi_351_; - let _e337 = phi_366_; + let _e335 = phi_359_; + let _e337 = phi_382_; switch bitcast(_e337.member) { case 0: { - phi_389_ = false; + phi_405_ = false; break; } case 1: { @@ -165,27 +165,27 @@ fn function() { let _e350 = global_1.member[(_e342 + 1u)]; let _e355 = global_1.member[(_e342 + 2u)]; local[_e337.member_1] = vec3(bitcast(_e345), bitcast(_e350), bitcast(_e355)); - phi_389_ = true; + phi_405_ = true; break; } default: { - phi_389_ = bool(); + phi_405_ = bool(); break; } } - let _e360 = phi_389_; + let _e360 = phi_405_; continue; continuing { - phi_350_ = _e335; + phi_358_ = _e335; break if !(_e360); } } let _e362 = local; - phi_397_ = type_21(type_19(vec4(bitcast(_e89), bitcast(_e94), bitcast(_e99), bitcast(_e104)), vec4(bitcast(_e110), bitcast(_e115), bitcast(_e120), bitcast(_e125)), vec4(bitcast(_e131), bitcast(_e136), bitcast(_e141), bitcast(_e146)), vec4(bitcast(_e152), bitcast(_e157), bitcast(_e162), bitcast(_e167))), type_19(vec4(bitcast(_e174), bitcast(_e179), bitcast(_e184), bitcast(_e189)), vec4(bitcast(_e195), bitcast(_e200), bitcast(_e205), bitcast(_e210)), vec4(bitcast(_e216), bitcast(_e221), bitcast(_e226), bitcast(_e231)), vec4(bitcast(_e237), bitcast(_e242), bitcast(_e247), bitcast(_e252))), type_20(_e362, _e319), vec3(bitcast(_e259), bitcast(_e264), bitcast(_e269))); + phi_413_ = type_21(type_19(vec4(bitcast(_e89), bitcast(_e94), bitcast(_e99), bitcast(_e104)), vec4(bitcast(_e110), bitcast(_e115), bitcast(_e120), bitcast(_e125)), vec4(bitcast(_e131), bitcast(_e136), bitcast(_e141), bitcast(_e146)), vec4(bitcast(_e152), bitcast(_e157), bitcast(_e162), bitcast(_e167))), type_19(vec4(bitcast(_e174), bitcast(_e179), bitcast(_e184), bitcast(_e189)), vec4(bitcast(_e195), bitcast(_e200), bitcast(_e205), bitcast(_e210)), vec4(bitcast(_e216), bitcast(_e221), bitcast(_e226), bitcast(_e231)), vec4(bitcast(_e237), bitcast(_e242), bitcast(_e247), bitcast(_e252))), type_20(_e362, _e319), vec3(bitcast(_e259), bitcast(_e264), bitcast(_e269))); } else { - phi_397_ = type_21(type_19(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_19(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_20(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); + phi_413_ = type_21(type_19(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_19(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_20(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); } - let _e366 = phi_397_; + let _e366 = phi_413_; local_2 = array, 36>(vec3(-0.5f, 0.5f, 0.5f), vec3(0.5f, 0.5f, -0.5f), vec3(-0.5f, 0.5f, -0.5f), vec3(-0.5f, 0.5f, 0.5f), vec3(0.5f, 0.5f, 0.5f), vec3(0.5f, 0.5f, -0.5f), vec3(-0.5f, 0.5f, 0.5f), vec3(-0.5f, -0.5f, 0.5f), vec3(0.5f, 0.5f, 0.5f), vec3(-0.5f, -0.5f, 0.5f), vec3(0.5f, -0.5f, 0.5f), vec3(0.5f, 0.5f, 0.5f), vec3(0.5f, 0.5f, 0.5f), vec3(0.5f, -0.5f, -0.5f), vec3(0.5f, 0.5f, -0.5f), vec3(0.5f, 0.5f, 0.5f), vec3(0.5f, -0.5f, 0.5f), vec3(0.5f, -0.5f, -0.5f), vec3(-0.5f, 0.5f, -0.5f), vec3(-0.5f, -0.5f, -0.5f), vec3(-0.5f, 0.5f, 0.5f), vec3(-0.5f, -0.5f, -0.5f), vec3(-0.5f, -0.5f, 0.5f), vec3(-0.5f, 0.5f, 0.5f), vec3(-0.5f, -0.5f, 0.5f), vec3(0.5f, -0.5f, -0.5f), vec3(0.5f, -0.5f, 0.5f), vec3(-0.5f, -0.5f, 0.5f), vec3(-0.5f, -0.5f, -0.5f), vec3(0.5f, -0.5f, -0.5f), vec3(0.5f, 0.5f, -0.5f), vec3(-0.5f, -0.5f, -0.5f), vec3(-0.5f, 0.5f, -0.5f), vec3(0.5f, 0.5f, -0.5f), vec3(0.5f, -0.5f, -0.5f), vec3(-0.5f, -0.5f, -0.5f)); if (_e79 < 36u) { } else { diff --git a/crates/renderling/shaders/stage-renderlet_fragment.spv b/crates/renderling/shaders/stage-renderlet_fragment.spv index 2e3dd7e38650819ca22e85ff4eade0321ee9f9d3..e0c5c13eafc8c1a667d9ad0ddfa15d15a79a4810 100644 GIT binary patch literal 70028 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 A3;+NC literal 70028 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 diff --git a/crates/renderling/shaders/stage-renderlet_fragment.wgsl b/crates/renderling/shaders/stage-renderlet_fragment.wgsl index cd912e7b..99194c34 100644 --- a/crates/renderling/shaders/stage-renderlet_fragment.wgsl +++ b/crates/renderling/shaders/stage-renderlet_fragment.wgsl @@ -113,174 +113,174 @@ fn function() { var local: array, 8>; var local_1: array, 6>; var phi_610_: u32; - var phi_3823_: bool; + var phi_3863_: bool; var phi_764_: type_31; var phi_768_: type_31; - var phi_3856_: bool; + var phi_3900_: bool; var phi_808_: u32; var phi_817_: u32; var phi_830_: type_32; - var phi_3912_: f32; - var phi_3894_: bool; + var phi_3922_: f32; + var phi_3935_: bool; var phi_884_: f32; var phi_879_: f32; var phi_885_: f32; - var phi_3877_: bool; + var phi_3952_: bool; var phi_850_: f32; var phi_887_: f32; - var phi_3960_: f32; - var phi_3942_: bool; + var phi_3970_: f32; + var phi_3983_: bool; var phi_942_: f32; var phi_937_: f32; var phi_943_: f32; - var phi_3925_: bool; + var phi_4000_: bool; var phi_908_: f32; var phi_945_: f32; - var phi_3992_: bool; + var phi_4036_: bool; var phi_1028_: u32; var phi_1037_: u32; var phi_1050_: type_32; - var phi_4047_: f32; - var phi_4029_: bool; + var phi_4057_: f32; + var phi_4070_: bool; var phi_1104_: f32; var phi_1099_: f32; var phi_1105_: f32; - var phi_4012_: bool; + var phi_4087_: bool; var phi_1070_: f32; var phi_1107_: f32; - var phi_4095_: f32; - var phi_4077_: bool; + var phi_4105_: f32; + var phi_4118_: bool; var phi_1162_: f32; var phi_1157_: f32; var phi_1163_: f32; - var phi_4060_: bool; + var phi_4135_: bool; var phi_1128_: f32; var phi_1165_: f32; - var phi_4127_: bool; + var phi_4171_: bool; var phi_1248_: u32; var phi_1257_: u32; var phi_1270_: type_32; - var phi_4182_: f32; - var phi_4164_: bool; + var phi_4192_: f32; + var phi_4205_: bool; var phi_1324_: f32; var phi_1319_: f32; var phi_1325_: f32; - var phi_4147_: bool; + var phi_4222_: bool; var phi_1290_: f32; var phi_1327_: f32; - var phi_4230_: f32; - var phi_4212_: bool; + var phi_4240_: f32; + var phi_4253_: bool; var phi_1382_: f32; var phi_1377_: f32; var phi_1383_: f32; - var phi_4195_: bool; + var phi_4270_: bool; var phi_1348_: f32; var phi_1385_: f32; - var phi_4262_: bool; + var phi_4306_: bool; var phi_1468_: u32; var phi_1477_: u32; var phi_1490_: type_32; - var phi_4317_: f32; - var phi_4299_: bool; + var phi_4327_: f32; + var phi_4340_: bool; var phi_1544_: f32; var phi_1539_: f32; var phi_1545_: f32; - var phi_4282_: bool; + var phi_4357_: bool; var phi_1510_: f32; var phi_1547_: f32; - var phi_4365_: f32; - var phi_4347_: bool; + var phi_4375_: f32; + var phi_4388_: bool; var phi_1602_: f32; var phi_1597_: f32; var phi_1603_: f32; - var phi_4330_: bool; + var phi_4405_: bool; var phi_1568_: f32; var phi_1605_: f32; - var phi_4397_: bool; + var phi_4441_: bool; var phi_1688_: u32; var phi_1697_: u32; var phi_1710_: type_32; - var phi_4452_: f32; - var phi_4434_: bool; + var phi_4462_: f32; + var phi_4475_: bool; var phi_1764_: f32; var phi_1759_: f32; var phi_1765_: f32; - var phi_4417_: bool; + var phi_4492_: bool; var phi_1730_: f32; var phi_1767_: f32; - var phi_4500_: f32; - var phi_4482_: bool; + var phi_4510_: f32; + var phi_4523_: bool; var phi_1822_: f32; var phi_1817_: f32; var phi_1823_: f32; - var phi_4465_: bool; + var phi_4540_: bool; var phi_1788_: f32; var phi_1825_: f32; - var phi_4554_: vec3; - var phi_4589_: vec3; - var phi_4624_: vec3; - var phi_4659_: vec3; - var phi_4694_: vec3; + var phi_4598_: vec3; + var phi_4633_: vec3; + var phi_4668_: vec3; + var phi_4703_: vec3; + var phi_4738_: vec3; var phi_1919_: vec3; var phi_1920_: vec3; - var phi_4726_: bool; + var phi_4770_: bool; var phi_2127_: type_24; var phi_2128_: type_24; - var phi_2143_: type_24; - var phi_2170_: bool; - var phi_2176_: type_24; - var phi_2177_: type_24; - var phi_2192_: type_24; - var phi_2215_: bool; - var phi_2223_: type_22; - var phi_4798_: vec3; - var phi_4857_: vec3; - var phi_4931_: vec3; - var phi_6075_: vec3; - var phi_6026_: vec3; - var phi_5977_: vec3; - var phi_5928_: vec3; - var phi_5879_: vec3; - var phi_5830_: vec3; - var phi_5781_: vec3; - var phi_4981_: vec3; - var phi_5016_: vec3; - var phi_2263_: type_24; - var phi_2266_: vec3; - var phi_2264_: type_24; - var phi_2281_: type_24; - var phi_5033_: u32; - var phi_5052_: bool; - var phi_2298_: u32; - var phi_5084_: bool; - var phi_2315_: u32; - var phi_2325_: type_33; - var phi_5114_: bool; - var phi_2375_: type_29; - var phi_5542_: bool; - var phi_2875_: type_35; - var phi_5592_: vec3; - var phi_5627_: vec3; - var phi_5662_: vec3; - var phi_3122_: vec3; - var phi_5369_: bool; - var phi_2626_: type_34; - var phi_5415_: vec3; - var phi_5450_: vec3; - var phi_2812_: vec3; - var phi_5194_: bool; - var phi_2423_: type_34; - var phi_5242_: vec3; - var phi_5277_: vec3; - var phi_3124_: vec3; - var phi_3125_: bool; - var phi_3134_: vec3; - var phi_2267_: vec3; - var phi_3136_: bool; + var phi_2151_: type_24; + var phi_2178_: bool; + var phi_2184_: type_24; + var phi_2185_: type_24; + var phi_2208_: type_24; + var phi_2231_: bool; + var phi_2239_: type_22; + var phi_4842_: vec3; + var phi_4901_: vec3; + var phi_4975_: vec3; + var phi_5035_: vec3; + var phi_5084_: vec3; + var phi_5133_: vec3; + var phi_5182_: vec3; + var phi_5231_: vec3; + var phi_5280_: vec3; + var phi_5329_: vec3; + var phi_5368_: vec3; + var phi_5403_: vec3; + var phi_2279_: type_24; + var phi_2282_: vec3; + var phi_2280_: type_24; + var phi_2305_: type_24; + var phi_5420_: u32; + var phi_5439_: bool; + var phi_2322_: u32; + var phi_5471_: bool; + var phi_2339_: u32; + var phi_2349_: type_33; + var phi_5501_: bool; + var phi_2399_: type_29; + var phi_5581_: bool; + var phi_2907_: type_35; + var phi_5631_: vec3; + var phi_5666_: vec3; + var phi_5701_: vec3; + var phi_3162_: vec3; + var phi_5793_: bool; + var phi_2654_: type_34; + var phi_5840_: vec3; + var phi_5875_: vec3; + var phi_2844_: vec3; + var phi_5967_: bool; + var phi_2447_: type_34; + var phi_6014_: vec3; + var phi_6049_: vec3; + var phi_3164_: vec3; + var phi_3165_: bool; + var phi_3174_: vec3; + var phi_2283_: vec3; + var phi_3176_: bool; var local_2: vec3; var local_3: vec3; var local_4: vec3; - var phi_3249_: vec4; + var phi_3293_: vec4; let _e110 = arrayLength((&global.member)); let _e111 = global_1; @@ -391,11 +391,11 @@ fn function() { phi_768_ = type_31(vec3(0f, 0f, 0f), 1f, vec4(1f, 1f, 1f, 1f), 1f, 1f, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 4294967295u, 0u, 0u, 0u, 0u, 0u, false, 0f); } else { if (_e110 >= 22u) { - phi_3823_ = (_e126 <= (_e110 - 22u)); + phi_3863_ = (_e126 <= (_e110 - 22u)); } else { - phi_3823_ = false; + phi_3863_ = false; } - let _e163 = phi_3823_; + let _e163 = phi_3863_; if _e163 { let _e166 = global.member[_e126]; let _e171 = global.member[(_e126 + 1u)]; @@ -430,11 +430,11 @@ fn function() { let _e293 = select(_e114, _e113, vec2((_e289.member_10 == 0u))); let _e295 = (_e110 >= 8u); if _e295 { - phi_3856_ = (_e289.member_5 <= (_e110 - 8u)); + phi_3900_ = (_e289.member_5 <= (_e110 - 8u)); } else { - phi_3856_ = false; + phi_3900_ = false; } - let _e299 = phi_3856_; + let _e299 = phi_3900_; if _e299 { let _e302 = global.member[_e289.member_5]; let _e306 = global.member[(_e289.member_5 + 1u)]; @@ -492,11 +492,11 @@ fn function() { let _e380 = abs(_e293.x); let _e382 = (_e380 % 1f); if (_e380 >= 1f) { - phi_3877_ = select(true, false, (_e382 == 0f)); + phi_3952_ = select(true, false, (_e382 == 0f)); } else { - phi_3877_ = true; + phi_3952_ = true; } - let _e386 = phi_3877_; + let _e386 = phi_3952_; let _e387 = select(1f, _e382, _e386); if (select(-1f, 1f, (_e293.x >= 0f)) > 0f) { phi_850_ = _e387; @@ -512,11 +512,11 @@ fn function() { let _e361 = ((select(select(u32(_e354), 0u, (_e354 < 0f)), 4294967295u, (_e354 > 4294967000f)) % 2u) == 0u); let _e363 = (_e354 % 1f); if (_e354 >= 1f) { - phi_3894_ = select(true, false, (_e363 == 0f)); + phi_3935_ = select(true, false, (_e363 == 0f)); } else { - phi_3894_ = true; + phi_3935_ = true; } - let _e367 = phi_3894_; + let _e367 = phi_3935_; let _e368 = select(1f, _e363, _e367); if (select(-1f, 1f, (_e293.x >= 0f)) > 0f) { if _e361 { @@ -541,11 +541,11 @@ fn function() { } case 0: { if (_e293.x > 1f) { - phi_3912_ = 0.9999999f; + phi_3922_ = 0.9999999f; } else { - phi_3912_ = select(_e293.x, 0.00000011920929f, (_e293.x < 0f)); + phi_3922_ = select(_e293.x, 0.00000011920929f, (_e293.x < 0f)); } - let _e351 = phi_3912_; + let _e351 = phi_3922_; phi_887_ = _e351; break; } @@ -560,11 +560,11 @@ fn function() { let _e431 = abs(_e293.y); let _e433 = (_e431 % 1f); if (_e431 >= 1f) { - phi_3925_ = select(true, false, (_e433 == 0f)); + phi_4000_ = select(true, false, (_e433 == 0f)); } else { - phi_3925_ = true; + phi_4000_ = true; } - let _e437 = phi_3925_; + let _e437 = phi_4000_; let _e438 = select(1f, _e433, _e437); if (select(-1f, 1f, (_e293.y >= 0f)) > 0f) { phi_908_ = _e438; @@ -580,11 +580,11 @@ fn function() { let _e412 = ((select(select(u32(_e405), 0u, (_e405 < 0f)), 4294967295u, (_e405 > 4294967000f)) % 2u) == 0u); let _e414 = (_e405 % 1f); if (_e405 >= 1f) { - phi_3942_ = select(true, false, (_e414 == 0f)); + phi_3983_ = select(true, false, (_e414 == 0f)); } else { - phi_3942_ = true; + phi_3983_ = true; } - let _e418 = phi_3942_; + let _e418 = phi_3983_; let _e419 = select(1f, _e414, _e418); if (select(-1f, 1f, (_e293.y >= 0f)) > 0f) { if _e412 { @@ -609,11 +609,11 @@ fn function() { } case 0: { if (_e293.y > 1f) { - phi_3960_ = 0.9999999f; + phi_3970_ = 0.9999999f; } else { - phi_3960_ = select(_e293.y, 0.00000011920929f, (_e293.y < 0f)); + phi_3970_ = select(_e293.y, 0.00000011920929f, (_e293.y < 0f)); } - let _e402 = phi_3960_; + let _e402 = phi_3970_; phi_945_ = _e402; break; } @@ -632,11 +632,11 @@ fn function() { let _e486 = select(_e483, vec4(1f, 1f, 1f, 1f), vec4((_e289.member_5 == 4294967295u))); let _e490 = select(_e114, _e113, vec2((_e289.member_11 == 0u))); if _e295 { - phi_3992_ = (_e289.member_6 <= (_e110 - 8u)); + phi_4036_ = (_e289.member_6 <= (_e110 - 8u)); } else { - phi_3992_ = false; + phi_4036_ = false; } - let _e495 = phi_3992_; + let _e495 = phi_4036_; if _e495 { let _e498 = global.member[_e289.member_6]; let _e502 = global.member[(_e289.member_6 + 1u)]; @@ -694,11 +694,11 @@ fn function() { let _e576 = abs(_e490.x); let _e578 = (_e576 % 1f); if (_e576 >= 1f) { - phi_4012_ = select(true, false, (_e578 == 0f)); + phi_4087_ = select(true, false, (_e578 == 0f)); } else { - phi_4012_ = true; + phi_4087_ = true; } - let _e582 = phi_4012_; + let _e582 = phi_4087_; let _e583 = select(1f, _e578, _e582); if (select(-1f, 1f, (_e490.x >= 0f)) > 0f) { phi_1070_ = _e583; @@ -714,11 +714,11 @@ fn function() { let _e557 = ((select(select(u32(_e550), 0u, (_e550 < 0f)), 4294967295u, (_e550 > 4294967000f)) % 2u) == 0u); let _e559 = (_e550 % 1f); if (_e550 >= 1f) { - phi_4029_ = select(true, false, (_e559 == 0f)); + phi_4070_ = select(true, false, (_e559 == 0f)); } else { - phi_4029_ = true; + phi_4070_ = true; } - let _e563 = phi_4029_; + let _e563 = phi_4070_; let _e564 = select(1f, _e559, _e563); if (select(-1f, 1f, (_e490.x >= 0f)) > 0f) { if _e557 { @@ -743,11 +743,11 @@ fn function() { } case 0: { if (_e490.x > 1f) { - phi_4047_ = 0.9999999f; + phi_4057_ = 0.9999999f; } else { - phi_4047_ = select(_e490.x, 0.00000011920929f, (_e490.x < 0f)); + phi_4057_ = select(_e490.x, 0.00000011920929f, (_e490.x < 0f)); } - let _e547 = phi_4047_; + let _e547 = phi_4057_; phi_1107_ = _e547; break; } @@ -762,11 +762,11 @@ fn function() { let _e627 = abs(_e490.y); let _e629 = (_e627 % 1f); if (_e627 >= 1f) { - phi_4060_ = select(true, false, (_e629 == 0f)); + phi_4135_ = select(true, false, (_e629 == 0f)); } else { - phi_4060_ = true; + phi_4135_ = true; } - let _e633 = phi_4060_; + let _e633 = phi_4135_; let _e634 = select(1f, _e629, _e633); if (select(-1f, 1f, (_e490.y >= 0f)) > 0f) { phi_1128_ = _e634; @@ -782,11 +782,11 @@ fn function() { let _e608 = ((select(select(u32(_e601), 0u, (_e601 < 0f)), 4294967295u, (_e601 > 4294967000f)) % 2u) == 0u); let _e610 = (_e601 % 1f); if (_e601 >= 1f) { - phi_4077_ = select(true, false, (_e610 == 0f)); + phi_4118_ = select(true, false, (_e610 == 0f)); } else { - phi_4077_ = true; + phi_4118_ = true; } - let _e614 = phi_4077_; + let _e614 = phi_4118_; let _e615 = select(1f, _e610, _e614); if (select(-1f, 1f, (_e490.y >= 0f)) > 0f) { if _e608 { @@ -811,11 +811,11 @@ fn function() { } case 0: { if (_e490.y > 1f) { - phi_4095_ = 0.9999999f; + phi_4105_ = 0.9999999f; } else { - phi_4095_ = select(_e490.y, 0.00000011920929f, (_e490.y < 0f)); + phi_4105_ = select(_e490.y, 0.00000011920929f, (_e490.y < 0f)); } - let _e598 = phi_4095_; + let _e598 = phi_4105_; phi_1165_ = _e598; break; } @@ -832,11 +832,11 @@ fn function() { let _e680 = select(_e677, vec4(1f, 1f, 1f, 1f), vec4((_e289.member_6 == 4294967295u))); let _e684 = select(_e114, _e113, vec2((_e289.member_12 == 0u))); if _e295 { - phi_4127_ = (_e289.member_7 <= (_e110 - 8u)); + phi_4171_ = (_e289.member_7 <= (_e110 - 8u)); } else { - phi_4127_ = false; + phi_4171_ = false; } - let _e689 = phi_4127_; + let _e689 = phi_4171_; if _e689 { let _e692 = global.member[_e289.member_7]; let _e696 = global.member[(_e289.member_7 + 1u)]; @@ -894,11 +894,11 @@ fn function() { let _e770 = abs(_e684.x); let _e772 = (_e770 % 1f); if (_e770 >= 1f) { - phi_4147_ = select(true, false, (_e772 == 0f)); + phi_4222_ = select(true, false, (_e772 == 0f)); } else { - phi_4147_ = true; + phi_4222_ = true; } - let _e776 = phi_4147_; + let _e776 = phi_4222_; let _e777 = select(1f, _e772, _e776); if (select(-1f, 1f, (_e684.x >= 0f)) > 0f) { phi_1290_ = _e777; @@ -914,11 +914,11 @@ fn function() { let _e751 = ((select(select(u32(_e744), 0u, (_e744 < 0f)), 4294967295u, (_e744 > 4294967000f)) % 2u) == 0u); let _e753 = (_e744 % 1f); if (_e744 >= 1f) { - phi_4164_ = select(true, false, (_e753 == 0f)); + phi_4205_ = select(true, false, (_e753 == 0f)); } else { - phi_4164_ = true; + phi_4205_ = true; } - let _e757 = phi_4164_; + let _e757 = phi_4205_; let _e758 = select(1f, _e753, _e757); if (select(-1f, 1f, (_e684.x >= 0f)) > 0f) { if _e751 { @@ -943,11 +943,11 @@ fn function() { } case 0: { if (_e684.x > 1f) { - phi_4182_ = 0.9999999f; + phi_4192_ = 0.9999999f; } else { - phi_4182_ = select(_e684.x, 0.00000011920929f, (_e684.x < 0f)); + phi_4192_ = select(_e684.x, 0.00000011920929f, (_e684.x < 0f)); } - let _e741 = phi_4182_; + let _e741 = phi_4192_; phi_1327_ = _e741; break; } @@ -962,11 +962,11 @@ fn function() { let _e821 = abs(_e684.y); let _e823 = (_e821 % 1f); if (_e821 >= 1f) { - phi_4195_ = select(true, false, (_e823 == 0f)); + phi_4270_ = select(true, false, (_e823 == 0f)); } else { - phi_4195_ = true; + phi_4270_ = true; } - let _e827 = phi_4195_; + let _e827 = phi_4270_; let _e828 = select(1f, _e823, _e827); if (select(-1f, 1f, (_e684.y >= 0f)) > 0f) { phi_1348_ = _e828; @@ -982,11 +982,11 @@ fn function() { let _e802 = ((select(select(u32(_e795), 0u, (_e795 < 0f)), 4294967295u, (_e795 > 4294967000f)) % 2u) == 0u); let _e804 = (_e795 % 1f); if (_e795 >= 1f) { - phi_4212_ = select(true, false, (_e804 == 0f)); + phi_4253_ = select(true, false, (_e804 == 0f)); } else { - phi_4212_ = true; + phi_4253_ = true; } - let _e808 = phi_4212_; + let _e808 = phi_4253_; let _e809 = select(1f, _e804, _e808); if (select(-1f, 1f, (_e684.y >= 0f)) > 0f) { if _e802 { @@ -1011,11 +1011,11 @@ fn function() { } case 0: { if (_e684.y > 1f) { - phi_4230_ = 0.9999999f; + phi_4240_ = 0.9999999f; } else { - phi_4230_ = select(_e684.y, 0.00000011920929f, (_e684.y < 0f)); + phi_4240_ = select(_e684.y, 0.00000011920929f, (_e684.y < 0f)); } - let _e792 = phi_4230_; + let _e792 = phi_4240_; phi_1385_ = _e792; break; } @@ -1033,11 +1033,11 @@ fn function() { let _e874 = select(_e871, vec4(1f, 1f, 1f, 1f), vec4(_e872)); let _e878 = select(_e114, _e113, vec2((_e289.member_13 == 0u))); if _e295 { - phi_4262_ = (_e289.member_8 <= (_e110 - 8u)); + phi_4306_ = (_e289.member_8 <= (_e110 - 8u)); } else { - phi_4262_ = false; + phi_4306_ = false; } - let _e883 = phi_4262_; + let _e883 = phi_4306_; if _e883 { let _e886 = global.member[_e289.member_8]; let _e890 = global.member[(_e289.member_8 + 1u)]; @@ -1095,11 +1095,11 @@ fn function() { let _e964 = abs(_e878.x); let _e966 = (_e964 % 1f); if (_e964 >= 1f) { - phi_4282_ = select(true, false, (_e966 == 0f)); + phi_4357_ = select(true, false, (_e966 == 0f)); } else { - phi_4282_ = true; + phi_4357_ = true; } - let _e970 = phi_4282_; + let _e970 = phi_4357_; let _e971 = select(1f, _e966, _e970); if (select(-1f, 1f, (_e878.x >= 0f)) > 0f) { phi_1510_ = _e971; @@ -1115,11 +1115,11 @@ fn function() { let _e945 = ((select(select(u32(_e938), 0u, (_e938 < 0f)), 4294967295u, (_e938 > 4294967000f)) % 2u) == 0u); let _e947 = (_e938 % 1f); if (_e938 >= 1f) { - phi_4299_ = select(true, false, (_e947 == 0f)); + phi_4340_ = select(true, false, (_e947 == 0f)); } else { - phi_4299_ = true; + phi_4340_ = true; } - let _e951 = phi_4299_; + let _e951 = phi_4340_; let _e952 = select(1f, _e947, _e951); if (select(-1f, 1f, (_e878.x >= 0f)) > 0f) { if _e945 { @@ -1144,11 +1144,11 @@ fn function() { } case 0: { if (_e878.x > 1f) { - phi_4317_ = 0.9999999f; + phi_4327_ = 0.9999999f; } else { - phi_4317_ = select(_e878.x, 0.00000011920929f, (_e878.x < 0f)); + phi_4327_ = select(_e878.x, 0.00000011920929f, (_e878.x < 0f)); } - let _e935 = phi_4317_; + let _e935 = phi_4327_; phi_1547_ = _e935; break; } @@ -1163,11 +1163,11 @@ fn function() { let _e1015 = abs(_e878.y); let _e1017 = (_e1015 % 1f); if (_e1015 >= 1f) { - phi_4330_ = select(true, false, (_e1017 == 0f)); + phi_4405_ = select(true, false, (_e1017 == 0f)); } else { - phi_4330_ = true; + phi_4405_ = true; } - let _e1021 = phi_4330_; + let _e1021 = phi_4405_; let _e1022 = select(1f, _e1017, _e1021); if (select(-1f, 1f, (_e878.y >= 0f)) > 0f) { phi_1568_ = _e1022; @@ -1183,11 +1183,11 @@ fn function() { let _e996 = ((select(select(u32(_e989), 0u, (_e989 < 0f)), 4294967295u, (_e989 > 4294967000f)) % 2u) == 0u); let _e998 = (_e989 % 1f); if (_e989 >= 1f) { - phi_4347_ = select(true, false, (_e998 == 0f)); + phi_4388_ = select(true, false, (_e998 == 0f)); } else { - phi_4347_ = true; + phi_4388_ = true; } - let _e1002 = phi_4347_; + let _e1002 = phi_4388_; let _e1003 = select(1f, _e998, _e1002); if (select(-1f, 1f, (_e878.y >= 0f)) > 0f) { if _e996 { @@ -1212,11 +1212,11 @@ fn function() { } case 0: { if (_e878.y > 1f) { - phi_4365_ = 0.9999999f; + phi_4375_ = 0.9999999f; } else { - phi_4365_ = select(_e878.y, 0.00000011920929f, (_e878.y < 0f)); + phi_4375_ = select(_e878.y, 0.00000011920929f, (_e878.y < 0f)); } - let _e986 = phi_4365_; + let _e986 = phi_4375_; phi_1605_ = _e986; break; } @@ -1232,11 +1232,11 @@ fn function() { let _e1065 = textureSampleLevel(global_10, global_9, vec2(_e1059.x, _e1059.y), i32(_e1059.z), 0f); let _e1072 = select(_e114, _e113, vec2((_e289.member_14 == 0u))); if _e295 { - phi_4397_ = (_e289.member_9 <= (_e110 - 8u)); + phi_4441_ = (_e289.member_9 <= (_e110 - 8u)); } else { - phi_4397_ = false; + phi_4441_ = false; } - let _e1077 = phi_4397_; + let _e1077 = phi_4441_; if _e1077 { let _e1080 = global.member[_e289.member_9]; let _e1084 = global.member[(_e289.member_9 + 1u)]; @@ -1294,11 +1294,11 @@ fn function() { let _e1158 = abs(_e1072.x); let _e1160 = (_e1158 % 1f); if (_e1158 >= 1f) { - phi_4417_ = select(true, false, (_e1160 == 0f)); + phi_4492_ = select(true, false, (_e1160 == 0f)); } else { - phi_4417_ = true; + phi_4492_ = true; } - let _e1164 = phi_4417_; + let _e1164 = phi_4492_; let _e1165 = select(1f, _e1160, _e1164); if (select(-1f, 1f, (_e1072.x >= 0f)) > 0f) { phi_1730_ = _e1165; @@ -1314,11 +1314,11 @@ fn function() { let _e1139 = ((select(select(u32(_e1132), 0u, (_e1132 < 0f)), 4294967295u, (_e1132 > 4294967000f)) % 2u) == 0u); let _e1141 = (_e1132 % 1f); if (_e1132 >= 1f) { - phi_4434_ = select(true, false, (_e1141 == 0f)); + phi_4475_ = select(true, false, (_e1141 == 0f)); } else { - phi_4434_ = true; + phi_4475_ = true; } - let _e1145 = phi_4434_; + let _e1145 = phi_4475_; let _e1146 = select(1f, _e1141, _e1145); if (select(-1f, 1f, (_e1072.x >= 0f)) > 0f) { if _e1139 { @@ -1343,11 +1343,11 @@ fn function() { } case 0: { if (_e1072.x > 1f) { - phi_4452_ = 0.9999999f; + phi_4462_ = 0.9999999f; } else { - phi_4452_ = select(_e1072.x, 0.00000011920929f, (_e1072.x < 0f)); + phi_4462_ = select(_e1072.x, 0.00000011920929f, (_e1072.x < 0f)); } - let _e1129 = phi_4452_; + let _e1129 = phi_4462_; phi_1767_ = _e1129; break; } @@ -1362,11 +1362,11 @@ fn function() { let _e1209 = abs(_e1072.y); let _e1211 = (_e1209 % 1f); if (_e1209 >= 1f) { - phi_4465_ = select(true, false, (_e1211 == 0f)); + phi_4540_ = select(true, false, (_e1211 == 0f)); } else { - phi_4465_ = true; + phi_4540_ = true; } - let _e1215 = phi_4465_; + let _e1215 = phi_4540_; let _e1216 = select(1f, _e1211, _e1215); if (select(-1f, 1f, (_e1072.y >= 0f)) > 0f) { phi_1788_ = _e1216; @@ -1382,11 +1382,11 @@ fn function() { let _e1190 = ((select(select(u32(_e1183), 0u, (_e1183 < 0f)), 4294967295u, (_e1183 > 4294967000f)) % 2u) == 0u); let _e1192 = (_e1183 % 1f); if (_e1183 >= 1f) { - phi_4482_ = select(true, false, (_e1192 == 0f)); + phi_4523_ = select(true, false, (_e1192 == 0f)); } else { - phi_4482_ = true; + phi_4523_ = true; } - let _e1196 = phi_4482_; + let _e1196 = phi_4523_; let _e1197 = select(1f, _e1192, _e1196); if (select(-1f, 1f, (_e1072.y >= 0f)) > 0f) { if _e1190 { @@ -1411,11 +1411,11 @@ fn function() { } case 0: { if (_e1072.y > 1f) { - phi_4500_ = 0.9999999f; + phi_4510_ = 0.9999999f; } else { - phi_4500_ = select(_e1072.y, 0.00000011920929f, (_e1072.y < 0f)); + phi_4510_ = select(_e1072.y, 0.00000011920929f, (_e1072.y < 0f)); } - let _e1180 = phi_4500_; + let _e1180 = phi_4510_; phi_1825_ = _e1180; break; } @@ -1439,42 +1439,42 @@ fn function() { let _e1268 = fma(_e874.z, 2f, -1f); let _e1273 = sqrt(fma(_e1268, _e1268, fma(_e1266, _e1266, (_e1267 * _e1267)))); if (_e1273 == 0f) { - phi_4554_ = vec3(0f, 0f, 0f); + phi_4598_ = vec3(0f, 0f, 0f); } else { - phi_4554_ = (vec3(_e1266, _e1267, _e1268) * (1f / _e1273)); + phi_4598_ = (vec3(_e1266, _e1267, _e1268) * (1f / _e1273)); } - let _e1278 = phi_4554_; + let _e1278 = phi_4598_; let _e1285 = sqrt(fma(_e116.z, _e116.z, fma(_e116.x, _e116.x, (_e116.y * _e116.y)))); if (_e1285 == 0f) { - phi_4589_ = vec3(0f, 0f, 0f); + phi_4633_ = vec3(0f, 0f, 0f); } else { - phi_4589_ = (_e116 * (1f / _e1285)); + phi_4633_ = (_e116 * (1f / _e1285)); } - let _e1290 = phi_4589_; + let _e1290 = phi_4633_; let _e1297 = sqrt(fma(_e117.z, _e117.z, fma(_e117.x, _e117.x, (_e117.y * _e117.y)))); if (_e1297 == 0f) { - phi_4624_ = vec3(0f, 0f, 0f); + phi_4668_ = vec3(0f, 0f, 0f); } else { - phi_4624_ = (_e117 * (1f / _e1297)); + phi_4668_ = (_e117 * (1f / _e1297)); } - let _e1302 = phi_4624_; + let _e1302 = phi_4668_; let _e1309 = sqrt(fma(_e115.z, _e115.z, fma(_e115.x, _e115.x, (_e115.y * _e115.y)))); if (_e1309 == 0f) { - phi_4659_ = vec3(0f, 0f, 0f); + phi_4703_ = vec3(0f, 0f, 0f); } else { - phi_4659_ = (_e115 * (1f / _e1309)); + phi_4703_ = (_e115 * (1f / _e1309)); } - let _e1314 = phi_4659_; + let _e1314 = phi_4703_; let _e1333 = fma(_e1314.x, _e1278.z, fma(_e1290.x, _e1278.x, (_e1302.x * _e1278.y))); let _e1334 = fma(_e1314.y, _e1278.z, fma(_e1290.y, _e1278.x, (_e1302.y * _e1278.y))); let _e1335 = fma(_e1314.z, _e1278.z, fma(_e1290.z, _e1278.x, (_e1302.z * _e1278.y))); let _e1340 = sqrt(fma(_e1335, _e1335, fma(_e1333, _e1333, (_e1334 * _e1334)))); if (_e1340 == 0f) { - phi_4694_ = vec3(0f, 0f, 0f); + phi_4738_ = vec3(0f, 0f, 0f); } else { - phi_4694_ = (vec3(_e1333, _e1334, _e1335) * (1f / _e1340)); + phi_4738_ = (vec3(_e1333, _e1334, _e1335) * (1f / _e1340)); } - let _e1345 = phi_4694_; + let _e1345 = phi_4738_; phi_1919_ = _e1278; phi_1920_ = _e1345; } @@ -1494,11 +1494,11 @@ fn function() { let _e1390 = (_e1262.z * _e289.member.z); let _e1395 = textureSampleLevel(global_11, global_12, _e1349, 0f); if (_e110 >= 83u) { - phi_4726_ = (_e122 <= (_e110 - 83u)); + phi_4770_ = (_e122 <= (_e110 - 83u)); } else { - phi_4726_ = false; + phi_4770_ = false; } - let _e1403 = phi_4726_; + let _e1403 = phi_4770_; if _e1403 { let _e1406 = global.member[_e122]; let _e1411 = global.member[(_e122 + 1u)]; @@ -1541,16 +1541,16 @@ fn function() { let _e1591 = phi_2127_; if (_e1591.member < _e1591.member_1) { phi_2128_ = type_24((_e1591.member + 1u), _e1591.member_1); - phi_2143_ = type_24(1u, _e1591.member); + phi_2151_ = type_24(1u, _e1591.member); } else { phi_2128_ = _e1591; - phi_2143_ = type_24(0u, type_24().member_1); + phi_2151_ = type_24(0u, type_24().member_1); } let _e1604 = phi_2128_; - let _e1606 = phi_2143_; + let _e1606 = phi_2151_; switch bitcast(_e1606.member) { case 0: { - phi_2170_ = false; + phi_2178_ = false; break; } case 1: { @@ -1560,15 +1560,15 @@ fn function() { let _e1624 = global.member[(_e1611 + 2u)]; let _e1629 = global.member[(_e1611 + 3u)]; local_1[_e1606.member_1] = vec4(bitcast(_e1614), bitcast(_e1619), bitcast(_e1624), bitcast(_e1629)); - phi_2170_ = true; + phi_2178_ = true; break; } default: { - phi_2170_ = bool(); + phi_2178_ = bool(); break; } } - let _e1634 = phi_2170_; + let _e1634 = phi_2178_; continue; continuing { phi_2127_ = _e1604; @@ -1577,21 +1577,21 @@ fn function() { } let _e1636 = local_1; local = array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)); - phi_2176_ = type_24(0u, 8u); + phi_2184_ = type_24(0u, 8u); loop { - let _e1639 = phi_2176_; + let _e1639 = phi_2184_; if (_e1639.member < _e1639.member_1) { - phi_2177_ = type_24((_e1639.member + 1u), _e1639.member_1); - phi_2192_ = type_24(1u, _e1639.member); + phi_2185_ = type_24((_e1639.member + 1u), _e1639.member_1); + phi_2208_ = type_24(1u, _e1639.member); } else { - phi_2177_ = _e1639; - phi_2192_ = type_24(0u, type_24().member_1); + phi_2185_ = _e1639; + phi_2208_ = type_24(0u, type_24().member_1); } - let _e1652 = phi_2177_; - let _e1654 = phi_2192_; + let _e1652 = phi_2185_; + let _e1654 = phi_2208_; switch bitcast(_e1654.member) { case 0: { - phi_2215_ = false; + phi_2231_ = false; break; } case 1: { @@ -1600,156 +1600,156 @@ fn function() { let _e1667 = global.member[(_e1659 + 1u)]; let _e1672 = global.member[(_e1659 + 2u)]; local[_e1654.member_1] = vec3(bitcast(_e1662), bitcast(_e1667), bitcast(_e1672)); - phi_2215_ = true; + phi_2231_ = true; break; } default: { - phi_2215_ = bool(); + phi_2231_ = bool(); break; } } - let _e1677 = phi_2215_; + let _e1677 = phi_2231_; continue; continuing { - phi_2176_ = _e1652; + phi_2184_ = _e1652; break if !(_e1677); } } let _e1679 = local; - phi_2223_ = type_22(type_20(vec4(bitcast(_e1406), bitcast(_e1411), bitcast(_e1416), bitcast(_e1421)), vec4(bitcast(_e1427), bitcast(_e1432), bitcast(_e1437), bitcast(_e1442)), vec4(bitcast(_e1448), bitcast(_e1453), bitcast(_e1458), bitcast(_e1463)), vec4(bitcast(_e1469), bitcast(_e1474), bitcast(_e1479), bitcast(_e1484))), type_20(vec4(bitcast(_e1491), bitcast(_e1496), bitcast(_e1501), bitcast(_e1506)), vec4(bitcast(_e1512), bitcast(_e1517), bitcast(_e1522), bitcast(_e1527)), vec4(bitcast(_e1533), bitcast(_e1538), bitcast(_e1543), bitcast(_e1548)), vec4(bitcast(_e1554), bitcast(_e1559), bitcast(_e1564), bitcast(_e1569))), type_21(_e1679, _e1636), vec3(bitcast(_e1576), bitcast(_e1581), bitcast(_e1586))); + phi_2239_ = type_22(type_20(vec4(bitcast(_e1406), bitcast(_e1411), bitcast(_e1416), bitcast(_e1421)), vec4(bitcast(_e1427), bitcast(_e1432), bitcast(_e1437), bitcast(_e1442)), vec4(bitcast(_e1448), bitcast(_e1453), bitcast(_e1458), bitcast(_e1463)), vec4(bitcast(_e1469), bitcast(_e1474), bitcast(_e1479), bitcast(_e1484))), type_20(vec4(bitcast(_e1491), bitcast(_e1496), bitcast(_e1501), bitcast(_e1506)), vec4(bitcast(_e1512), bitcast(_e1517), bitcast(_e1522), bitcast(_e1527)), vec4(bitcast(_e1533), bitcast(_e1538), bitcast(_e1543), bitcast(_e1548)), vec4(bitcast(_e1554), bitcast(_e1559), bitcast(_e1564), bitcast(_e1569))), type_21(_e1679, _e1636), vec3(bitcast(_e1576), bitcast(_e1581), bitcast(_e1586))); } else { - phi_2223_ = type_22(type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_21(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); + phi_2239_ = type_22(type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_21(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); } - let _e1683 = phi_2223_; + let _e1683 = phi_2239_; let _e1685 = (_e1683.member_3 - _e118); let _e1692 = sqrt(fma(_e1685.z, _e1685.z, fma(_e1685.x, _e1685.x, (_e1685.y * _e1685.y)))); let _e1693 = (_e1692 == 0f); if _e1693 { - phi_4798_ = vec3(0f, 0f, 0f); + phi_4842_ = vec3(0f, 0f, 0f); } else { - phi_4798_ = (_e1685 * (1f / _e1692)); + phi_4842_ = (_e1685 * (1f / _e1692)); } - let _e1697 = phi_4798_; + let _e1697 = phi_4842_; let _e1698 = -(_e1697); let _e1705 = sqrt(fma(_e1349.z, _e1349.z, fma(_e1349.x, _e1349.x, (_e1349.y * _e1349.y)))); let _e1706 = (_e1705 == 0f); if _e1706 { - phi_4857_ = vec3(0f, 0f, 0f); + phi_4901_ = vec3(0f, 0f, 0f); } else { - phi_4857_ = (_e1349 * (1f / _e1705)); + phi_4901_ = (_e1349 * (1f / _e1705)); } - let _e1710 = phi_4857_; + let _e1710 = phi_4901_; let _e1720 = (2f * fma(_e1710.z, _e1698.z, fma(_e1710.x, _e1698.x, (_e1710.y * _e1698.y)))); let _e1727 = textureSampleLevel(global_13, global_14, (_e1698 - vec3((_e1720 * _e1710.x), (_e1720 * _e1710.y), (_e1720 * _e1710.z))), (_e1373 * 4f)); if _e1693 { - phi_4931_ = vec3(0f, 0f, 0f); + phi_4975_ = vec3(0f, 0f, 0f); } else { - phi_4931_ = (_e1685 * (1f / _e1692)); + phi_4975_ = (_e1685 * (1f / _e1692)); } - let _e1734 = phi_4931_; + let _e1734 = phi_4975_; let _e1743 = textureSampleLevel(global_15, global_16, vec2(max(fma(_e1349.z, _e1734.z, fma(_e1349.x, _e1734.x, (_e1349.y * _e1734.y))), 0f), _e1373), 0f); switch bitcast(_e144) { case 0: { if _e289.member_15 { if _e1706 { - phi_4981_ = vec3(0f, 0f, 0f); + phi_5368_ = vec3(0f, 0f, 0f); } else { - phi_4981_ = (_e1349 * (1f / _e1705)); + phi_5368_ = (_e1349 * (1f / _e1705)); } - let _e1912 = phi_4981_; + let _e1912 = phi_5368_; if _e1693 { - phi_5016_ = vec3(0f, 0f, 0f); + phi_5403_ = vec3(0f, 0f, 0f); } else { - phi_5016_ = (_e1685 * (1f / _e1692)); + phi_5403_ = (_e1685 * (1f / _e1692)); } - let _e1916 = phi_5016_; - phi_2263_ = type_24(0u, _e157); - phi_2266_ = vec3(0f, 0f, 0f); + let _e1916 = phi_5403_; + phi_2279_ = type_24(0u, _e157); + phi_2282_ = vec3(0f, 0f, 0f); loop { - let _e1919 = phi_2263_; - let _e1921 = phi_2266_; + let _e1919 = phi_2279_; + let _e1921 = phi_2282_; local_2 = _e1921; local_3 = _e1921; local_4 = _e1921; if (_e1919.member < _e1919.member_1) { - phi_2264_ = type_24((_e1919.member + 1u), _e1919.member_1); - phi_2281_ = type_24(1u, _e1919.member); + phi_2280_ = type_24((_e1919.member + 1u), _e1919.member_1); + phi_2305_ = type_24(1u, _e1919.member); } else { - phi_2264_ = _e1919; - phi_2281_ = type_24(0u, type_24().member_1); + phi_2280_ = _e1919; + phi_2305_ = type_24(0u, type_24().member_1); } - let _e1934 = phi_2264_; - let _e1936 = phi_2281_; + let _e1934 = phi_2280_; + let _e1936 = phi_2305_; switch bitcast(_e1936.member) { case 0: { - phi_2267_ = vec3(); - phi_3136_ = false; + phi_2283_ = vec3(); + phi_3176_ = false; break; } case 1: { if (_e1936.member_1 >= _e157) { - phi_5033_ = 4294967295u; + phi_5420_ = 4294967295u; } else { - phi_5033_ = (_e153 + _e1936.member_1); + phi_5420_ = (_e153 + _e1936.member_1); } - let _e1943 = phi_5033_; + let _e1943 = phi_5420_; if (_e110 >= 1u) { - phi_5052_ = (_e1943 <= (_e110 - 1u)); + phi_5439_ = (_e1943 <= (_e110 - 1u)); } else { - phi_5052_ = false; + phi_5439_ = false; } - let _e1948 = phi_5052_; + let _e1948 = phi_5439_; if _e1948 { let _e1951 = global.member[_e1943]; - phi_2298_ = _e1951; + phi_2322_ = _e1951; } else { - phi_2298_ = 4294967295u; + phi_2322_ = 4294967295u; } - let _e1953 = phi_2298_; + let _e1953 = phi_2322_; let _e1954 = (_e1953 == 4294967295u); if _e1954 { - phi_3134_ = vec3(); + phi_3174_ = vec3(); } else { if (_e110 >= 3u) { - phi_5084_ = (_e1953 <= (_e110 - 3u)); + phi_5471_ = (_e1953 <= (_e110 - 3u)); } else { - phi_5084_ = false; + phi_5471_ = false; } - let _e1959 = phi_5084_; + let _e1959 = phi_5471_; if _e1959 { let _e1962 = global.member[_e1953]; switch bitcast(_e1962) { case 0: { - phi_2315_ = 0u; + phi_2339_ = 0u; break; } case 1: { - phi_2315_ = 1u; + phi_2339_ = 1u; break; } case 2: { - phi_2315_ = 2u; + phi_2339_ = 2u; break; } default: { - phi_2315_ = 0u; + phi_2339_ = 0u; break; } } - let _e1965 = phi_2315_; + let _e1965 = phi_2339_; let _e1969 = global.member[(_e1953 + 1u)]; let _e1973 = global.member[(_e1953 + 2u)]; - phi_2325_ = type_33(_e1965, _e1969, _e1973); + phi_2349_ = type_33(_e1965, _e1969, _e1973); } else { - phi_2325_ = type_33(0u, 4294967295u, 4294967295u); + phi_2349_ = type_33(0u, 4294967295u, 4294967295u); } - let _e1976 = phi_2325_; + let _e1976 = phi_2349_; if (_e110 >= 10u) { - phi_5114_ = (_e1976.member_2 <= (_e110 - 10u)); + phi_5501_ = (_e1976.member_2 <= (_e110 - 10u)); } else { - phi_5114_ = false; + phi_5501_ = false; } - let _e1982 = phi_5114_; + let _e1982 = phi_5501_; if _e1982 { let _e1985 = global.member[_e1976.member_2]; let _e1990 = global.member[(_e1976.member_2 + 1u)]; @@ -1761,11 +1761,11 @@ fn function() { let _e2022 = global.member[(_e1976.member_2 + 7u)]; let _e2027 = global.member[(_e1976.member_2 + 8u)]; let _e2032 = global.member[(_e1976.member_2 + 9u)]; - phi_2375_ = type_29(vec3(bitcast(_e1985), bitcast(_e1990), bitcast(_e1995)), vec4(bitcast(_e2001), bitcast(_e2006), bitcast(_e2011), bitcast(_e2016)), vec3(bitcast(_e2022), bitcast(_e2027), bitcast(_e2032))); + phi_2399_ = type_29(vec3(bitcast(_e1985), bitcast(_e1990), bitcast(_e1995)), vec4(bitcast(_e2001), bitcast(_e2006), bitcast(_e2011), bitcast(_e2016)), vec3(bitcast(_e2022), bitcast(_e2027), bitcast(_e2032))); } else { - phi_2375_ = type_29(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); + phi_2399_ = type_29(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); } - let _e2037 = phi_2375_; + let _e2037 = phi_2399_; let _e2045 = (_e2037.member_1.x + _e2037.member_1.x); let _e2046 = (_e2037.member_1.y + _e2037.member_1.y); let _e2047 = (_e2037.member_1.z + _e2037.member_1.z); @@ -1779,11 +1779,11 @@ fn function() { switch bitcast(_e1976.member) { case 0: { if _e295 { - phi_5194_ = (_e1976.member_1 <= (_e110 - 8u)); + phi_5967_ = (_e1976.member_1 <= (_e110 - 8u)); } else { - phi_5194_ = false; + phi_5967_ = false; } - let _e2572 = phi_5194_; + let _e2572 = phi_5967_; if _e2572 { let _e2575 = global.member[_e1976.member_1]; let _e2580 = global.member[(_e1976.member_1 + 1u)]; @@ -1793,21 +1793,21 @@ fn function() { let _e2601 = global.member[(_e1976.member_1 + 5u)]; let _e2606 = global.member[(_e1976.member_1 + 6u)]; let _e2612 = global.member[(_e1976.member_1 + 7u)]; - phi_2423_ = type_34(vec3(bitcast(_e2575), bitcast(_e2580), bitcast(_e2585)), vec4(bitcast(_e2591), bitcast(_e2596), bitcast(_e2601), bitcast(_e2606)), bitcast(_e2612)); + phi_2447_ = type_34(vec3(bitcast(_e2575), bitcast(_e2580), bitcast(_e2585)), vec4(bitcast(_e2591), bitcast(_e2596), bitcast(_e2601), bitcast(_e2606)), bitcast(_e2612)); } else { - phi_2423_ = type_34(vec3(0f, -1f, 0f), vec4(1f, 1f, 1f, 1f), 1f); + phi_2447_ = type_34(vec3(0f, -1f, 0f), vec4(1f, 1f, 1f, 1f), 1f); } - let _e2616 = phi_2423_; + let _e2616 = phi_2447_; let _e2638 = fma(_e2076.x, _e2616.member.z, fma(_e2074.x, _e2616.member.y, (_e2072.x * _e2616.member.x))); let _e2639 = fma(_e2076.y, _e2616.member.z, fma(_e2074.y, _e2616.member.y, (_e2072.y * _e2616.member.x))); let _e2640 = fma(_e2076.z, _e2616.member.z, fma(_e2074.z, _e2616.member.y, (_e2072.z * _e2616.member.x))); let _e2645 = sqrt(fma(_e2640, _e2640, fma(_e2638, _e2638, (_e2639 * _e2639)))); if (_e2645 == 0f) { - phi_5242_ = vec3(0f, 0f, 0f); + phi_6014_ = vec3(0f, 0f, 0f); } else { - phi_5242_ = (vec3(_e2638, _e2639, _e2640) * (1f / _e2645)); + phi_6014_ = (vec3(_e2638, _e2639, _e2640) * (1f / _e2645)); } - let _e2650 = phi_5242_; + let _e2650 = phi_6014_; let _e2652 = -(_e2650.x); let _e2654 = -(_e2650.y); let _e2656 = -(_e2650.z); @@ -1819,11 +1819,11 @@ fn function() { let _e2673 = (_e1916 + vec3(_e2652, _e2654, _e2656)); let _e2680 = sqrt(fma(_e2673.z, _e2673.z, fma(_e2673.x, _e2673.x, (_e2673.y * _e2673.y)))); if (_e2680 == 0f) { - phi_5277_ = vec3(0f, 0f, 0f); + phi_6049_ = vec3(0f, 0f, 0f); } else { - phi_5277_ = (_e2673 * (1f / _e2680)); + phi_6049_ = (_e2673 * (1f / _e2680)); } - let _e2685 = phi_5277_; + let _e2685 = phi_6049_; let _e2686 = (_e1373 * _e1373); let _e2697 = max(fma(_e1912.z, _e2685.z, fma(_e1912.x, _e2685.x, (_e1912.y * _e2685.y))), 0f); let _e2710 = max(fma(_e1912.z, _e1916.z, fma(_e1912.x, _e1916.x, (_e1912.y * _e1916.y))), 0f); @@ -1841,17 +1841,17 @@ fn function() { let _e2750 = (((_e2686 * _e2686) / (pow(fma((_e2697 * _e2697), fma(_e2686, _e2686, -1f), 1f), 2f) * 3.1415927f)) * ((_e2710 / fma(_e2710, _e2722, _e2720)) * (_e2717 / fma(_e2717, _e2722, _e2720)))); let _e2757 = max(fma(_e1912.z, _e2656, fma(_e1912.x, _e2652, (_e1912.y * _e2654))), 0f); let _e2759 = fma((4f * _e2710), _e2757, 0.0001f); - phi_3124_ = vec3(fma((fma((((1f - _e2741) * _e2659) * _e1364), 0.31830987f, ((_e2750 * _e2741) / _e2759)) * (_e2616.member_1.x * _e2616.member_2)), _e2757, _e1921.x), fma((fma((((1f - _e2742) * _e2659) * _e1366), 0.31830987f, ((_e2750 * _e2742) / _e2759)) * (_e2616.member_1.y * _e2616.member_2)), _e2757, _e1921.y), fma((fma((((1f - _e2743) * _e2659) * _e1368), 0.31830987f, ((_e2750 * _e2743) / _e2759)) * (_e2616.member_1.z * _e2616.member_2)), _e2757, _e1921.z)); - phi_3125_ = true; + phi_3164_ = vec3(fma((fma((((1f - _e2741) * _e2659) * _e1364), 0.31830987f, ((_e2750 * _e2741) / _e2759)) * (_e2616.member_1.x * _e2616.member_2)), _e2757, _e1921.x), fma((fma((((1f - _e2742) * _e2659) * _e1366), 0.31830987f, ((_e2750 * _e2742) / _e2759)) * (_e2616.member_1.y * _e2616.member_2)), _e2757, _e1921.y), fma((fma((((1f - _e2743) * _e2659) * _e1368), 0.31830987f, ((_e2750 * _e2743) / _e2759)) * (_e2616.member_1.z * _e2616.member_2)), _e2757, _e1921.z)); + phi_3165_ = true; break; } case 1: { if _e295 { - phi_5369_ = (_e1976.member_1 <= (_e110 - 8u)); + phi_5793_ = (_e1976.member_1 <= (_e110 - 8u)); } else { - phi_5369_ = false; + phi_5793_ = false; } - let _e2361 = phi_5369_; + let _e2361 = phi_5793_; if _e2361 { let _e2364 = global.member[_e1976.member_1]; let _e2369 = global.member[(_e1976.member_1 + 1u)]; @@ -1861,23 +1861,23 @@ fn function() { let _e2390 = global.member[(_e1976.member_1 + 5u)]; let _e2395 = global.member[(_e1976.member_1 + 6u)]; let _e2401 = global.member[(_e1976.member_1 + 7u)]; - phi_2626_ = type_34(vec3(bitcast(_e2364), bitcast(_e2369), bitcast(_e2374)), vec4(bitcast(_e2380), bitcast(_e2385), bitcast(_e2390), bitcast(_e2395)), bitcast(_e2401)); + phi_2654_ = type_34(vec3(bitcast(_e2364), bitcast(_e2369), bitcast(_e2374)), vec4(bitcast(_e2380), bitcast(_e2385), bitcast(_e2390), bitcast(_e2395)), bitcast(_e2401)); } else { - phi_2626_ = type_34(vec3(0f, 0f, 0f), vec4(1f, 1f, 1f, 1f), 1f); + phi_2654_ = type_34(vec3(0f, 0f, 0f), vec4(1f, 1f, 1f, 1f), 1f); } - let _e2405 = phi_2626_; + let _e2405 = phi_2654_; let _e2434 = (vec3((_e2037.member.x + fma(_e2076.x, _e2405.member.z, fma(_e2074.x, _e2405.member.y, (_e2072.x * _e2405.member.x)))), (_e2037.member.y + fma(_e2076.y, _e2405.member.z, fma(_e2074.y, _e2405.member.y, (_e2072.y * _e2405.member.x)))), (_e2037.member.z + fma(_e2076.z, _e2405.member.z, fma(_e2074.z, _e2405.member.y, (_e2072.z * _e2405.member.x))))) - _e118); let _e2441 = sqrt(fma(_e2434.z, _e2434.z, fma(_e2434.x, _e2434.x, (_e2434.y * _e2434.y)))); let _e2442 = (_e2441 == 0f); if _e2442 { - phi_2812_ = vec3(); + phi_2844_ = vec3(); } else { if _e2442 { - phi_5415_ = vec3(0f, 0f, 0f); + phi_5840_ = vec3(0f, 0f, 0f); } else { - phi_5415_ = (_e2434 * (1f / _e2441)); + phi_5840_ = (_e2434 * (1f / _e2441)); } - let _e2446 = phi_5415_; + let _e2446 = phi_5840_; let _e2448 = (_e2405.member_2 / (_e2441 * _e2441)); let _e2450 = fma(-(_e680.z), _e289.member_3, 1f); let _e2454 = fma(0.4f, _e2450, (_e1364 * _e1376)); @@ -1886,11 +1886,11 @@ fn function() { let _e2463 = (_e1916 + _e2446); let _e2470 = sqrt(fma(_e2463.z, _e2463.z, fma(_e2463.x, _e2463.x, (_e2463.y * _e2463.y)))); if (_e2470 == 0f) { - phi_5450_ = vec3(0f, 0f, 0f); + phi_5875_ = vec3(0f, 0f, 0f); } else { - phi_5450_ = (_e2463 * (1f / _e2470)); + phi_5875_ = (_e2463 * (1f / _e2470)); } - let _e2475 = phi_5450_; + let _e2475 = phi_5875_; let _e2476 = (_e1373 * _e1373); let _e2487 = max(fma(_e1912.z, _e2475.z, fma(_e1912.x, _e2475.x, (_e1912.y * _e2475.y))), 0f); let _e2500 = max(fma(_e1912.z, _e1916.z, fma(_e1912.x, _e1916.x, (_e1912.y * _e1916.y))), 0f); @@ -1907,20 +1907,20 @@ fn function() { let _e2533 = fma((1f - _e2456), _e2530, _e2456); let _e2540 = (((_e2476 * _e2476) / (pow(fma((_e2487 * _e2487), fma(_e2476, _e2476, -1f), 1f), 2f) * 3.1415927f)) * ((_e2500 / fma(_e2500, _e2512, _e2510)) * (_e2507 / fma(_e2507, _e2512, _e2510)))); let _e2545 = fma((4f * _e2500), _e2507, 0.0001f); - phi_2812_ = vec3(fma((fma((((1f - _e2531) * _e2450) * _e1364), 0.31830987f, ((_e2540 * _e2531) / _e2545)) * (_e2405.member_1.x * _e2448)), _e2507, _e1921.x), fma((fma((((1f - _e2532) * _e2450) * _e1366), 0.31830987f, ((_e2540 * _e2532) / _e2545)) * (_e2405.member_1.y * _e2448)), _e2507, _e1921.y), fma((fma((((1f - _e2533) * _e2450) * _e1368), 0.31830987f, ((_e2540 * _e2533) / _e2545)) * (_e2405.member_1.z * _e2448)), _e2507, _e1921.z)); + phi_2844_ = vec3(fma((fma((((1f - _e2531) * _e2450) * _e1364), 0.31830987f, ((_e2540 * _e2531) / _e2545)) * (_e2405.member_1.x * _e2448)), _e2507, _e1921.x), fma((fma((((1f - _e2532) * _e2450) * _e1366), 0.31830987f, ((_e2540 * _e2532) / _e2545)) * (_e2405.member_1.y * _e2448)), _e2507, _e1921.y), fma((fma((((1f - _e2533) * _e2450) * _e1368), 0.31830987f, ((_e2540 * _e2533) / _e2545)) * (_e2405.member_1.z * _e2448)), _e2507, _e1921.z)); } - let _e2566 = phi_2812_; - phi_3124_ = _e2566; - phi_3125_ = select(true, false, _e2442); + let _e2566 = phi_2844_; + phi_3164_ = _e2566; + phi_3165_ = select(true, false, _e2442); break; } case 2: { if (_e110 >= 13u) { - phi_5542_ = (_e1976.member_1 <= (_e110 - 13u)); + phi_5581_ = (_e1976.member_1 <= (_e110 - 13u)); } else { - phi_5542_ = false; + phi_5581_ = false; } - let _e2087 = phi_5542_; + let _e2087 = phi_5581_; if _e2087 { let _e2090 = global.member[_e1976.member_1]; let _e2095 = global.member[(_e1976.member_1 + 1u)]; @@ -1935,33 +1935,33 @@ fn function() { let _e2142 = global.member[(_e1976.member_1 + 10u)]; let _e2147 = global.member[(_e1976.member_1 + 11u)]; let _e2153 = global.member[(_e1976.member_1 + 12u)]; - phi_2875_ = type_35(vec3(bitcast(_e2090), bitcast(_e2095), bitcast(_e2100)), vec3(bitcast(_e2106), bitcast(_e2111), bitcast(_e2116)), bitcast(_e2122), bitcast(_e2127), vec4(bitcast(_e2132), bitcast(_e2137), bitcast(_e2142), bitcast(_e2147)), bitcast(_e2153)); + phi_2907_ = type_35(vec3(bitcast(_e2090), bitcast(_e2095), bitcast(_e2100)), vec3(bitcast(_e2106), bitcast(_e2111), bitcast(_e2116)), bitcast(_e2122), bitcast(_e2127), vec4(bitcast(_e2132), bitcast(_e2137), bitcast(_e2142), bitcast(_e2147)), bitcast(_e2153)); } else { - phi_2875_ = type_35(vec3(0f, 0f, 0f), vec3(0f, -1f, 0f), 1.0471976f, 1.5707964f, vec4(1f, 1f, 1f, 1f), 1f); + phi_2907_ = type_35(vec3(0f, 0f, 0f), vec3(0f, -1f, 0f), 1.0471976f, 1.5707964f, vec4(1f, 1f, 1f, 1f), 1f); } - let _e2157 = phi_2875_; + let _e2157 = phi_2907_; let _e2189 = (vec3((_e2037.member.x + fma(_e2076.x, _e2157.member.z, fma(_e2074.x, _e2157.member.y, (_e2072.x * _e2157.member.x)))), (_e2037.member.y + fma(_e2076.y, _e2157.member.z, fma(_e2074.y, _e2157.member.y, (_e2072.y * _e2157.member.x)))), (_e2037.member.z + fma(_e2076.z, _e2157.member.z, fma(_e2074.z, _e2157.member.y, (_e2072.z * _e2157.member.x))))) - _e118); let _e2196 = sqrt(fma(_e2189.z, _e2189.z, fma(_e2189.x, _e2189.x, (_e2189.y * _e2189.y)))); let _e2197 = (_e2196 == 0f); if _e2197 { - phi_3122_ = vec3(); + phi_3162_ = vec3(); } else { if _e2197 { - phi_5592_ = vec3(0f, 0f, 0f); + phi_5631_ = vec3(0f, 0f, 0f); } else { - phi_5592_ = (_e2189 * (1f / _e2196)); + phi_5631_ = (_e2189 * (1f / _e2196)); } - let _e2201 = phi_5592_; + let _e2201 = phi_5631_; let _e2211 = fma(_e2076.x, _e2157.member_1.z, fma(_e2074.x, _e2157.member_1.y, (_e2072.x * _e2157.member_1.x))); let _e2212 = fma(_e2076.y, _e2157.member_1.z, fma(_e2074.y, _e2157.member_1.y, (_e2072.y * _e2157.member_1.x))); let _e2213 = fma(_e2076.z, _e2157.member_1.z, fma(_e2074.z, _e2157.member_1.y, (_e2072.z * _e2157.member_1.x))); let _e2218 = sqrt(fma(_e2213, _e2213, fma(_e2211, _e2211, (_e2212 * _e2212)))); if (_e2218 == 0f) { - phi_5627_ = vec3(0f, 0f, 0f); + phi_5666_ = vec3(0f, 0f, 0f); } else { - phi_5627_ = (vec3(_e2211, _e2212, _e2213) * (1f / _e2218)); + phi_5666_ = (vec3(_e2211, _e2212, _e2213) * (1f / _e2218)); } - let _e2223 = phi_5627_; + let _e2223 = phi_5666_; let _e2235 = ((fma(_e2201.z, _e2223.z, fma(_e2201.x, _e2223.x, (_e2201.y * _e2223.y))) - _e2157.member_3) / (_e2157.member_2 - _e2157.member_3)); let _e2237 = select(_e2235, 0f, (_e2235 < 0f)); let _e2240 = (_e2157.member_5 * select(_e2237, 1f, (_e2237 > 1f))); @@ -1972,11 +1972,11 @@ fn function() { let _e2255 = (_e1916 + _e2201); let _e2262 = sqrt(fma(_e2255.z, _e2255.z, fma(_e2255.x, _e2255.x, (_e2255.y * _e2255.y)))); if (_e2262 == 0f) { - phi_5662_ = vec3(0f, 0f, 0f); + phi_5701_ = vec3(0f, 0f, 0f); } else { - phi_5662_ = (_e2255 * (1f / _e2262)); + phi_5701_ = (_e2255 * (1f / _e2262)); } - let _e2267 = phi_5662_; + let _e2267 = phi_5701_; let _e2268 = (_e1373 * _e1373); let _e2279 = max(fma(_e1912.z, _e2267.z, fma(_e1912.x, _e2267.x, (_e1912.y * _e2267.y))), 0f); let _e2292 = max(fma(_e1912.z, _e1916.z, fma(_e1912.x, _e1916.x, (_e1912.y * _e1916.y))), 0f); @@ -1993,40 +1993,40 @@ fn function() { let _e2322 = fma((1f - _e2248), _e2319, _e2248); let _e2329 = (((_e2268 * _e2268) / (pow(fma((_e2279 * _e2279), fma(_e2268, _e2268, -1f), 1f), 2f) * 3.1415927f)) * ((_e2292 / fma(_e2292, _e2301, _e2299)) * (_e2296 / fma(_e2296, _e2301, _e2299)))); let _e2334 = fma((4f * _e2292), _e2296, 0.0001f); - phi_3122_ = vec3(fma((fma((((1f - _e2320) * _e2242) * _e1364), 0.31830987f, ((_e2329 * _e2320) / _e2334)) * (_e2157.member_4.x * _e2240)), _e2296, _e1921.x), fma((fma((((1f - _e2321) * _e2242) * _e1366), 0.31830987f, ((_e2329 * _e2321) / _e2334)) * (_e2157.member_4.y * _e2240)), _e2296, _e1921.y), fma((fma((((1f - _e2322) * _e2242) * _e1368), 0.31830987f, ((_e2329 * _e2322) / _e2334)) * (_e2157.member_4.z * _e2240)), _e2296, _e1921.z)); + phi_3162_ = vec3(fma((fma((((1f - _e2320) * _e2242) * _e1364), 0.31830987f, ((_e2329 * _e2320) / _e2334)) * (_e2157.member_4.x * _e2240)), _e2296, _e1921.x), fma((fma((((1f - _e2321) * _e2242) * _e1366), 0.31830987f, ((_e2329 * _e2321) / _e2334)) * (_e2157.member_4.y * _e2240)), _e2296, _e1921.y), fma((fma((((1f - _e2322) * _e2242) * _e1368), 0.31830987f, ((_e2329 * _e2322) / _e2334)) * (_e2157.member_4.z * _e2240)), _e2296, _e1921.z)); } - let _e2355 = phi_3122_; - phi_3124_ = _e2355; - phi_3125_ = select(true, false, _e2197); + let _e2355 = phi_3162_; + phi_3164_ = _e2355; + phi_3165_ = select(true, false, _e2197); break; } default: { - phi_3124_ = vec3(); - phi_3125_ = bool(); + phi_3164_ = vec3(); + phi_3165_ = bool(); break; } } - let _e2780 = phi_3124_; - let _e2782 = phi_3125_; - phi_3134_ = select(_e2780, _e1921, vec3(select(true, false, _e2782))); + let _e2780 = phi_3164_; + let _e2782 = phi_3165_; + phi_3174_ = select(_e2780, _e1921, vec3(select(true, false, _e2782))); } - let _e2787 = phi_3134_; - phi_2267_ = _e2787; - phi_3136_ = select(true, false, _e1954); + let _e2787 = phi_3174_; + phi_2283_ = _e2787; + phi_3176_ = select(true, false, _e1954); break; } default: { - phi_2267_ = vec3(); - phi_3136_ = bool(); + phi_2283_ = vec3(); + phi_3176_ = bool(); break; } } - let _e2790 = phi_2267_; - let _e2792 = phi_3136_; + let _e2790 = phi_2283_; + let _e2792 = phi_3176_; continue; continuing { - phi_2263_ = _e1934; - phi_2266_ = _e2790; + phi_2279_ = _e1934; + phi_2282_ = _e2790; break if !(_e2792); } } @@ -2044,43 +2044,43 @@ fn function() { let _e2848 = local_2; let _e2852 = local_3; let _e2856 = local_4; - phi_3249_ = vec4(fma(_e1386, _e289.member_1, fma(fma(((1f - _e2826) * _e2795), (_e1395.x * _e1364), (_e1727.x * fma(_e2826, _e1743.x, _e1743.y))), _e1380, _e2848.x)), fma(_e1388, _e289.member_1, fma(fma(((1f - _e2827) * _e2795), (_e1395.y * _e1366), (_e1727.y * fma(_e2827, _e1743.x, _e1743.y))), _e1380, _e2852.y)), fma(_e1390, _e289.member_1, fma(fma(((1f - _e2828) * _e2795), (_e1395.z * _e1368), (_e1727.z * fma(_e2828, _e1743.x, _e1743.y))), _e1380, _e2856.z)), 1f); + phi_3293_ = vec4(fma(_e1386, _e289.member_1, fma(fma(((1f - _e2826) * _e2795), (_e1395.x * _e1364), (_e1727.x * fma(_e2826, _e1743.x, _e1743.y))), _e1380, _e2848.x)), fma(_e1388, _e289.member_1, fma(fma(((1f - _e2827) * _e2795), (_e1395.y * _e1366), (_e1727.y * fma(_e2827, _e1743.x, _e1743.y))), _e1380, _e2852.y)), fma(_e1390, _e289.member_1, fma(fma(((1f - _e2828) * _e2795), (_e1395.z * _e1368), (_e1727.z * fma(_e2828, _e1743.x, _e1743.y))), _e1380, _e2856.z)), 1f); } else { - phi_3249_ = (vec4((_e112.x * _e486.x), (_e112.y * _e486.y), (_e112.z * _e486.z), (_e112.w * _e486.w)) * _e289.member_2); + phi_3293_ = (vec4((_e112.x * _e486.x), (_e112.y * _e486.y), (_e112.z * _e486.z), (_e112.w * _e486.w)) * _e289.member_2); } - let _e2864 = phi_3249_; + let _e2864 = phi_3293_; global_17 = _e2864; break; } case 1: { let _e1885 = sqrt(fma(_e113.x, _e113.x, (_e113.y * _e113.y))); if (_e1885 == 0f) { - phi_5781_ = vec3(0f, 0f, 0f); + phi_5329_ = vec3(0f, 0f, 0f); } else { - phi_5781_ = (vec3(_e113.x, _e113.y, 0f) * (1f / _e1885)); + phi_5329_ = (vec3(_e113.x, _e113.y, 0f) * (1f / _e1885)); } - let _e1890 = phi_5781_; + let _e1890 = phi_5329_; global_17 = vec4(((_e1890.x + 1f) * 0.5f), ((_e1890.y + 1f) * 0.5f), ((_e1890.z + 1f) * 0.5f), 1f); break; } case 2: { let _e1864 = sqrt(fma(_e114.x, _e114.x, (_e114.y * _e114.y))); if (_e1864 == 0f) { - phi_5830_ = vec3(0f, 0f, 0f); + phi_5280_ = vec3(0f, 0f, 0f); } else { - phi_5830_ = (vec3(_e114.x, _e114.y, 0f) * (1f / _e1864)); + phi_5280_ = (vec3(_e114.x, _e114.y, 0f) * (1f / _e1864)); } - let _e1869 = phi_5830_; + let _e1869 = phi_5280_; global_17 = vec4(((_e1869.x + 1f) * 0.5f), ((_e1869.y + 1f) * 0.5f), ((_e1869.z + 1f) * 0.5f), 1f); break; } case 3: { if _e1706 { - phi_5879_ = vec3(0f, 0f, 0f); + phi_5231_ = vec3(0f, 0f, 0f); } else { - phi_5879_ = (_e1349 * (1f / _e1705)); + phi_5231_ = (_e1349 * (1f / _e1705)); } - let _e1848 = phi_5879_; + let _e1848 = phi_5231_; global_17 = vec4(((_e1848.x + 1f) * 0.5f), ((_e1848.y + 1f) * 0.5f), ((_e1848.z + 1f) * 0.5f), 1f); break; } @@ -2091,44 +2091,44 @@ fn function() { case 5: { let _e1829 = sqrt(fma(_e115.z, _e115.z, fma(_e115.x, _e115.x, (_e115.y * _e115.y)))); if (_e1829 == 0f) { - phi_5928_ = vec3(0f, 0f, 0f); + phi_5182_ = vec3(0f, 0f, 0f); } else { - phi_5928_ = (_e115 * (1f / _e1829)); + phi_5182_ = (_e115 * (1f / _e1829)); } - let _e1834 = phi_5928_; + let _e1834 = phi_5182_; global_17 = vec4(((_e1834.x + 1f) * 0.5f), ((_e1834.y + 1f) * 0.5f), ((_e1834.z + 1f) * 0.5f), 1f); break; } case 6: { let _e1807 = sqrt(fma(_e1347.z, _e1347.z, fma(_e1347.x, _e1347.x, (_e1347.y * _e1347.y)))); if (_e1807 == 0f) { - phi_5977_ = vec3(0f, 0f, 0f); + phi_5133_ = vec3(0f, 0f, 0f); } else { - phi_5977_ = (_e1347 * (1f / _e1807)); + phi_5133_ = (_e1347 * (1f / _e1807)); } - let _e1812 = phi_5977_; + let _e1812 = phi_5133_; global_17 = vec4(((_e1812.x + 1f) * 0.5f), ((_e1812.y + 1f) * 0.5f), ((_e1812.z + 1f) * 0.5f), 1f); break; } case 7: { let _e1785 = sqrt(fma(_e116.z, _e116.z, fma(_e116.x, _e116.x, (_e116.y * _e116.y)))); if (_e1785 == 0f) { - phi_6026_ = vec3(0f, 0f, 0f); + phi_5084_ = vec3(0f, 0f, 0f); } else { - phi_6026_ = (_e116 * (1f / _e1785)); + phi_5084_ = (_e116 * (1f / _e1785)); } - let _e1790 = phi_6026_; + let _e1790 = phi_5084_; global_17 = vec4(((_e1790.x + 1f) * 0.5f), ((_e1790.y + 1f) * 0.5f), ((_e1790.z + 1f) * 0.5f), 1f); break; } case 8: { let _e1763 = sqrt(fma(_e117.z, _e117.z, fma(_e117.x, _e117.x, (_e117.y * _e117.y)))); if (_e1763 == 0f) { - phi_6075_ = vec3(0f, 0f, 0f); + phi_5035_ = vec3(0f, 0f, 0f); } else { - phi_6075_ = (_e117 * (1f / _e1763)); + phi_5035_ = (_e117 * (1f / _e1763)); } - let _e1768 = phi_6075_; + let _e1768 = phi_5035_; global_17 = vec4(((_e1768.x + 1f) * 0.5f), ((_e1768.y + 1f) * 0.5f), ((_e1768.z + 1f) * 0.5f), 1f); break; } diff --git a/crates/renderling/shaders/stage-renderlet_vertex.spv b/crates/renderling/shaders/stage-renderlet_vertex.spv index 0f24ad1fa0ecd2b2254ac73abf1f13685a558381..4c7b2b49b60a7be04dc707919dcf62e7e5242a05 100644 GIT binary patch literal 42508 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 XkMCrY`|P1-`}a!O`ulS?HctD0Q}~Lx literal 42508 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 diff --git a/crates/renderling/shaders/stage-renderlet_vertex.wgsl b/crates/renderling/shaders/stage-renderlet_vertex.wgsl index 4d9508db..8b8cf8fa 100644 --- a/crates/renderling/shaders/stage-renderlet_vertex.wgsl +++ b/crates/renderling/shaders/stage-renderlet_vertex.wgsl @@ -89,131 +89,131 @@ fn function() { var local_4: array; var local_5: array; var phi_743_: u32; - var phi_2848_: bool; + var phi_2896_: bool; var phi_750_: u32; var phi_751_: u32; var phi_761_: u32; var phi_843_: type_24; var phi_844_: type_24; - var phi_859_: type_24; - var phi_872_: bool; - var phi_878_: type_24; - var phi_879_: type_24; - var phi_894_: type_24; - var phi_908_: bool; - var phi_914_: type_24; - var phi_917_: type_30; - var phi_915_: type_24; - var phi_932_: type_24; - var phi_949_: u32; - var phi_2878_: bool; - var phi_967_: type_24; - var phi_2904_: u32; - var phi_2923_: bool; - var phi_1017_: type_33; - var phi_1027_: u32; - var phi_2945_: bool; - var phi_1035_: f32; - var phi_918_: type_30; - var phi_1088_: bool; + var phi_867_: type_24; + var phi_880_: bool; + var phi_886_: type_24; + var phi_887_: type_24; + var phi_910_: type_24; + var phi_924_: bool; + var phi_930_: type_24; + var phi_933_: type_30; + var phi_931_: type_24; + var phi_956_: type_24; + var phi_973_: u32; + var phi_2926_: bool; + var phi_991_: type_24; + var phi_2952_: u32; + var phi_2971_: bool; + var phi_1041_: type_33; + var phi_1051_: u32; + var phi_2993_: bool; + var phi_1059_: f32; + var phi_934_: type_30; + var phi_1112_: bool; var local_6: type_30; var local_7: type_30; var local_8: type_30; - var phi_2968_: bool; - var phi_1212_: type_34; + var phi_3016_: bool; + var phi_1236_: type_34; var local_9: type_30; - var phi_1215_: type_24; - var phi_1218_: type_20; - var phi_1216_: type_24; - var phi_1233_: type_24; + var phi_1239_: type_24; + var phi_1242_: type_20; + var phi_1240_: type_24; + var phi_1265_: type_24; var local_10: type_30; - var phi_1257_: u32; - var phi_3002_: bool; - var phi_1266_: u32; - var phi_3026_: bool; - var phi_1315_: type_27; - var phi_1325_: u32; - var phi_3051_: bool; - var phi_1398_: type_20; - var phi_1219_: type_20; - var phi_1635_: bool; - var phi_3867_: bool; + var phi_1289_: u32; + var phi_3050_: bool; + var phi_1298_: u32; + var phi_3074_: bool; + var phi_1347_: type_27; + var phi_1357_: u32; + var phi_3099_: bool; + var phi_1430_: type_20; + var phi_1243_: type_20; + var phi_1667_: bool; + var phi_3915_: bool; var local_11: type_20; var local_12: type_20; var local_13: type_20; var local_14: type_20; - var phi_1662_: bool; - var phi_1664_: bool; - var phi_1665_: bool; - var phi_1666_: bool; - var phi_1667_: bool; + var phi_1694_: bool; + var phi_1696_: bool; + var phi_1697_: bool; + var phi_1698_: bool; + var phi_1699_: bool; var local_15: type_20; var local_16: type_20; var local_17: type_20; var local_18: type_20; - var phi_1701_: bool; - var phi_1703_: bool; - var phi_1704_: bool; - var phi_1705_: bool; - var phi_1706_: bool; + var phi_1733_: bool; + var phi_1735_: bool; + var phi_1736_: bool; + var phi_1737_: bool; + var phi_1738_: bool; var local_19: type_20; var local_20: type_20; var local_21: type_20; var local_22: type_20; - var phi_1740_: bool; - var phi_1742_: bool; - var phi_1743_: bool; - var phi_1744_: bool; - var phi_1745_: bool; + var phi_1772_: bool; + var phi_1774_: bool; + var phi_1775_: bool; + var phi_1776_: bool; + var phi_1777_: bool; var local_23: type_20; var local_24: type_20; var local_25: type_20; var local_26: type_20; - var phi_1779_: bool; - var phi_1781_: bool; - var phi_1782_: bool; - var phi_1783_: bool; - var phi_1784_: bool; - var phi_1789_: bool; - var phi_1791_: bool; - var phi_1792_: bool; - var phi_1793_: bool; - var phi_1794_: bool; - var phi_1802_: type_20; - var phi_3188_: bool; - var phi_3251_: vec4; - var phi_3281_: vec4; - var phi_3283_: vec4; - var phi_3294_: type_27; - var phi_3295_: type_27; - var phi_3298_: type_27; - var phi_3299_: type_27; - var phi_3300_: bool; - var phi_3304_: type_27; - var phi_1804_: type_27; - var phi_1806_: type_27; - var phi_1807_: bool; - var phi_3398_: bool; - var phi_1860_: type_27; - var phi_1861_: type_27; + var phi_1811_: bool; + var phi_1813_: bool; + var phi_1814_: bool; + var phi_1815_: bool; + var phi_1816_: bool; + var phi_1821_: bool; + var phi_1823_: bool; + var phi_1824_: bool; + var phi_1825_: bool; + var phi_1826_: bool; + var phi_1834_: type_20; + var phi_3234_: bool; + var phi_3299_: vec4; + var phi_3329_: vec4; + var phi_3331_: vec4; + var phi_3340_: type_27; + var phi_3341_: type_27; + var phi_3346_: type_27; + var phi_3347_: type_27; + var phi_3348_: bool; + var phi_3352_: type_27; + var phi_1836_: type_27; + var phi_1838_: type_27; + var phi_1839_: bool; + var phi_3446_: bool; + var phi_1892_: type_27; + var phi_1893_: type_27; var local_27: type_30; - var phi_1905_: vec3; + var phi_1937_: vec3; var local_28: type_30; - var phi_3442_: vec3; - var phi_3524_: vec3; - var phi_3559_: vec3; + var phi_3490_: vec3; + var phi_3572_: vec3; + var phi_3607_: vec3; var local_29: type_30; var local_30: type_30; - var phi_3572_: bool; - var phi_2229_: type_24; - var phi_2230_: type_24; - var phi_2245_: type_24; - var phi_2272_: bool; - var phi_2278_: type_24; - var phi_2279_: type_24; - var phi_2294_: type_24; - var phi_2317_: bool; - var phi_2325_: type_22; + var phi_3620_: bool; + var phi_2261_: type_24; + var phi_2262_: type_24; + var phi_2285_: type_24; + var phi_2312_: bool; + var phi_2318_: type_24; + var phi_2319_: type_24; + var phi_2342_: type_24; + var phi_2365_: bool; + var phi_2373_: type_22; var local_31: type_20; switch bitcast(0u) { @@ -246,11 +246,11 @@ fn function() { } let _e155 = phi_743_; if (_e98 >= 1u) { - phi_2848_ = (_e155 <= (_e98 - 1u)); + phi_2896_ = (_e155 <= (_e98 - 1u)); } else { - phi_2848_ = false; + phi_2896_ = false; } - let _e160 = phi_2848_; + let _e160 = phi_2896_; if _e160 { let _e163 = global_2.member[_e155]; phi_750_ = _e163; @@ -291,30 +291,30 @@ fn function() { let _e270 = phi_843_; if (_e270.member < _e270.member_1) { phi_844_ = type_24((_e270.member + 1u), _e270.member_1); - phi_859_ = type_24(1u, _e270.member); + phi_867_ = type_24(1u, _e270.member); } else { phi_844_ = _e270; - phi_859_ = type_24(0u, type_24().member_1); + phi_867_ = type_24(0u, type_24().member_1); } let _e283 = phi_844_; - let _e285 = phi_859_; + let _e285 = phi_867_; switch bitcast(_e285.member) { case 0: { - phi_872_ = false; + phi_880_ = false; break; } case 1: { let _e292 = global_2.member[((_e172 + 18u) + _e285.member_1)]; local_5[_e285.member_1] = _e292; - phi_872_ = true; + phi_880_ = true; break; } default: { - phi_872_ = bool(); + phi_880_ = bool(); break; } } - let _e295 = phi_872_; + let _e295 = phi_880_; continue; continuing { phi_843_ = _e283; @@ -323,47 +323,47 @@ fn function() { } let _e297 = local_5; local_4 = array(0f, 0f, 0f, 0f); - phi_878_ = type_24(0u, 4u); + phi_886_ = type_24(0u, 4u); loop { - let _e300 = phi_878_; + let _e300 = phi_886_; if (_e300.member < _e300.member_1) { - phi_879_ = type_24((_e300.member + 1u), _e300.member_1); - phi_894_ = type_24(1u, _e300.member); + phi_887_ = type_24((_e300.member + 1u), _e300.member_1); + phi_910_ = type_24(1u, _e300.member); } else { - phi_879_ = _e300; - phi_894_ = type_24(0u, type_24().member_1); + phi_887_ = _e300; + phi_910_ = type_24(0u, type_24().member_1); } - let _e313 = phi_879_; - let _e315 = phi_894_; + let _e313 = phi_887_; + let _e315 = phi_910_; switch bitcast(_e315.member) { case 0: { - phi_908_ = false; + phi_924_ = false; break; } case 1: { let _e322 = global_2.member[((_e172 + 22u) + _e315.member_1)]; local_4[_e315.member_1] = bitcast(_e322); - phi_908_ = true; + phi_924_ = true; break; } default: { - phi_908_ = bool(); + phi_924_ = bool(); break; } } - let _e326 = phi_908_; + let _e326 = phi_924_; continue; continuing { - phi_878_ = _e313; + phi_886_ = _e313; break if !(_e326); } } let _e328 = local_4; - phi_914_ = type_24(0u, _e138); - phi_917_ = type_30(vec3(bitcast(_e175), bitcast(_e180), bitcast(_e185)), vec4(bitcast(_e191), bitcast(_e196), bitcast(_e201), bitcast(_e206)), vec3(bitcast(_e234), bitcast(_e239), bitcast(_e244)), vec4(bitcast(_e250), bitcast(_e255), bitcast(_e260), bitcast(_e265)), _e297, _e328, vec2(bitcast(_e212), bitcast(_e217)), vec2(bitcast(_e223), bitcast(_e228))); + phi_930_ = type_24(0u, _e138); + phi_933_ = type_30(vec3(bitcast(_e175), bitcast(_e180), bitcast(_e185)), vec4(bitcast(_e191), bitcast(_e196), bitcast(_e201), bitcast(_e206)), vec3(bitcast(_e234), bitcast(_e239), bitcast(_e244)), vec4(bitcast(_e250), bitcast(_e255), bitcast(_e260), bitcast(_e265)), _e297, _e328, vec2(bitcast(_e212), bitcast(_e217)), vec2(bitcast(_e223), bitcast(_e228))); loop { - let _e332 = phi_914_; - let _e334 = phi_917_; + let _e332 = phi_930_; + let _e334 = phi_933_; local_6 = _e334; local_7 = _e334; local_8 = _e334; @@ -374,53 +374,53 @@ fn function() { local_29 = _e334; local_30 = _e334; if (_e332.member < _e332.member_1) { - phi_915_ = type_24((_e332.member + 1u), _e332.member_1); - phi_932_ = type_24(1u, _e332.member); + phi_931_ = type_24((_e332.member + 1u), _e332.member_1); + phi_956_ = type_24(1u, _e332.member); } else { - phi_915_ = _e332; - phi_932_ = type_24(0u, type_24().member_1); + phi_931_ = _e332; + phi_956_ = type_24(0u, type_24().member_1); } - let _e347 = phi_915_; - let _e349 = phi_932_; + let _e347 = phi_931_; + let _e349 = phi_956_; switch bitcast(_e349.member) { case 0: { - phi_918_ = type_30(); - phi_1088_ = false; + phi_934_ = type_30(); + phi_1112_ = false; break; } case 1: { if (_e349.member_1 >= _e138) { - phi_949_ = 4294967295u; + phi_973_ = 4294967295u; } else { - phi_949_ = (_e134 + (2u * _e349.member_1)); + phi_973_ = (_e134 + (2u * _e349.member_1)); } - let _e357 = phi_949_; + let _e357 = phi_973_; if (_e98 >= 2u) { - phi_2878_ = (_e357 <= (_e98 - 2u)); + phi_2926_ = (_e357 <= (_e98 - 2u)); } else { - phi_2878_ = false; + phi_2926_ = false; } - let _e362 = phi_2878_; + let _e362 = phi_2926_; if _e362 { let _e365 = global_2.member[_e357]; let _e369 = global_2.member[(_e357 + 1u)]; - phi_967_ = type_24(_e365, _e369); + phi_991_ = type_24(_e365, _e369); } else { - phi_967_ = type_24(4294967295u, 0u); + phi_991_ = type_24(4294967295u, 0u); } - let _e372 = phi_967_; + let _e372 = phi_991_; if (_e167 >= _e372.member_1) { - phi_2904_ = 4294967295u; + phi_2952_ = 4294967295u; } else { - phi_2904_ = (_e372.member + (9u * _e167)); + phi_2952_ = (_e372.member + (9u * _e167)); } - let _e379 = phi_2904_; + let _e379 = phi_2952_; if (_e98 >= 9u) { - phi_2923_ = (_e379 <= (_e98 - 9u)); + phi_2971_ = (_e379 <= (_e98 - 9u)); } else { - phi_2923_ = false; + phi_2971_ = false; } - let _e384 = phi_2923_; + let _e384 = phi_2971_; if _e384 { let _e387 = global_2.member[_e379]; let _e392 = global_2.member[(_e379 + 1u)]; @@ -431,48 +431,48 @@ fn function() { let _e419 = global_2.member[(_e379 + 6u)]; let _e424 = global_2.member[(_e379 + 7u)]; let _e429 = global_2.member[(_e379 + 8u)]; - phi_1017_ = type_33(vec3(bitcast(_e387), bitcast(_e392), bitcast(_e397)), vec3(bitcast(_e403), bitcast(_e408), bitcast(_e413)), vec3(bitcast(_e419), bitcast(_e424), bitcast(_e429))); + phi_1041_ = type_33(vec3(bitcast(_e387), bitcast(_e392), bitcast(_e397)), vec3(bitcast(_e403), bitcast(_e408), bitcast(_e413)), vec3(bitcast(_e419), bitcast(_e424), bitcast(_e429))); } else { - phi_1017_ = type_33(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)); + phi_1041_ = type_33(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)); } - let _e434 = phi_1017_; + let _e434 = phi_1041_; if (_e349.member_1 >= _e146) { - phi_1027_ = 4294967295u; + phi_1051_ = 4294967295u; } else { - phi_1027_ = (_e142 + _e349.member_1); + phi_1051_ = (_e142 + _e349.member_1); } - let _e438 = phi_1027_; + let _e438 = phi_1051_; if (_e98 >= 1u) { - phi_2945_ = (_e438 <= (_e98 - 1u)); + phi_2993_ = (_e438 <= (_e98 - 1u)); } else { - phi_2945_ = false; + phi_2993_ = false; } - let _e443 = phi_2945_; + let _e443 = phi_2993_; if _e443 { let _e446 = global_2.member[_e438]; - phi_1035_ = bitcast(_e446); + phi_1059_ = bitcast(_e446); } else { - phi_1035_ = 0f; + phi_1059_ = 0f; } - let _e449 = phi_1035_; + let _e449 = phi_1059_; let _e472 = type_30(vec3(fma(_e449, _e434.member.x, _e334.member.x), fma(_e449, _e434.member.y, _e334.member.y), fma(_e449, _e434.member.z, _e334.member.z)), _e334.member_1, _e334.member_2, _e334.member_3, _e334.member_4, _e334.member_5, _e334.member_6, _e334.member_7); let _e495 = type_30(_e472.member, _e472.member_1, vec3(fma(_e449, _e434.member_1.x, _e334.member_2.x), fma(_e449, _e434.member_1.y, _e334.member_2.y), fma(_e449, _e434.member_1.z, _e334.member_2.z)), _e472.member_3, _e472.member_4, _e472.member_5, _e472.member_6, _e472.member_7); - phi_918_ = type_30(_e495.member, _e495.member_1, _e495.member_2, vec4(fma(_e449, _e434.member_2.x, _e334.member_3.x), fma(_e449, _e434.member_2.y, _e334.member_3.y), fma(_e449, _e434.member_2.z, _e334.member_3.z), _e334.member_3.w), _e495.member_4, _e495.member_5, _e495.member_6, _e495.member_7); - phi_1088_ = true; + phi_934_ = type_30(_e495.member, _e495.member_1, _e495.member_2, vec4(fma(_e449, _e434.member_2.x, _e334.member_3.x), fma(_e449, _e434.member_2.y, _e334.member_3.y), fma(_e449, _e434.member_2.z, _e334.member_3.z), _e334.member_3.w), _e495.member_4, _e495.member_5, _e495.member_6, _e495.member_7); + phi_1112_ = true; break; } default: { - phi_918_ = type_30(); - phi_1088_ = bool(); + phi_934_ = type_30(); + phi_1112_ = bool(); break; } } - let _e522 = phi_918_; - let _e524 = phi_1088_; + let _e522 = phi_934_; + let _e524 = phi_1112_; continue; continuing { - phi_914_ = _e347; - phi_917_ = _e522; + phi_930_ = _e347; + phi_933_ = _e522; break if !(_e524); } } @@ -487,28 +487,28 @@ fn function() { let _e541 = ((_e130 == 4294967295u) != true); if _e541 { if (_e98 >= 4u) { - phi_2968_ = (_e130 <= (_e98 - 4u)); + phi_3016_ = (_e130 <= (_e98 - 4u)); } else { - phi_2968_ = false; + phi_3016_ = false; } - let _e546 = phi_2968_; + let _e546 = phi_3016_; if _e546 { let _e549 = global_2.member[_e130]; let _e553 = global_2.member[(_e130 + 1u)]; let _e557 = global_2.member[(_e130 + 2u)]; let _e561 = global_2.member[(_e130 + 3u)]; - phi_1212_ = type_34(type_24(_e549, _e553), type_24(_e557, _e561)); + phi_1236_ = type_34(type_24(_e549, _e553), type_24(_e557, _e561)); } else { - phi_1212_ = type_34(type_24(4294967295u, 0u), type_24(4294967295u, 0u)); + phi_1236_ = type_34(type_24(4294967295u, 0u), type_24(4294967295u, 0u)); } - let _e566 = phi_1212_; + let _e566 = phi_1236_; let _e568 = local_9; local = _e568.member_5; - phi_1215_ = type_24(0u, 4u); - phi_1218_ = type_20(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f)); + phi_1239_ = type_24(0u, 4u); + phi_1242_ = type_20(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f)); loop { - let _e571 = phi_1215_; - let _e573 = phi_1218_; + let _e571 = phi_1239_; + let _e573 = phi_1242_; local_11 = _e573; local_12 = _e573; local_13 = _e573; @@ -527,18 +527,18 @@ fn function() { local_26 = _e573; local_31 = _e573; if (_e571.member < _e571.member_1) { - phi_1216_ = type_24((_e571.member + 1u), _e571.member_1); - phi_1233_ = type_24(1u, _e571.member); + phi_1240_ = type_24((_e571.member + 1u), _e571.member_1); + phi_1265_ = type_24(1u, _e571.member); } else { - phi_1216_ = _e571; - phi_1233_ = type_24(0u, type_24().member_1); + phi_1240_ = _e571; + phi_1265_ = type_24(0u, type_24().member_1); } - let _e586 = phi_1216_; - let _e588 = phi_1233_; + let _e586 = phi_1240_; + let _e588 = phi_1265_; switch bitcast(_e588.member) { case 0: { - phi_1219_ = type_20(); - phi_1635_ = false; + phi_1243_ = type_20(); + phi_1667_ = false; break; } case 1: { @@ -547,35 +547,35 @@ fn function() { let _e595 = (_e588.member_1 < 4u); if _e595 { } else { - phi_3867_ = true; + phi_3915_ = true; break; } let _e597 = local_1[_e588.member_1]; if (_e597 >= _e566.member.member_1) { - phi_1257_ = 4294967295u; + phi_1289_ = 4294967295u; } else { - phi_1257_ = (_e566.member.member + _e597); + phi_1289_ = (_e566.member.member + _e597); } - let _e605 = phi_1257_; + let _e605 = phi_1289_; if (_e98 >= 1u) { - phi_3002_ = (_e605 <= (_e98 - 1u)); + phi_3050_ = (_e605 <= (_e98 - 1u)); } else { - phi_3002_ = false; + phi_3050_ = false; } - let _e610 = phi_3002_; + let _e610 = phi_3050_; if _e610 { let _e613 = global_2.member[_e605]; - phi_1266_ = _e613; + phi_1298_ = _e613; } else { - phi_1266_ = 4294967295u; + phi_1298_ = 4294967295u; } - let _e615 = phi_1266_; + let _e615 = phi_1298_; if (_e98 >= 10u) { - phi_3026_ = (_e615 <= (_e98 - 10u)); + phi_3074_ = (_e615 <= (_e98 - 10u)); } else { - phi_3026_ = false; + phi_3074_ = false; } - let _e620 = phi_3026_; + let _e620 = phi_3074_; if _e620 { let _e623 = global_2.member[_e615]; let _e628 = global_2.member[(_e615 + 1u)]; @@ -587,23 +587,23 @@ fn function() { let _e660 = global_2.member[(_e615 + 7u)]; let _e665 = global_2.member[(_e615 + 8u)]; let _e670 = global_2.member[(_e615 + 9u)]; - phi_1315_ = type_27(vec3(bitcast(_e623), bitcast(_e628), bitcast(_e633)), vec4(bitcast(_e639), bitcast(_e644), bitcast(_e649), bitcast(_e654)), vec3(bitcast(_e660), bitcast(_e665), bitcast(_e670))); + phi_1347_ = type_27(vec3(bitcast(_e623), bitcast(_e628), bitcast(_e633)), vec4(bitcast(_e639), bitcast(_e644), bitcast(_e649), bitcast(_e654)), vec3(bitcast(_e660), bitcast(_e665), bitcast(_e670))); } else { - phi_1315_ = type_27(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); + phi_1347_ = type_27(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); } - let _e675 = phi_1315_; + let _e675 = phi_1347_; if (_e597 >= _e566.member_1.member_1) { - phi_1325_ = 4294967295u; + phi_1357_ = 4294967295u; } else { - phi_1325_ = (_e566.member_1.member + (16u * _e597)); + phi_1357_ = (_e566.member_1.member + (16u * _e597)); } - let _e684 = phi_1325_; + let _e684 = phi_1357_; if (_e98 >= 16u) { - phi_3051_ = (_e684 <= (_e98 - 16u)); + phi_3099_ = (_e684 <= (_e98 - 16u)); } else { - phi_3051_ = false; + phi_3099_ = false; } - let _e689 = phi_3051_; + let _e689 = phi_3099_; if _e689 { let _e692 = global_2.member[_e684]; let _e697 = global_2.member[(_e684 + 1u)]; @@ -621,11 +621,11 @@ fn function() { let _e760 = global_2.member[(_e684 + 13u)]; let _e765 = global_2.member[(_e684 + 14u)]; let _e770 = global_2.member[(_e684 + 15u)]; - phi_1398_ = type_20(vec4(bitcast(_e692), bitcast(_e697), bitcast(_e702), bitcast(_e707)), vec4(bitcast(_e713), bitcast(_e718), bitcast(_e723), bitcast(_e728)), vec4(bitcast(_e734), bitcast(_e739), bitcast(_e744), bitcast(_e749)), vec4(bitcast(_e755), bitcast(_e760), bitcast(_e765), bitcast(_e770))); + phi_1430_ = type_20(vec4(bitcast(_e692), bitcast(_e697), bitcast(_e702), bitcast(_e707)), vec4(bitcast(_e713), bitcast(_e718), bitcast(_e723), bitcast(_e728)), vec4(bitcast(_e734), bitcast(_e739), bitcast(_e744), bitcast(_e749)), vec4(bitcast(_e755), bitcast(_e760), bitcast(_e765), bitcast(_e770))); } else { - phi_1398_ = type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)); + phi_1430_ = type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)); } - let _e775 = phi_1398_; + let _e775 = phi_1430_; let _e783 = (_e675.member_1.x + _e675.member_1.x); let _e784 = (_e675.member_1.y + _e675.member_1.y); let _e785 = (_e675.member_1.z + _e675.member_1.z); @@ -638,31 +638,31 @@ fn function() { let _e814 = (vec4(fma(_e675.member_1.x, _e785, _e789), fma(_e675.member_1.y, _e785, -(_e788)), (1f - fma(_e675.member_1.x, _e783, (_e675.member_1.y * _e784))), 0f) * _e675.member_2.z); if _e595 { } else { - phi_3867_ = true; + phi_3915_ = true; break; } let _e919 = local[_e588.member_1]; - phi_1219_ = type_20((_e573.member + (vec4(fma(_e675.member.x, _e775.member.w, fma(_e814.x, _e775.member.z, fma(_e810.x, _e775.member.x, (_e812.x * _e775.member.y)))), fma(_e675.member.y, _e775.member.w, fma(_e814.y, _e775.member.z, fma(_e810.y, _e775.member.x, (_e812.y * _e775.member.y)))), fma(_e675.member.z, _e775.member.w, fma(_e814.z, _e775.member.z, fma(_e810.z, _e775.member.x, (_e812.z * _e775.member.y)))), (fma(_e814.w, _e775.member.z, fma(_e810.w, _e775.member.x, (_e812.w * _e775.member.y))) + _e775.member.w)) * _e919)), (_e573.member_1 + (vec4(fma(_e675.member.x, _e775.member_1.w, fma(_e814.x, _e775.member_1.z, fma(_e810.x, _e775.member_1.x, (_e812.x * _e775.member_1.y)))), fma(_e675.member.y, _e775.member_1.w, fma(_e814.y, _e775.member_1.z, fma(_e810.y, _e775.member_1.x, (_e812.y * _e775.member_1.y)))), fma(_e675.member.z, _e775.member_1.w, fma(_e814.z, _e775.member_1.z, fma(_e810.z, _e775.member_1.x, (_e812.z * _e775.member_1.y)))), (fma(_e814.w, _e775.member_1.z, fma(_e810.w, _e775.member_1.x, (_e812.w * _e775.member_1.y))) + _e775.member_1.w)) * _e919)), (_e573.member_2 + (vec4(fma(_e675.member.x, _e775.member_2.w, fma(_e814.x, _e775.member_2.z, fma(_e810.x, _e775.member_2.x, (_e812.x * _e775.member_2.y)))), fma(_e675.member.y, _e775.member_2.w, fma(_e814.y, _e775.member_2.z, fma(_e810.y, _e775.member_2.x, (_e812.y * _e775.member_2.y)))), fma(_e675.member.z, _e775.member_2.w, fma(_e814.z, _e775.member_2.z, fma(_e810.z, _e775.member_2.x, (_e812.z * _e775.member_2.y)))), (fma(_e814.w, _e775.member_2.z, fma(_e810.w, _e775.member_2.x, (_e812.w * _e775.member_2.y))) + _e775.member_2.w)) * _e919)), (_e573.member_3 + (vec4(fma(_e675.member.x, _e775.member_3.w, fma(_e814.x, _e775.member_3.z, fma(_e810.x, _e775.member_3.x, (_e812.x * _e775.member_3.y)))), fma(_e675.member.y, _e775.member_3.w, fma(_e814.y, _e775.member_3.z, fma(_e810.y, _e775.member_3.x, (_e812.y * _e775.member_3.y)))), fma(_e675.member.z, _e775.member_3.w, fma(_e814.z, _e775.member_3.z, fma(_e810.z, _e775.member_3.x, (_e812.z * _e775.member_3.y)))), (fma(_e814.w, _e775.member_3.z, fma(_e810.w, _e775.member_3.x, (_e812.w * _e775.member_3.y))) + _e775.member_3.w)) * _e919))); - phi_1635_ = true; + phi_1243_ = type_20((_e573.member + (vec4(fma(_e675.member.x, _e775.member.w, fma(_e814.x, _e775.member.z, fma(_e810.x, _e775.member.x, (_e812.x * _e775.member.y)))), fma(_e675.member.y, _e775.member.w, fma(_e814.y, _e775.member.z, fma(_e810.y, _e775.member.x, (_e812.y * _e775.member.y)))), fma(_e675.member.z, _e775.member.w, fma(_e814.z, _e775.member.z, fma(_e810.z, _e775.member.x, (_e812.z * _e775.member.y)))), (fma(_e814.w, _e775.member.z, fma(_e810.w, _e775.member.x, (_e812.w * _e775.member.y))) + _e775.member.w)) * _e919)), (_e573.member_1 + (vec4(fma(_e675.member.x, _e775.member_1.w, fma(_e814.x, _e775.member_1.z, fma(_e810.x, _e775.member_1.x, (_e812.x * _e775.member_1.y)))), fma(_e675.member.y, _e775.member_1.w, fma(_e814.y, _e775.member_1.z, fma(_e810.y, _e775.member_1.x, (_e812.y * _e775.member_1.y)))), fma(_e675.member.z, _e775.member_1.w, fma(_e814.z, _e775.member_1.z, fma(_e810.z, _e775.member_1.x, (_e812.z * _e775.member_1.y)))), (fma(_e814.w, _e775.member_1.z, fma(_e810.w, _e775.member_1.x, (_e812.w * _e775.member_1.y))) + _e775.member_1.w)) * _e919)), (_e573.member_2 + (vec4(fma(_e675.member.x, _e775.member_2.w, fma(_e814.x, _e775.member_2.z, fma(_e810.x, _e775.member_2.x, (_e812.x * _e775.member_2.y)))), fma(_e675.member.y, _e775.member_2.w, fma(_e814.y, _e775.member_2.z, fma(_e810.y, _e775.member_2.x, (_e812.y * _e775.member_2.y)))), fma(_e675.member.z, _e775.member_2.w, fma(_e814.z, _e775.member_2.z, fma(_e810.z, _e775.member_2.x, (_e812.z * _e775.member_2.y)))), (fma(_e814.w, _e775.member_2.z, fma(_e810.w, _e775.member_2.x, (_e812.w * _e775.member_2.y))) + _e775.member_2.w)) * _e919)), (_e573.member_3 + (vec4(fma(_e675.member.x, _e775.member_3.w, fma(_e814.x, _e775.member_3.z, fma(_e810.x, _e775.member_3.x, (_e812.x * _e775.member_3.y)))), fma(_e675.member.y, _e775.member_3.w, fma(_e814.y, _e775.member_3.z, fma(_e810.y, _e775.member_3.x, (_e812.y * _e775.member_3.y)))), fma(_e675.member.z, _e775.member_3.w, fma(_e814.z, _e775.member_3.z, fma(_e810.z, _e775.member_3.x, (_e812.z * _e775.member_3.y)))), (fma(_e814.w, _e775.member_3.z, fma(_e810.w, _e775.member_3.x, (_e812.w * _e775.member_3.y))) + _e775.member_3.w)) * _e919))); + phi_1667_ = true; break; } default: { - phi_1219_ = type_20(); - phi_1635_ = bool(); + phi_1243_ = type_20(); + phi_1667_ = bool(); break; } } - let _e934 = phi_1219_; - let _e936 = phi_1635_; + let _e934 = phi_1243_; + let _e936 = phi_1667_; continue; continuing { - phi_1215_ = _e586; - phi_1218_ = _e934; - phi_3867_ = false; + phi_1239_ = _e586; + phi_1242_ = _e934; + phi_3915_ = false; break if !(_e936); } } - let _e939 = phi_3867_; + let _e939 = phi_3915_; if _e939 { break; } @@ -678,27 +678,27 @@ fn function() { if _e963 { let _e965 = local_14; let _e970 = global_8.member[3u]; - phi_1662_ = (_e965.member.w == _e970); + phi_1694_ = (_e965.member.w == _e970); } else { - phi_1662_ = bool(); + phi_1694_ = bool(); } - let _e973 = phi_1662_; - phi_1664_ = _e973; - phi_1665_ = select(true, false, _e963); + let _e973 = phi_1694_; + phi_1696_ = _e973; + phi_1697_ = select(true, false, _e963); } else { - phi_1664_ = bool(); - phi_1665_ = true; + phi_1696_ = bool(); + phi_1697_ = true; } - let _e976 = phi_1664_; - let _e978 = phi_1665_; - phi_1666_ = _e976; - phi_1667_ = _e978; + let _e976 = phi_1696_; + let _e978 = phi_1697_; + phi_1698_ = _e976; + phi_1699_ = _e978; } else { - phi_1666_ = bool(); - phi_1667_ = true; + phi_1698_ = bool(); + phi_1699_ = true; } - let _e980 = phi_1666_; - let _e982 = phi_1667_; + let _e980 = phi_1698_; + let _e982 = phi_1699_; if select(_e980, false, _e982) { let _e985 = local_15; let _e990 = global_8.member_1[0u]; @@ -712,27 +712,27 @@ fn function() { if _e1007 { let _e1009 = local_18; let _e1014 = global_8.member_1[3u]; - phi_1701_ = (_e1009.member_1.w == _e1014); + phi_1733_ = (_e1009.member_1.w == _e1014); } else { - phi_1701_ = bool(); + phi_1733_ = bool(); } - let _e1017 = phi_1701_; - phi_1703_ = _e1017; - phi_1704_ = select(true, false, _e1007); + let _e1017 = phi_1733_; + phi_1735_ = _e1017; + phi_1736_ = select(true, false, _e1007); } else { - phi_1703_ = bool(); - phi_1704_ = true; + phi_1735_ = bool(); + phi_1736_ = true; } - let _e1020 = phi_1703_; - let _e1022 = phi_1704_; - phi_1705_ = _e1020; - phi_1706_ = _e1022; + let _e1020 = phi_1735_; + let _e1022 = phi_1736_; + phi_1737_ = _e1020; + phi_1738_ = _e1022; } else { - phi_1705_ = bool(); - phi_1706_ = true; + phi_1737_ = bool(); + phi_1738_ = true; } - let _e1024 = phi_1705_; - let _e1026 = phi_1706_; + let _e1024 = phi_1737_; + let _e1026 = phi_1738_; if select(_e1024, false, _e1026) { let _e1029 = local_19; let _e1034 = global_8.member_2[0u]; @@ -746,27 +746,27 @@ fn function() { if _e1051 { let _e1053 = local_22; let _e1058 = global_8.member_2[3u]; - phi_1740_ = (_e1053.member_2.w == _e1058); + phi_1772_ = (_e1053.member_2.w == _e1058); } else { - phi_1740_ = bool(); + phi_1772_ = bool(); } - let _e1061 = phi_1740_; - phi_1742_ = _e1061; - phi_1743_ = select(true, false, _e1051); + let _e1061 = phi_1772_; + phi_1774_ = _e1061; + phi_1775_ = select(true, false, _e1051); } else { - phi_1742_ = bool(); - phi_1743_ = true; + phi_1774_ = bool(); + phi_1775_ = true; } - let _e1064 = phi_1742_; - let _e1066 = phi_1743_; - phi_1744_ = _e1064; - phi_1745_ = _e1066; + let _e1064 = phi_1774_; + let _e1066 = phi_1775_; + phi_1776_ = _e1064; + phi_1777_ = _e1066; } else { - phi_1744_ = bool(); - phi_1745_ = true; + phi_1776_ = bool(); + phi_1777_ = true; } - let _e1068 = phi_1744_; - let _e1070 = phi_1745_; + let _e1068 = phi_1776_; + let _e1070 = phi_1777_; let _e1071 = select(_e1068, false, _e1070); if _e1071 { let _e1073 = local_23; @@ -781,55 +781,55 @@ fn function() { if _e1095 { let _e1097 = local_26; let _e1102 = global_8.member_3[3u]; - phi_1779_ = (_e1097.member_3.w == _e1102); + phi_1811_ = (_e1097.member_3.w == _e1102); } else { - phi_1779_ = bool(); + phi_1811_ = bool(); } - let _e1105 = phi_1779_; - phi_1781_ = _e1105; - phi_1782_ = select(true, false, _e1095); + let _e1105 = phi_1811_; + phi_1813_ = _e1105; + phi_1814_ = select(true, false, _e1095); } else { - phi_1781_ = bool(); - phi_1782_ = true; + phi_1813_ = bool(); + phi_1814_ = true; } - let _e1108 = phi_1781_; - let _e1110 = phi_1782_; - phi_1783_ = _e1108; - phi_1784_ = _e1110; + let _e1108 = phi_1813_; + let _e1110 = phi_1814_; + phi_1815_ = _e1108; + phi_1816_ = _e1110; } else { - phi_1783_ = bool(); - phi_1784_ = true; + phi_1815_ = bool(); + phi_1816_ = true; } - let _e1112 = phi_1783_; - let _e1114 = phi_1784_; - phi_1789_ = select(_e1112, false, _e1114); + let _e1112 = phi_1815_; + let _e1114 = phi_1816_; + phi_1821_ = select(_e1112, false, _e1114); } else { - phi_1789_ = bool(); + phi_1821_ = bool(); } - let _e1117 = phi_1789_; - phi_1791_ = _e1117; - phi_1792_ = select(true, false, _e1071); + let _e1117 = phi_1821_; + phi_1823_ = _e1117; + phi_1824_ = select(true, false, _e1071); } else { - phi_1791_ = bool(); - phi_1792_ = true; + phi_1823_ = bool(); + phi_1824_ = true; } - let _e1120 = phi_1791_; - let _e1122 = phi_1792_; - phi_1793_ = _e1120; - phi_1794_ = _e1122; + let _e1120 = phi_1823_; + let _e1122 = phi_1824_; + phi_1825_ = _e1120; + phi_1826_ = _e1122; } else { - phi_1793_ = bool(); - phi_1794_ = true; + phi_1825_ = bool(); + phi_1826_ = true; } - let _e1124 = phi_1793_; - let _e1126 = phi_1794_; + let _e1124 = phi_1825_; + let _e1126 = phi_1826_; if select(_e1124, false, _e1126) { - phi_1802_ = type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)); + phi_1834_ = type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)); } else { let _e2056 = local_31; - phi_1802_ = _e2056; + phi_1834_ = _e2056; } - let _e1129 = phi_1802_; + let _e1129 = phi_1834_; let _e1152 = fma(_e1129.member_2.z, _e1129.member_3.w, -((_e1129.member_2.w * _e1129.member_3.z))); let _e1155 = fma(_e1129.member_2.y, _e1129.member_3.w, -((_e1129.member_2.w * _e1129.member_3.y))); let _e1158 = fma(_e1129.member_2.y, _e1129.member_3.z, -((_e1129.member_2.z * _e1129.member_3.y))); @@ -838,19 +838,19 @@ fn function() { let _e1167 = fma(_e1129.member_2.x, _e1129.member_3.y, -((_e1129.member_2.y * _e1129.member_3.x))); let _e1189 = fma(-(_e1129.member.w), fma(_e1129.member_1.z, _e1167, fma(_e1129.member_1.x, _e1158, -((_e1129.member_1.y * _e1164)))), fma(_e1129.member.z, fma(_e1129.member_1.w, _e1167, fma(_e1129.member_1.x, _e1155, -((_e1129.member_1.y * _e1161)))), fma(_e1129.member.x, fma(_e1129.member_1.w, _e1158, fma(_e1129.member_1.y, _e1152, -((_e1129.member_1.z * _e1155)))), -((_e1129.member.y * fma(_e1129.member_1.w, _e1164, fma(_e1129.member_1.x, _e1152, -((_e1129.member_1.z * _e1161))))))))); if (_e1189 == 0f) { - phi_3298_ = type_27(vec3(1f, 1f, 1f), vec4(0f, 0f, 0f, 1f), vec3(0f, 0f, 0f)); - phi_3299_ = type_27(); - phi_3300_ = true; + phi_3346_ = type_27(vec3(1f, 1f, 1f), vec4(0f, 0f, 0f, 1f), vec3(0f, 0f, 0f)); + phi_3347_ = type_27(); + phi_3348_ = true; } else { let _e1198 = (sqrt(fma(_e1129.member.w, _e1129.member.w, fma(_e1129.member.z, _e1129.member.z, fma(_e1129.member.x, _e1129.member.x, (_e1129.member.y * _e1129.member.y))))) * select(-1f, 1f, (_e1189 >= 0f))); let _e1203 = sqrt(fma(_e1129.member_1.w, _e1129.member_1.w, fma(_e1129.member_1.z, _e1129.member_1.z, fma(_e1129.member_1.x, _e1129.member_1.x, (_e1129.member_1.y * _e1129.member_1.y))))); let _e1208 = sqrt(fma(_e1129.member_2.w, _e1129.member_2.w, fma(_e1129.member_2.z, _e1129.member_2.z, fma(_e1129.member_2.x, _e1129.member_2.x, (_e1129.member_2.y * _e1129.member_2.y))))); if (_e1198 != 0f) { - phi_3188_ = select(true, false, (_e1203 != 0f)); + phi_3234_ = select(true, false, (_e1203 != 0f)); } else { - phi_3188_ = true; + phi_3234_ = true; } - let _e1215 = phi_3188_; + let _e1215 = phi_3234_; let _e1216 = select((_e1208 != 0f), false, _e1215); if _e1216 { let _e1217 = (1f / _e1198); @@ -862,76 +862,76 @@ fn function() { let _e1223 = (_e1129.member_2.x * _e1219); let _e1224 = (_e1129.member_2.y * _e1219); if ((_e1129.member_2.z * _e1219) <= 0f) { - let _e1228 = fma(_e1129.member_1.y, _e1218, -(_e1220)); - let _e1230 = fma(-(_e1129.member_2.z), _e1219, 1f); - if (_e1228 <= 0f) { - let _e1232 = (_e1230 - _e1228); - let _e1234 = (0.5f / sqrt(_e1232)); - phi_3251_ = vec4((_e1232 * _e1234), (fma(_e1129.member.y, _e1217, _e1222) * _e1234), (fma(_e1129.member.z, _e1217, _e1223) * _e1234), (fma(_e1129.member_1.z, _e1218, -(_e1224)) * _e1234)); + let _e1259 = fma(_e1129.member_1.y, _e1218, -(_e1220)); + let _e1261 = fma(-(_e1129.member_2.z), _e1219, 1f); + if (_e1259 <= 0f) { + let _e1275 = (_e1261 - _e1259); + let _e1277 = (0.5f / sqrt(_e1275)); + phi_3329_ = vec4((_e1275 * _e1277), (fma(_e1129.member.y, _e1217, _e1222) * _e1277), (fma(_e1129.member.z, _e1217, _e1223) * _e1277), (fma(_e1129.member_1.z, _e1218, -(_e1224)) * _e1277)); } else { - let _e1244 = (_e1230 + _e1228); - let _e1246 = (0.5f / sqrt(_e1244)); - phi_3251_ = vec4((fma(_e1129.member.y, _e1217, _e1222) * _e1246), (_e1244 * _e1246), (fma(_e1129.member_1.z, _e1218, _e1224) * _e1246), (fma(_e1129.member_2.x, _e1219, -(_e1221)) * _e1246)); + let _e1263 = (_e1261 + _e1259); + let _e1265 = (0.5f / sqrt(_e1263)); + phi_3329_ = vec4((fma(_e1129.member.y, _e1217, _e1222) * _e1265), (_e1263 * _e1265), (fma(_e1129.member_1.z, _e1218, _e1224) * _e1265), (fma(_e1129.member_2.x, _e1219, -(_e1221)) * _e1265)); } - let _e1257 = phi_3251_; - phi_3283_ = _e1257; + let _e1288 = phi_3329_; + phi_3331_ = _e1288; } else { - let _e1258 = fma(_e1129.member_1.y, _e1218, _e1220); - let _e1259 = fma(_e1129.member_2.z, _e1219, 1f); - if (_e1258 <= 0f) { - let _e1261 = (_e1259 - _e1258); - let _e1263 = (0.5f / sqrt(_e1261)); - phi_3281_ = vec4((fma(_e1129.member.z, _e1217, _e1223) * _e1263), (fma(_e1129.member_1.z, _e1218, _e1224) * _e1263), (_e1261 * _e1263), (fma(_e1129.member.y, _e1217, -(_e1222)) * _e1263)); + let _e1227 = fma(_e1129.member_1.y, _e1218, _e1220); + let _e1228 = fma(_e1129.member_2.z, _e1219, 1f); + if (_e1227 <= 0f) { + let _e1244 = (_e1228 - _e1227); + let _e1246 = (0.5f / sqrt(_e1244)); + phi_3299_ = vec4((fma(_e1129.member.z, _e1217, _e1223) * _e1246), (fma(_e1129.member_1.z, _e1218, _e1224) * _e1246), (_e1244 * _e1246), (fma(_e1129.member.y, _e1217, -(_e1222)) * _e1246)); } else { - let _e1273 = (_e1259 + _e1258); - let _e1275 = (0.5f / sqrt(_e1273)); - phi_3281_ = vec4((fma(_e1129.member_1.z, _e1218, -(_e1224)) * _e1275), (fma(_e1129.member_2.x, _e1219, -(_e1221)) * _e1275), (fma(_e1129.member.y, _e1217, -(_e1222)) * _e1275), (_e1273 * _e1275)); + let _e1230 = (_e1228 + _e1227); + let _e1232 = (0.5f / sqrt(_e1230)); + phi_3299_ = vec4((fma(_e1129.member_1.z, _e1218, -(_e1224)) * _e1232), (fma(_e1129.member_2.x, _e1219, -(_e1221)) * _e1232), (fma(_e1129.member.y, _e1217, -(_e1222)) * _e1232), (_e1230 * _e1232)); } - let _e1288 = phi_3281_; - phi_3283_ = _e1288; + let _e1257 = phi_3299_; + phi_3331_ = _e1257; } - let _e1290 = phi_3283_; - phi_3294_ = type_27(vec3(_e1198, _e1203, _e1208), _e1290, vec3(_e1129.member_3.x, _e1129.member_3.y, _e1129.member_3.z)); - phi_3295_ = type_27(); + let _e1290 = phi_3331_; + phi_3340_ = type_27(vec3(_e1198, _e1203, _e1208), _e1290, vec3(_e1129.member_3.x, _e1129.member_3.y, _e1129.member_3.z)); + phi_3341_ = type_27(); } else { - phi_3294_ = type_27(); - phi_3295_ = type_27(vec3(1f, 1f, 1f), vec4(0f, 0f, 0f, 1f), vec3(0f, 0f, 0f)); + phi_3340_ = type_27(); + phi_3341_ = type_27(vec3(1f, 1f, 1f), vec4(0f, 0f, 0f, 1f), vec3(0f, 0f, 0f)); } - let _e1294 = phi_3294_; - let _e1296 = phi_3295_; - phi_3298_ = _e1296; - phi_3299_ = _e1294; - phi_3300_ = select(true, false, _e1216); + let _e1294 = phi_3340_; + let _e1296 = phi_3341_; + phi_3346_ = _e1296; + phi_3347_ = _e1294; + phi_3348_ = select(true, false, _e1216); } - let _e1299 = phi_3298_; - let _e1301 = phi_3299_; - let _e1303 = phi_3300_; + let _e1299 = phi_3346_; + let _e1301 = phi_3347_; + let _e1303 = phi_3348_; if _e1303 { - phi_3304_ = _e1299; + phi_3352_ = _e1299; } else { - phi_3304_ = _e1301; + phi_3352_ = _e1301; } - let _e1305 = phi_3304_; - phi_1804_ = type_27(_e1305.member_2, _e1305.member_1, _e1305.member); + let _e1305 = phi_3352_; + phi_1836_ = type_27(_e1305.member_2, _e1305.member_1, _e1305.member); } else { - phi_1804_ = type_27(); + phi_1836_ = type_27(); } - let _e1311 = phi_1804_; - phi_1806_ = _e1311; - phi_1807_ = select(true, false, _e541); + let _e1311 = phi_1836_; + phi_1838_ = _e1311; + phi_1839_ = select(true, false, _e541); } else { - phi_1806_ = type_27(); - phi_1807_ = true; + phi_1838_ = type_27(); + phi_1839_ = true; } - let _e1314 = phi_1806_; - let _e1316 = phi_1807_; + let _e1314 = phi_1838_; + let _e1316 = phi_1839_; if _e1316 { if (_e98 >= 10u) { - phi_3398_ = (_e126 <= (_e98 - 10u)); + phi_3446_ = (_e126 <= (_e98 - 10u)); } else { - phi_3398_ = false; + phi_3446_ = false; } - let _e1321 = phi_3398_; + let _e1321 = phi_3446_; if _e1321 { let _e1324 = global_2.member[_e126]; let _e1329 = global_2.member[(_e126 + 1u)]; @@ -943,32 +943,32 @@ fn function() { let _e1361 = global_2.member[(_e126 + 7u)]; let _e1366 = global_2.member[(_e126 + 8u)]; let _e1371 = global_2.member[(_e126 + 9u)]; - phi_1860_ = type_27(vec3(bitcast(_e1324), bitcast(_e1329), bitcast(_e1334)), vec4(bitcast(_e1340), bitcast(_e1345), bitcast(_e1350), bitcast(_e1355)), vec3(bitcast(_e1361), bitcast(_e1366), bitcast(_e1371))); + phi_1892_ = type_27(vec3(bitcast(_e1324), bitcast(_e1329), bitcast(_e1334)), vec4(bitcast(_e1340), bitcast(_e1345), bitcast(_e1350), bitcast(_e1355)), vec3(bitcast(_e1361), bitcast(_e1366), bitcast(_e1371))); } else { - phi_1860_ = type_27(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); + phi_1892_ = type_27(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); } - let _e1376 = phi_1860_; - phi_1861_ = _e1376; + let _e1376 = phi_1892_; + phi_1893_ = _e1376; } else { - phi_1861_ = _e1314; + phi_1893_ = _e1314; } - let _e1378 = phi_1861_; + let _e1378 = phi_1893_; let _e1387 = local_27; let _e1395 = sqrt(fma(_e1387.member_2.z, _e1387.member_2.z, fma(_e1387.member_2.x, _e1387.member_2.x, (_e1387.member_2.y * _e1387.member_2.y)))); if (_e1395 == 0f) { - phi_1905_ = vec3(0f, 0f, 0f); + phi_1937_ = vec3(0f, 0f, 0f); } else { - phi_1905_ = (_e1387.member_2 * (1f / _e1395)); + phi_1937_ = (_e1387.member_2 * (1f / _e1395)); } - let _e1400 = phi_1905_; + let _e1400 = phi_1937_; let _e1402 = local_28; let _e1411 = sqrt(fma(_e1402.member_3.z, _e1402.member_3.z, fma(_e1402.member_3.x, _e1402.member_3.x, (_e1402.member_3.y * _e1402.member_3.y)))); if (_e1411 == 0f) { - phi_3442_ = vec3(0f, 0f, 0f); + phi_3490_ = vec3(0f, 0f, 0f); } else { - phi_3442_ = (vec3(_e1402.member_3.x, _e1402.member_3.y, _e1402.member_3.z) * (1f / _e1411)); + phi_3490_ = (vec3(_e1402.member_3.x, _e1402.member_3.y, _e1402.member_3.z) * (1f / _e1411)); } - let _e1416 = phi_3442_; + let _e1416 = phi_3490_; let _e1423 = (_e1378.member_1.x + _e1378.member_1.x); let _e1424 = (_e1378.member_1.y + _e1378.member_1.y); let _e1425 = (_e1378.member_1.z + _e1378.member_1.z); @@ -987,22 +987,22 @@ fn function() { let _e1478 = fma(_e1451.z, _e1460, fma(_e1449.z, _e1456, (_e1450.z * _e1458))); let _e1483 = sqrt(fma(_e1478, _e1478, fma(_e1476, _e1476, (_e1477 * _e1477)))); if (_e1483 == 0f) { - phi_3524_ = vec3(0f, 0f, 0f); + phi_3572_ = vec3(0f, 0f, 0f); } else { - phi_3524_ = (vec3(_e1476, _e1477, _e1478) * (1f / _e1483)); + phi_3572_ = (vec3(_e1476, _e1477, _e1478) * (1f / _e1483)); } - let _e1488 = phi_3524_; + let _e1488 = phi_3572_; global_9 = _e1488; let _e1498 = fma(_e1451.x, _e1416.z, fma(_e1449.x, _e1416.x, (_e1450.x * _e1416.y))); let _e1499 = fma(_e1451.y, _e1416.z, fma(_e1449.y, _e1416.x, (_e1450.y * _e1416.y))); let _e1500 = fma(_e1451.z, _e1416.z, fma(_e1449.z, _e1416.x, (_e1450.z * _e1416.y))); let _e1505 = sqrt(fma(_e1500, _e1500, fma(_e1498, _e1498, (_e1499 * _e1499)))); if (_e1505 == 0f) { - phi_3559_ = vec3(0f, 0f, 0f); + phi_3607_ = vec3(0f, 0f, 0f); } else { - phi_3559_ = (vec3(_e1498, _e1499, _e1500) * (1f / _e1505)); + phi_3607_ = (vec3(_e1498, _e1499, _e1500) * (1f / _e1505)); } - let _e1510 = phi_3559_; + let _e1510 = phi_3607_; global_10 = _e1510; let _e1527 = local_29; let _e1531 = select(-1f, 1f, (_e1527.member_3.w >= 0f)); @@ -1013,11 +1013,11 @@ fn function() { let _e1553 = (_e1378.member.z + fma(_e1451.z, _e1537.member.z, fma(_e1450.z, _e1537.member.y, (_e1449.z * _e1537.member.x)))); global_12 = vec3(_e1551, _e1552, _e1553); if (_e98 >= 83u) { - phi_3572_ = (_e122 <= (_e98 - 83u)); + phi_3620_ = (_e122 <= (_e98 - 83u)); } else { - phi_3572_ = false; + phi_3620_ = false; } - let _e1559 = phi_3572_; + let _e1559 = phi_3620_; if _e1559 { let _e1562 = global_2.member[_e122]; let _e1567 = global_2.member[(_e122 + 1u)]; @@ -1055,21 +1055,21 @@ fn function() { let _e1737 = global_2.member[(_e122 + 33u)]; let _e1742 = global_2.member[(_e122 + 34u)]; local_3 = array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f)); - phi_2229_ = type_24(0u, 6u); + phi_2261_ = type_24(0u, 6u); loop { - let _e1747 = phi_2229_; + let _e1747 = phi_2261_; if (_e1747.member < _e1747.member_1) { - phi_2230_ = type_24((_e1747.member + 1u), _e1747.member_1); - phi_2245_ = type_24(1u, _e1747.member); + phi_2262_ = type_24((_e1747.member + 1u), _e1747.member_1); + phi_2285_ = type_24(1u, _e1747.member); } else { - phi_2230_ = _e1747; - phi_2245_ = type_24(0u, type_24().member_1); + phi_2262_ = _e1747; + phi_2285_ = type_24(0u, type_24().member_1); } - let _e1760 = phi_2230_; - let _e1762 = phi_2245_; + let _e1760 = phi_2262_; + let _e1762 = phi_2285_; switch bitcast(_e1762.member) { case 0: { - phi_2272_ = false; + phi_2312_ = false; break; } case 1: { @@ -1079,38 +1079,38 @@ fn function() { let _e1780 = global_2.member[(_e1767 + 2u)]; let _e1785 = global_2.member[(_e1767 + 3u)]; local_3[_e1762.member_1] = vec4(bitcast(_e1770), bitcast(_e1775), bitcast(_e1780), bitcast(_e1785)); - phi_2272_ = true; + phi_2312_ = true; break; } default: { - phi_2272_ = bool(); + phi_2312_ = bool(); break; } } - let _e1790 = phi_2272_; + let _e1790 = phi_2312_; continue; continuing { - phi_2229_ = _e1760; + phi_2261_ = _e1760; break if !(_e1790); } } let _e1792 = local_3; local_2 = array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)); - phi_2278_ = type_24(0u, 8u); + phi_2318_ = type_24(0u, 8u); loop { - let _e1795 = phi_2278_; + let _e1795 = phi_2318_; if (_e1795.member < _e1795.member_1) { - phi_2279_ = type_24((_e1795.member + 1u), _e1795.member_1); - phi_2294_ = type_24(1u, _e1795.member); + phi_2319_ = type_24((_e1795.member + 1u), _e1795.member_1); + phi_2342_ = type_24(1u, _e1795.member); } else { - phi_2279_ = _e1795; - phi_2294_ = type_24(0u, type_24().member_1); + phi_2319_ = _e1795; + phi_2342_ = type_24(0u, type_24().member_1); } - let _e1808 = phi_2279_; - let _e1810 = phi_2294_; + let _e1808 = phi_2319_; + let _e1810 = phi_2342_; switch bitcast(_e1810.member) { case 0: { - phi_2317_ = false; + phi_2365_ = false; break; } case 1: { @@ -1119,27 +1119,27 @@ fn function() { let _e1823 = global_2.member[(_e1815 + 1u)]; let _e1828 = global_2.member[(_e1815 + 2u)]; local_2[_e1810.member_1] = vec3(bitcast(_e1818), bitcast(_e1823), bitcast(_e1828)); - phi_2317_ = true; + phi_2365_ = true; break; } default: { - phi_2317_ = bool(); + phi_2365_ = bool(); break; } } - let _e1833 = phi_2317_; + let _e1833 = phi_2365_; continue; continuing { - phi_2278_ = _e1808; + phi_2318_ = _e1808; break if !(_e1833); } } let _e1835 = local_2; - phi_2325_ = type_22(type_20(vec4(bitcast(_e1562), bitcast(_e1567), bitcast(_e1572), bitcast(_e1577)), vec4(bitcast(_e1583), bitcast(_e1588), bitcast(_e1593), bitcast(_e1598)), vec4(bitcast(_e1604), bitcast(_e1609), bitcast(_e1614), bitcast(_e1619)), vec4(bitcast(_e1625), bitcast(_e1630), bitcast(_e1635), bitcast(_e1640))), type_20(vec4(bitcast(_e1647), bitcast(_e1652), bitcast(_e1657), bitcast(_e1662)), vec4(bitcast(_e1668), bitcast(_e1673), bitcast(_e1678), bitcast(_e1683)), vec4(bitcast(_e1689), bitcast(_e1694), bitcast(_e1699), bitcast(_e1704)), vec4(bitcast(_e1710), bitcast(_e1715), bitcast(_e1720), bitcast(_e1725))), type_21(_e1835, _e1792), vec3(bitcast(_e1732), bitcast(_e1737), bitcast(_e1742))); + phi_2373_ = type_22(type_20(vec4(bitcast(_e1562), bitcast(_e1567), bitcast(_e1572), bitcast(_e1577)), vec4(bitcast(_e1583), bitcast(_e1588), bitcast(_e1593), bitcast(_e1598)), vec4(bitcast(_e1604), bitcast(_e1609), bitcast(_e1614), bitcast(_e1619)), vec4(bitcast(_e1625), bitcast(_e1630), bitcast(_e1635), bitcast(_e1640))), type_20(vec4(bitcast(_e1647), bitcast(_e1652), bitcast(_e1657), bitcast(_e1662)), vec4(bitcast(_e1668), bitcast(_e1673), bitcast(_e1678), bitcast(_e1683)), vec4(bitcast(_e1689), bitcast(_e1694), bitcast(_e1699), bitcast(_e1704)), vec4(bitcast(_e1710), bitcast(_e1715), bitcast(_e1720), bitcast(_e1725))), type_21(_e1835, _e1792), vec3(bitcast(_e1732), bitcast(_e1737), bitcast(_e1742))); } else { - phi_2325_ = type_22(type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_21(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); + phi_2373_ = type_22(type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_20(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_21(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); } - let _e1839 = phi_2325_; + let _e1839 = phi_2373_; global_1 = vec4((fma(fma(_e1839.member.member_3.x, _e1839.member_1.member_2.w, fma(_e1839.member.member_2.x, _e1839.member_1.member_2.z, fma(_e1839.member.member.x, _e1839.member_1.member_2.x, (_e1839.member.member_1.x * _e1839.member_1.member_2.y)))), _e1553, fma(fma(_e1839.member.member_3.x, _e1839.member_1.member.w, fma(_e1839.member.member_2.x, _e1839.member_1.member.z, fma(_e1839.member.member.x, _e1839.member_1.member.x, (_e1839.member.member_1.x * _e1839.member_1.member.y)))), _e1551, (fma(_e1839.member.member_3.x, _e1839.member_1.member_1.w, fma(_e1839.member.member_2.x, _e1839.member_1.member_1.z, fma(_e1839.member.member.x, _e1839.member_1.member_1.x, (_e1839.member.member_1.x * _e1839.member_1.member_1.y)))) * _e1552))) + fma(_e1839.member.member_3.x, _e1839.member_1.member_3.w, fma(_e1839.member.member_2.x, _e1839.member_1.member_3.z, fma(_e1839.member.member.x, _e1839.member_1.member_3.x, (_e1839.member.member_1.x * _e1839.member_1.member_3.y))))), (fma(fma(_e1839.member.member_3.y, _e1839.member_1.member_2.w, fma(_e1839.member.member_2.y, _e1839.member_1.member_2.z, fma(_e1839.member.member.y, _e1839.member_1.member_2.x, (_e1839.member.member_1.y * _e1839.member_1.member_2.y)))), _e1553, fma(fma(_e1839.member.member_3.y, _e1839.member_1.member.w, fma(_e1839.member.member_2.y, _e1839.member_1.member.z, fma(_e1839.member.member.y, _e1839.member_1.member.x, (_e1839.member.member_1.y * _e1839.member_1.member.y)))), _e1551, (fma(_e1839.member.member_3.y, _e1839.member_1.member_1.w, fma(_e1839.member.member_2.y, _e1839.member_1.member_1.z, fma(_e1839.member.member.y, _e1839.member_1.member_1.x, (_e1839.member.member_1.y * _e1839.member_1.member_1.y)))) * _e1552))) + fma(_e1839.member.member_3.y, _e1839.member_1.member_3.w, fma(_e1839.member.member_2.y, _e1839.member_1.member_3.z, fma(_e1839.member.member.y, _e1839.member_1.member_3.x, (_e1839.member.member_1.y * _e1839.member_1.member_3.y))))), (fma(fma(_e1839.member.member_3.z, _e1839.member_1.member_2.w, fma(_e1839.member.member_2.z, _e1839.member_1.member_2.z, fma(_e1839.member.member.z, _e1839.member_1.member_2.x, (_e1839.member.member_1.z * _e1839.member_1.member_2.y)))), _e1553, fma(fma(_e1839.member.member_3.z, _e1839.member_1.member.w, fma(_e1839.member.member_2.z, _e1839.member_1.member.z, fma(_e1839.member.member.z, _e1839.member_1.member.x, (_e1839.member.member_1.z * _e1839.member_1.member.y)))), _e1551, (fma(_e1839.member.member_3.z, _e1839.member_1.member_1.w, fma(_e1839.member.member_2.z, _e1839.member_1.member_1.z, fma(_e1839.member.member.z, _e1839.member_1.member_1.x, (_e1839.member.member_1.z * _e1839.member_1.member_1.y)))) * _e1552))) + fma(_e1839.member.member_3.z, _e1839.member_1.member_3.w, fma(_e1839.member.member_2.z, _e1839.member_1.member_3.z, fma(_e1839.member.member.z, _e1839.member_1.member_3.x, (_e1839.member.member_1.z * _e1839.member_1.member_3.y))))), (fma(fma(_e1839.member.member_3.w, _e1839.member_1.member_2.w, fma(_e1839.member.member_2.w, _e1839.member_1.member_2.z, fma(_e1839.member.member.w, _e1839.member_1.member_2.x, (_e1839.member.member_1.w * _e1839.member_1.member_2.y)))), _e1553, fma(fma(_e1839.member.member_3.w, _e1839.member_1.member.w, fma(_e1839.member.member_2.w, _e1839.member_1.member.z, fma(_e1839.member.member.w, _e1839.member_1.member.x, (_e1839.member.member_1.w * _e1839.member_1.member.y)))), _e1551, (fma(_e1839.member.member_3.w, _e1839.member_1.member_1.w, fma(_e1839.member.member_2.w, _e1839.member_1.member_1.z, fma(_e1839.member.member.w, _e1839.member_1.member_1.x, (_e1839.member.member_1.w * _e1839.member_1.member_1.y)))) * _e1552))) + fma(_e1839.member.member_3.w, _e1839.member_1.member_3.w, fma(_e1839.member.member_2.w, _e1839.member_1.member_3.z, fma(_e1839.member.member.w, _e1839.member_1.member_3.x, (_e1839.member.member_1.w * _e1839.member_1.member_3.y)))))); } else { global_1 = vec4(10f, 10f, 10f, 1f); diff --git a/crates/renderling/shaders/tutorial-tutorial_slabbed_renderlet.spv b/crates/renderling/shaders/tutorial-tutorial_slabbed_renderlet.spv index bf7e54dc48fed0532dc6f5bdf3825f7060d5f377..203b6a8522e88839fcfa391b059a4de847b327ad 100644 GIT binary patch literal 19076 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�R_`oyB!GwRln>oXbbx@*r&BTh~BjAN`bp3{qN&!}5x^ch9B zXVk4T`VmF9XVk4TH5~=ErrI;Jh*Oh2;~49V=Lto(XVk4T`s||HGwRkEeNNHs8FlMS z&zuOhXX>-`Bx3p6GiNkh?U}RS>>0K6%sF6trgG=O*)x^90M4F~ORX1zvlsS^b(kai zMMbw~)Xf+D;-cF#>gJAqNzv^Yb?eCWxeV;OYtLLyoSN(z$5>}PZz#Gwqi&tiZ!Ee! zqi&tiZz{Syqi&t4X&%^`YR}w5oSN(z$5>}P?=8ALqi&ti?<=}Jqi&ti?=QMNqi&t4 zX)8X1`tR(uKZZ73?T=w_J`>f_AG?5k4pwdioX@_>?FzR?!=;IeMtpRL0j(MJ}& zZ=;(p`tC*d{n`2Ej=o3HS8sId$ht>?U3cw|Zpl_ex@&)&TISdvjoo>p}GL)|)~pI&tPL)|)~pHX!CL)|)4 z(^+6^s{L_snPY!A#yaD9Nzv^Ob?c0NY0>Qub?c0NS<&qeb?Zz`SAqSzn%W=p8m{)o zt#I~-TKeO5u>DcFJK^k)%H0iTf5@e-d%(3ntiv49?=8Chp>DqD_Z8j#P&aq<`-^UW zs9Q(Y{UF$N*Zz34%&|WlW1aDQtmyVf%cJOz7v26)x6aIeqUiRAx^x}2qMYliHtuy*FMYliHtuy+wMYliHtuxp7HL%y+zo`oM2AtQua&N+U-7EJt zoY!40`QCx6*WJJ0GDq}xi|%z-H(&Jkitcq+H+S^+i|%z-w~pwGitaV`@4~Dp`r@K{ zjn%Cw`jVo1jn%Cw`e#M=8mn7V{{FH%u{C%t!}WkOuh%bJPdIaV&BFD9)8Ff4&-gc} zE5NlHhEw{eH(ZM^+=>n7J)LoV8qRwl*LE#9pGl4nw+`6nQ03Nz^Vw6m{%}5T@ zfpfimFSIsuL?2M}iH&Z)=mU%Hd!h5q9eq&ICpWrvL?2Rg?xUYiE<#i9YEm(iAd;YCtJFuR5IL9&m Q?n+CvsV(7Gimf>Q0Rj=^x&QzG diff --git a/crates/renderling/shaders/tutorial-tutorial_slabbed_renderlet.wgsl b/crates/renderling/shaders/tutorial-tutorial_slabbed_renderlet.wgsl index e6cb321e..af3719af 100644 --- a/crates/renderling/shaders/tutorial-tutorial_slabbed_renderlet.wgsl +++ b/crates/renderling/shaders/tutorial-tutorial_slabbed_renderlet.wgsl @@ -61,28 +61,28 @@ fn function() { var local_2: array; var local_3: array; var phi_613_: u32; - var phi_1381_: bool; + var phi_1413_: bool; var phi_699_: type_22; var phi_700_: type_22; - var phi_715_: type_22; - var phi_728_: bool; - var phi_734_: type_22; - var phi_735_: type_22; - var phi_750_: type_22; - var phi_764_: bool; - var phi_768_: type_28; - var phi_1412_: bool; - var phi_819_: type_25; - var phi_1482_: bool; - var phi_980_: type_22; - var phi_981_: type_22; + var phi_723_: type_22; + var phi_736_: bool; + var phi_742_: type_22; + var phi_743_: type_22; + var phi_766_: type_22; + var phi_780_: bool; + var phi_784_: type_28; + var phi_1443_: bool; + var phi_835_: type_25; + var phi_1513_: bool; var phi_996_: type_22; - var phi_1023_: bool; - var phi_1029_: type_22; - var phi_1030_: type_22; - var phi_1045_: type_22; - var phi_1068_: bool; - var phi_1076_: type_20; + var phi_997_: type_22; + var phi_1020_: type_22; + var phi_1047_: bool; + var phi_1053_: type_22; + var phi_1054_: type_22; + var phi_1077_: type_22; + var phi_1100_: bool; + var phi_1108_: type_20; let _e76 = global_4; let _e77 = global; @@ -98,11 +98,11 @@ fn function() { } let _e100 = phi_613_; if (_e79 >= 26u) { - phi_1381_ = (_e100 <= (_e79 - 26u)); + phi_1413_ = (_e100 <= (_e79 - 26u)); } else { - phi_1381_ = false; + phi_1413_ = false; } - let _e105 = phi_1381_; + let _e105 = phi_1413_; if _e105 { let _e108 = global_1.member[_e100]; let _e113 = global_1.member[(_e100 + 1u)]; @@ -128,30 +128,30 @@ fn function() { let _e203 = phi_699_; if (_e203.member < _e203.member_1) { phi_700_ = type_22((_e203.member + 1u), _e203.member_1); - phi_715_ = type_22(1u, _e203.member); + phi_723_ = type_22(1u, _e203.member); } else { phi_700_ = _e203; - phi_715_ = type_22(0u, type_22().member_1); + phi_723_ = type_22(0u, type_22().member_1); } let _e216 = phi_700_; - let _e218 = phi_715_; + let _e218 = phi_723_; switch bitcast(_e218.member) { case 0: { - phi_728_ = false; + phi_736_ = false; break; } case 1: { let _e225 = global_1.member[((_e100 + 18u) + _e218.member_1)]; local_3[_e218.member_1] = _e225; - phi_728_ = true; + phi_736_ = true; break; } default: { - phi_728_ = bool(); + phi_736_ = bool(); break; } } - let _e228 = phi_728_; + let _e228 = phi_736_; continue; continuing { phi_699_ = _e216; @@ -160,54 +160,54 @@ fn function() { } let _e230 = local_3; local_2 = array(0f, 0f, 0f, 0f); - phi_734_ = type_22(0u, 4u); + phi_742_ = type_22(0u, 4u); loop { - let _e233 = phi_734_; + let _e233 = phi_742_; if (_e233.member < _e233.member_1) { - phi_735_ = type_22((_e233.member + 1u), _e233.member_1); - phi_750_ = type_22(1u, _e233.member); + phi_743_ = type_22((_e233.member + 1u), _e233.member_1); + phi_766_ = type_22(1u, _e233.member); } else { - phi_735_ = _e233; - phi_750_ = type_22(0u, type_22().member_1); + phi_743_ = _e233; + phi_766_ = type_22(0u, type_22().member_1); } - let _e246 = phi_735_; - let _e248 = phi_750_; + let _e246 = phi_743_; + let _e248 = phi_766_; switch bitcast(_e248.member) { case 0: { - phi_764_ = false; + phi_780_ = false; break; } case 1: { let _e255 = global_1.member[((_e100 + 22u) + _e248.member_1)]; local_2[_e248.member_1] = bitcast(_e255); - phi_764_ = true; + phi_780_ = true; break; } default: { - phi_764_ = bool(); + phi_780_ = bool(); break; } } - let _e259 = phi_764_; + let _e259 = phi_780_; continue; continuing { - phi_734_ = _e246; + phi_742_ = _e246; break if !(_e259); } } let _e261 = local_2; - phi_768_ = type_28(vec3(bitcast(_e108), bitcast(_e113), bitcast(_e118)), vec4(bitcast(_e124), bitcast(_e129), bitcast(_e134), bitcast(_e139)), vec3(bitcast(_e167), bitcast(_e172), bitcast(_e177)), vec4(bitcast(_e183), bitcast(_e188), bitcast(_e193), bitcast(_e198)), _e230, _e261, vec2(bitcast(_e145), bitcast(_e150)), vec2(bitcast(_e156), bitcast(_e161))); + phi_784_ = type_28(vec3(bitcast(_e108), bitcast(_e113), bitcast(_e118)), vec4(bitcast(_e124), bitcast(_e129), bitcast(_e134), bitcast(_e139)), vec3(bitcast(_e167), bitcast(_e172), bitcast(_e177)), vec4(bitcast(_e183), bitcast(_e188), bitcast(_e193), bitcast(_e198)), _e230, _e261, vec2(bitcast(_e145), bitcast(_e150)), vec2(bitcast(_e156), bitcast(_e161))); } else { - phi_768_ = type_28(vec3(0f, 0f, 0f), vec4(1f, 1f, 1f, 1f), vec3(0f, 0f, 1f), vec4(0f, 1f, 0f, 0f), array(0u, 0u, 0u, 0u), array(0f, 0f, 0f, 0f), vec2(0f, 0f), vec2(0f, 0f)); + phi_784_ = type_28(vec3(0f, 0f, 0f), vec4(1f, 1f, 1f, 1f), vec3(0f, 0f, 1f), vec4(0f, 1f, 0f, 0f), array(0u, 0u, 0u, 0u), array(0f, 0f, 0f, 0f), vec2(0f, 0f), vec2(0f, 0f)); } - let _e264 = phi_768_; + let _e264 = phi_784_; global_3 = _e264.member_1; if (_e79 >= 10u) { - phi_1412_ = (_e95 <= (_e79 - 10u)); + phi_1443_ = (_e95 <= (_e79 - 10u)); } else { - phi_1412_ = false; + phi_1443_ = false; } - let _e270 = phi_1412_; + let _e270 = phi_1443_; if _e270 { let _e273 = global_1.member[_e95]; let _e278 = global_1.member[(_e95 + 1u)]; @@ -219,11 +219,11 @@ fn function() { let _e310 = global_1.member[(_e95 + 7u)]; let _e315 = global_1.member[(_e95 + 8u)]; let _e320 = global_1.member[(_e95 + 9u)]; - phi_819_ = type_25(vec3(bitcast(_e273), bitcast(_e278), bitcast(_e283)), vec4(bitcast(_e289), bitcast(_e294), bitcast(_e299), bitcast(_e304)), vec3(bitcast(_e310), bitcast(_e315), bitcast(_e320))); + phi_835_ = type_25(vec3(bitcast(_e273), bitcast(_e278), bitcast(_e283)), vec4(bitcast(_e289), bitcast(_e294), bitcast(_e299), bitcast(_e304)), vec3(bitcast(_e310), bitcast(_e315), bitcast(_e320))); } else { - phi_819_ = type_25(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); + phi_835_ = type_25(vec3(0f, 0f, 0f), vec4(0f, 0f, 0f, 1f), vec3(1f, 1f, 1f)); } - let _e325 = phi_819_; + let _e325 = phi_835_; let _e333 = (_e325.member_1.x + _e325.member_1.x); let _e334 = (_e325.member_1.y + _e325.member_1.y); let _e335 = (_e325.member_1.z + _e325.member_1.z); @@ -235,11 +235,11 @@ fn function() { let _e362 = (vec4(fma(_e325.member_1.x, _e334, -(_e340)), (1f - fma(_e325.member_1.x, _e333, _e337)), fma(_e325.member_1.y, _e335, _e338), 0f) * _e325.member_2.y); let _e364 = (vec4(fma(_e325.member_1.x, _e335, _e339), fma(_e325.member_1.y, _e335, -(_e338)), (1f - fma(_e325.member_1.x, _e333, (_e325.member_1.y * _e334))), 0f) * _e325.member_2.z); if (_e79 >= 83u) { - phi_1482_ = (_e91 <= (_e79 - 83u)); + phi_1513_ = (_e91 <= (_e79 - 83u)); } else { - phi_1482_ = false; + phi_1513_ = false; } - let _e372 = phi_1482_; + let _e372 = phi_1513_; if _e372 { let _e375 = global_1.member[_e91]; let _e380 = global_1.member[(_e91 + 1u)]; @@ -277,21 +277,21 @@ fn function() { let _e550 = global_1.member[(_e91 + 33u)]; let _e555 = global_1.member[(_e91 + 34u)]; local_1 = array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f)); - phi_980_ = type_22(0u, 6u); + phi_996_ = type_22(0u, 6u); loop { - let _e560 = phi_980_; + let _e560 = phi_996_; if (_e560.member < _e560.member_1) { - phi_981_ = type_22((_e560.member + 1u), _e560.member_1); - phi_996_ = type_22(1u, _e560.member); + phi_997_ = type_22((_e560.member + 1u), _e560.member_1); + phi_1020_ = type_22(1u, _e560.member); } else { - phi_981_ = _e560; - phi_996_ = type_22(0u, type_22().member_1); + phi_997_ = _e560; + phi_1020_ = type_22(0u, type_22().member_1); } - let _e573 = phi_981_; - let _e575 = phi_996_; + let _e573 = phi_997_; + let _e575 = phi_1020_; switch bitcast(_e575.member) { case 0: { - phi_1023_ = false; + phi_1047_ = false; break; } case 1: { @@ -301,38 +301,38 @@ fn function() { let _e593 = global_1.member[(_e580 + 2u)]; let _e598 = global_1.member[(_e580 + 3u)]; local_1[_e575.member_1] = vec4(bitcast(_e583), bitcast(_e588), bitcast(_e593), bitcast(_e598)); - phi_1023_ = true; + phi_1047_ = true; break; } default: { - phi_1023_ = bool(); + phi_1047_ = bool(); break; } } - let _e603 = phi_1023_; + let _e603 = phi_1047_; continue; continuing { - phi_980_ = _e573; + phi_996_ = _e573; break if !(_e603); } } let _e605 = local_1; local = array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)); - phi_1029_ = type_22(0u, 8u); + phi_1053_ = type_22(0u, 8u); loop { - let _e608 = phi_1029_; + let _e608 = phi_1053_; if (_e608.member < _e608.member_1) { - phi_1030_ = type_22((_e608.member + 1u), _e608.member_1); - phi_1045_ = type_22(1u, _e608.member); + phi_1054_ = type_22((_e608.member + 1u), _e608.member_1); + phi_1077_ = type_22(1u, _e608.member); } else { - phi_1030_ = _e608; - phi_1045_ = type_22(0u, type_22().member_1); + phi_1054_ = _e608; + phi_1077_ = type_22(0u, type_22().member_1); } - let _e621 = phi_1030_; - let _e623 = phi_1045_; + let _e621 = phi_1054_; + let _e623 = phi_1077_; switch bitcast(_e623.member) { case 0: { - phi_1068_ = false; + phi_1100_ = false; break; } case 1: { @@ -341,27 +341,27 @@ fn function() { let _e636 = global_1.member[(_e628 + 1u)]; let _e641 = global_1.member[(_e628 + 2u)]; local[_e623.member_1] = vec3(bitcast(_e631), bitcast(_e636), bitcast(_e641)); - phi_1068_ = true; + phi_1100_ = true; break; } default: { - phi_1068_ = bool(); + phi_1100_ = bool(); break; } } - let _e646 = phi_1068_; + let _e646 = phi_1100_; continue; continuing { - phi_1029_ = _e621; + phi_1053_ = _e621; break if !(_e646); } } let _e648 = local; - phi_1076_ = type_20(type_18(vec4(bitcast(_e375), bitcast(_e380), bitcast(_e385), bitcast(_e390)), vec4(bitcast(_e396), bitcast(_e401), bitcast(_e406), bitcast(_e411)), vec4(bitcast(_e417), bitcast(_e422), bitcast(_e427), bitcast(_e432)), vec4(bitcast(_e438), bitcast(_e443), bitcast(_e448), bitcast(_e453))), type_18(vec4(bitcast(_e460), bitcast(_e465), bitcast(_e470), bitcast(_e475)), vec4(bitcast(_e481), bitcast(_e486), bitcast(_e491), bitcast(_e496)), vec4(bitcast(_e502), bitcast(_e507), bitcast(_e512), bitcast(_e517)), vec4(bitcast(_e523), bitcast(_e528), bitcast(_e533), bitcast(_e538))), type_19(_e648, _e605), vec3(bitcast(_e545), bitcast(_e550), bitcast(_e555))); + phi_1108_ = type_20(type_18(vec4(bitcast(_e375), bitcast(_e380), bitcast(_e385), bitcast(_e390)), vec4(bitcast(_e396), bitcast(_e401), bitcast(_e406), bitcast(_e411)), vec4(bitcast(_e417), bitcast(_e422), bitcast(_e427), bitcast(_e432)), vec4(bitcast(_e438), bitcast(_e443), bitcast(_e448), bitcast(_e453))), type_18(vec4(bitcast(_e460), bitcast(_e465), bitcast(_e470), bitcast(_e475)), vec4(bitcast(_e481), bitcast(_e486), bitcast(_e491), bitcast(_e496)), vec4(bitcast(_e502), bitcast(_e507), bitcast(_e512), bitcast(_e517)), vec4(bitcast(_e523), bitcast(_e528), bitcast(_e533), bitcast(_e538))), type_19(_e648, _e605), vec3(bitcast(_e545), bitcast(_e550), bitcast(_e555))); } else { - phi_1076_ = type_20(type_18(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_18(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_19(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); + phi_1108_ = type_20(type_18(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_18(vec4(1f, 0f, 0f, 0f), vec4(0f, 1f, 0f, 0f), vec4(0f, 0f, 1f, 0f), vec4(0f, 0f, 0f, 1f)), type_19(array, 8>(vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f), vec3(0f, 0f, 0f)), array, 6>(vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f), vec4(0f, 0f, 0f, 0f))), vec3(0f, 0f, 0f)); } - let _e652 = phi_1076_; + let _e652 = phi_1108_; let _e692 = fma(_e652.member.member_3.x, _e652.member_1.member.w, fma(_e652.member.member_2.x, _e652.member_1.member.z, fma(_e652.member.member.x, _e652.member_1.member.x, (_e652.member.member_1.x * _e652.member_1.member.y)))); let _e693 = fma(_e652.member.member_3.y, _e652.member_1.member.w, fma(_e652.member.member_2.y, _e652.member_1.member.z, fma(_e652.member.member.y, _e652.member_1.member.x, (_e652.member.member_1.y * _e652.member_1.member.y)))); let _e694 = fma(_e652.member.member_3.z, _e652.member_1.member.w, fma(_e652.member.member_2.z, _e652.member_1.member.z, fma(_e652.member.member.z, _e652.member_1.member.x, (_e652.member.member_1.z * _e652.member_1.member.y)))); diff --git a/crates/renderling/shaders/tutorial-tutorial_slabbed_vertices.spv b/crates/renderling/shaders/tutorial-tutorial_slabbed_vertices.spv index f33fafbc4d696f943fbf3a17f357fe50b70ef3bb..c9e9a6795bfdcf0bee26ab3b060801df6729592f 100644 GIT binary patch literal 5716 zcmZ9QXN(qA6ox-{7f?EiD3)~*69rdMKtPeQ2rQrpYfFs&u##wEVxpjlLfja;i6+(` z_AVAw>>Ue&1x4&#>?N_IqA~hBGxN&CiD%Dy%6-qdcg}n>(%dw>SEI*9jYeZY<8>9+ zphiY<_ns?0MC(k=^{&7do zI|+tHvAPA_1L=u$Hd+c_AMnV^-m!|A*GY6Iv}u>B|B-eb!-w92j5(U&>{!O3%P=C##)&6RJr zn$KG1O|ALtOJ7&bXCL~GsQG$TzGKnu$C~bMXJm71bsOT~SN%h{2fGyhMq>+N zyMndl&>mIU_UBrAZbtNPM%M1=VR%NP#S<%jbF49#oH6K~@mp^!;-zh!Jql}sJ+833 zr?hj<_AhPyI6v~Vf}Iy_`pljBhI>dpiVd-*qwO znnMxit1iamKMcuPL}yl;hue#VE3-sFJkwp*)L(2GhFh$jNPvm zUxnSjX1{_xpk}{{J+Nl4#`cYneqY1hv}Uit9)dlNUHUtKSzP`u{J~Rp8rt*ro-ah) ztM)YmH~^1z=-ctaZ*WLgdq5@56rF zmpPXr=GmLig+1?I)xHdD+$+Az!TL!3@7`R9(T#1)Gr8O#muF(^GUOt}Gf#dQwxdH6lSjXNLV|&?~v73+^5o@Te zVUD)3%+0L@E_pIHx8bw4vHCjKXKro>nkxgJqwB%ucc8;{12|m9!*wIrSh#Ki>kHS-;Ij4xu3PYh z%XqkM1se<3ZD4&}JO|Uzi;?RPYZyz7+rieDflj}7fK$VGYTOAnmKt|~^@VE*Sgx7q zaNP|Km+^4j12z_}d%^m`wG=FuzxUy~4_~;9hwFZ@v2Z;A))%e^!E*Vo2-idS!eu;M z4}*<`>k+WNE}nr==tmLvZNJtro;r_#t>Zf=bsoo;I>uAy39zx$c@nHITu*`J^8FRA zW%$BnJX}wMjfLwOus(mE{6=^dkzarKp99P9`!M{=@rB=b_@4(G3;znRzHqGs%jLT? zTrc1Ym+^4D2sRe3m%#ec>&syI^@o2ISbpEl;eQ2R_>G7ERj{$}uLkQ2*K1(8e6NRV z4Zd(057+BpW8r!OtS?+|g5~m?AY5wAL9#`@o;?tHWse6V142G6fBqDH{tpWU$~5i z>vOQNaD4&R7p^bCa`|l(uCMTg%XqlH1{(|4H(-5vKEDOK@3n|^jHk|bVC(qJHJNwA zB5c1ieFuDx_8p+kJNpN)->X-le?)#lexs|OD~u}E{(^R`I`8ja!LIj;Zyi`4l>F9} z-&?UXr4?@eQWAnOa=ROkcvJ>L?$CnRIh`ygKK!L|0`n(VomJo!72tZl)k zKmFx9#(&l@&-^-{yg3uk!S&W~y}c#Y3%?x3?9W*CzA?6OulP2pe7e1#o#@^e=6V)= z3~>F$Z?FEomE8|5?9U(ftImE0g1ygjXO;$mGfT!ZOPhj?b#N~xvSu@|GvQk2L)#qB z!d|Rp?YeDGb=$mk{2#^`cm{)Kq0O0scI|Am{kq0^l2h&dHsASkzVxf@bp(2IV)mAO z4#9So*C6(~kl0~}yhHK1UY&ch71&vpb8GZAh_k$Hg>e^aTd`fM&VAYr?0T>G+A5#! z%6M~T+d>h0WN1*|M<$DfEMn_ zANQ-yekX#x&vIv$_XcN{jc1l8fsN&Nak4SQ*`5pklpI?;}~$0d{`7s(%ldhP@cuZ!O=8{-!(s z=J_q-H-a^;M9Zc2z70iBC&%^jFGH@z=RKN+o`G%LOW!W&nb`Wh;_Iw@y5pNw`I_+M kT{9b>>&-Vlj+kfL6K%}3qrh{(*5$t<-lOvUjb{S#FN<(3uK)l5 literal 5716 zcmZ9QX^>Ub6@?$&4Js&zB7@PkkvIU2ARr)=LMsYls%#TemGX~)1S=>htCZwVP`i{k z{;)f&>eU&l4H)z%W~*9~j62DjQP-oHa&z05EB&9bA8Ub1lM%$Y%l9kX=dqD6~; zdDw3kAH8hJFBTtzLaW-{f$xtEz~;3&DsB*XT#0unIoHi2yDQ$k^Vuc#8dJL}@4Atg zTH?{)LTvO+pGL= zp238QZ?#5{+YM~2hVjG_+n;;wxgC?=npL~wN5f3Ui)R&m*H~j1Yo_4G!&`4E=4EW1 zJ*sG9JgtiRW_NR+?PYpdzei|-nZiFGtUKo!{$P9c zS0?hjo>*j<$mjesuz1*0q_xz~AnfJU0;k`GW$$RHB zcFycEv9oBr9eF<=p4YyO{d~CBxU)5|`h3`*y~Ml6bv{$gx)~<_`&JdLBjD`8+~=%U%YE)|#`5bqiS>UCcAwgQkGR%8 zR)D?i!!^GLpMxfX#b_I~Od+((j(laRhzD=Da5-ndI`G zm^hb&V#d-IeSsdeeQ3@@|l}Ig59UKbK_e3SXp&Z_u-lg zh%dy{6X)4q1n$6`8*As;UrcOnIa$A(FTvz8N0)+K--D0VW#DL;kJja2bJ6+}ST0(B z2G_MWYFz;rE%VX35^OG7e*w$&mUr4!;7c%Tm`jbnf~~P1KK=d;oEqj+{-+c5R0Go^cKfrR) zdJwFZ@6KpF1Q#vy(RvtcE?SR(<`7bJ2esEElaO zz-sv(kJgiL(J~*cr@-c-^)y&6TK@*C(AC)-abE zFMzG#?~2rT5iT{%r^ZWQbE)w%ST0(xfYn;v(E1Ntw9H5ARj|2etpm$N>ou@i{+>x+ zufs*le6-#Gn~T<)V7X|$1y*ZKL+fq0Xqk`Jf5GOW^$u7rpU-!}o_if;9rLO4Kd^QD zjkP!Lf@6vOUFkdI|9Ia4`n;px1N+fw|-u`Ce?dt%%{kX?@vR}Q=+x5<$^Chphm$CRQ z$XPq*7)`}KJ?TY;TrHMhnO!<^-93Wl!s4kvc6KF?_c*!^DN zMix#wvpkBxwdQ<&+nVI^Z03G|ZHK8Z&RIIa?(1P~=5YsN`P9uUca?Rn_pH`XPu=Vt z4gUTtXPrLx#QR_!d$Eoh$?XWXmO1sz|AnH%7aCV6F{4L{e1Z%9st99Y`VtJqADEw6RsAs)Zm}`Az`{4H=Ht!`j0Y8mc-YeYn t!byjlQMfj^ynFV9bHD4&Pb25O9Dq0H-ihFuVC(W global_4: u32; fn function() { var local: array; var local_1: array; - var phi_365_: bool; + var phi_381_: bool; var phi_148_: type_13; - var phi_391_: u32; - var phi_410_: bool; + var phi_407_: u32; + var phi_426_: bool; var phi_239_: type_13; var phi_240_: type_13; - var phi_255_: type_13; - var phi_268_: bool; - var phi_274_: type_13; - var phi_275_: type_13; - var phi_290_: type_13; - var phi_304_: bool; - var phi_308_: type_18; + var phi_263_: type_13; + var phi_276_: bool; + var phi_282_: type_13; + var phi_283_: type_13; + var phi_306_: type_13; + var phi_320_: bool; + var phi_324_: type_18; let _e45 = global_4; let _e46 = global; let _e48 = arrayLength((&global_1.member)); if (_e48 >= 2u) { - phi_365_ = (_e45 <= (_e48 - 2u)); + phi_381_ = (_e45 <= (_e48 - 2u)); } else { - phi_365_ = false; + phi_381_ = false; } - let _e53 = phi_365_; + let _e53 = phi_381_; if _e53 { let _e56 = global_1.member[_e45]; let _e60 = global_1.member[(_e45 + 1u)]; @@ -65,17 +65,17 @@ fn function() { } let _e63 = phi_148_; if (_e46 >= _e63.member_1) { - phi_391_ = 4294967295u; + phi_407_ = 4294967295u; } else { - phi_391_ = (_e63.member + (26u * _e46)); + phi_407_ = (_e63.member + (26u * _e46)); } - let _e70 = phi_391_; + let _e70 = phi_407_; if (_e48 >= 26u) { - phi_410_ = (_e70 <= (_e48 - 26u)); + phi_426_ = (_e70 <= (_e48 - 26u)); } else { - phi_410_ = false; + phi_426_ = false; } - let _e75 = phi_410_; + let _e75 = phi_426_; if _e75 { let _e78 = global_1.member[_e70]; let _e83 = global_1.member[(_e70 + 1u)]; @@ -101,30 +101,30 @@ fn function() { let _e173 = phi_239_; if (_e173.member < _e173.member_1) { phi_240_ = type_13((_e173.member + 1u), _e173.member_1); - phi_255_ = type_13(1u, _e173.member); + phi_263_ = type_13(1u, _e173.member); } else { phi_240_ = _e173; - phi_255_ = type_13(0u, type_13().member_1); + phi_263_ = type_13(0u, type_13().member_1); } let _e186 = phi_240_; - let _e188 = phi_255_; + let _e188 = phi_263_; switch bitcast(_e188.member) { case 0: { - phi_268_ = false; + phi_276_ = false; break; } case 1: { let _e195 = global_1.member[((_e70 + 18u) + _e188.member_1)]; local_1[_e188.member_1] = _e195; - phi_268_ = true; + phi_276_ = true; break; } default: { - phi_268_ = bool(); + phi_276_ = bool(); break; } } - let _e198 = phi_268_; + let _e198 = phi_276_; continue; continuing { phi_239_ = _e186; @@ -133,47 +133,47 @@ fn function() { } let _e200 = local_1; local = array(0f, 0f, 0f, 0f); - phi_274_ = type_13(0u, 4u); + phi_282_ = type_13(0u, 4u); loop { - let _e203 = phi_274_; + let _e203 = phi_282_; if (_e203.member < _e203.member_1) { - phi_275_ = type_13((_e203.member + 1u), _e203.member_1); - phi_290_ = type_13(1u, _e203.member); + phi_283_ = type_13((_e203.member + 1u), _e203.member_1); + phi_306_ = type_13(1u, _e203.member); } else { - phi_275_ = _e203; - phi_290_ = type_13(0u, type_13().member_1); + phi_283_ = _e203; + phi_306_ = type_13(0u, type_13().member_1); } - let _e216 = phi_275_; - let _e218 = phi_290_; + let _e216 = phi_283_; + let _e218 = phi_306_; switch bitcast(_e218.member) { case 0: { - phi_304_ = false; + phi_320_ = false; break; } case 1: { let _e225 = global_1.member[((_e70 + 22u) + _e218.member_1)]; local[_e218.member_1] = bitcast(_e225); - phi_304_ = true; + phi_320_ = true; break; } default: { - phi_304_ = bool(); + phi_320_ = bool(); break; } } - let _e229 = phi_304_; + let _e229 = phi_320_; continue; continuing { - phi_274_ = _e216; + phi_282_ = _e216; break if !(_e229); } } let _e231 = local; - phi_308_ = type_18(vec3(bitcast(_e78), bitcast(_e83), bitcast(_e88)), vec4(bitcast(_e94), bitcast(_e99), bitcast(_e104), bitcast(_e109)), vec3(bitcast(_e137), bitcast(_e142), bitcast(_e147)), vec4(bitcast(_e153), bitcast(_e158), bitcast(_e163), bitcast(_e168)), _e200, _e231, vec2(bitcast(_e115), bitcast(_e120)), vec2(bitcast(_e126), bitcast(_e131))); + phi_324_ = type_18(vec3(bitcast(_e78), bitcast(_e83), bitcast(_e88)), vec4(bitcast(_e94), bitcast(_e99), bitcast(_e104), bitcast(_e109)), vec3(bitcast(_e137), bitcast(_e142), bitcast(_e147)), vec4(bitcast(_e153), bitcast(_e158), bitcast(_e163), bitcast(_e168)), _e200, _e231, vec2(bitcast(_e115), bitcast(_e120)), vec2(bitcast(_e126), bitcast(_e131))); } else { - phi_308_ = type_18(vec3(0f, 0f, 0f), vec4(1f, 1f, 1f, 1f), vec3(0f, 0f, 1f), vec4(0f, 1f, 0f, 0f), array(0u, 0u, 0u, 0u), array(0f, 0f, 0f, 0f), vec2(0f, 0f), vec2(0f, 0f)); + phi_324_ = type_18(vec3(0f, 0f, 0f), vec4(1f, 1f, 1f, 1f), vec3(0f, 0f, 1f), vec4(0f, 1f, 0f, 0f), array(0u, 0u, 0u, 0u), array(0f, 0f, 0f, 0f), vec2(0f, 0f), vec2(0f, 0f)); } - let _e234 = phi_308_; + let _e234 = phi_324_; global_2 = vec4(_e234.member.x, _e234.member.y, _e234.member.z, 1f); global_3 = _e234.member_1; return; diff --git a/crates/renderling/shaders/tutorial-tutorial_slabbed_vertices_no_instance.spv b/crates/renderling/shaders/tutorial-tutorial_slabbed_vertices_no_instance.spv index 60ad158b48b23378ceff8a644eb3a531dbca373f..bba8dfb1a5020e67b2a7f771c79c0a4a531201ec 100644 GIT binary patch literal 5092 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 diff --git a/crates/renderling/shaders/tutorial-tutorial_slabbed_vertices_no_instance.wgsl b/crates/renderling/shaders/tutorial-tutorial_slabbed_vertices_no_instance.wgsl index fa14608c..49acbdde 100644 --- a/crates/renderling/shaders/tutorial-tutorial_slabbed_vertices_no_instance.wgsl +++ b/crates/renderling/shaders/tutorial-tutorial_slabbed_vertices_no_instance.wgsl @@ -32,26 +32,26 @@ var global_3: vec4; fn function() { var local: array; var local_1: array; - var phi_296_: bool; - var phi_179_: type_13; + var phi_312_: bool; var phi_180_: type_13; - var phi_195_: type_13; - var phi_208_: bool; - var phi_214_: type_13; - var phi_215_: type_13; - var phi_230_: type_13; - var phi_244_: bool; - var phi_248_: type_18; + var phi_181_: type_13; + var phi_204_: type_13; + var phi_217_: bool; + var phi_223_: type_13; + var phi_224_: type_13; + var phi_247_: type_13; + var phi_261_: bool; + var phi_265_: type_18; let _e42 = global; let _e44 = arrayLength((&global_1.member)); let _e45 = (_e42 * 26u); if (_e44 >= 26u) { - phi_296_ = (_e45 <= (_e44 - 26u)); + phi_312_ = (_e45 <= (_e44 - 26u)); } else { - phi_296_ = false; + phi_312_ = false; } - let _e50 = phi_296_; + let _e50 = phi_312_; if _e50 { let _e53 = global_1.member[_e45]; let _e58 = global_1.member[(_e45 + 1u)]; @@ -72,84 +72,84 @@ fn function() { let _e138 = global_1.member[(_e45 + 16u)]; let _e143 = global_1.member[(_e45 + 17u)]; local_1 = array(0u, 0u, 0u, 0u); - phi_179_ = type_13(0u, 4u); + phi_180_ = type_13(0u, 4u); loop { - let _e148 = phi_179_; + let _e148 = phi_180_; if (_e148.member < _e148.member_1) { - phi_180_ = type_13((_e148.member + 1u), _e148.member_1); - phi_195_ = type_13(1u, _e148.member); + phi_181_ = type_13((_e148.member + 1u), _e148.member_1); + phi_204_ = type_13(1u, _e148.member); } else { - phi_180_ = _e148; - phi_195_ = type_13(0u, type_13().member_1); + phi_181_ = _e148; + phi_204_ = type_13(0u, type_13().member_1); } - let _e161 = phi_180_; - let _e163 = phi_195_; + let _e161 = phi_181_; + let _e163 = phi_204_; switch bitcast(_e163.member) { case 0: { - phi_208_ = false; + phi_217_ = false; break; } case 1: { let _e170 = global_1.member[((_e45 + 18u) + _e163.member_1)]; local_1[_e163.member_1] = _e170; - phi_208_ = true; + phi_217_ = true; break; } default: { - phi_208_ = bool(); + phi_217_ = bool(); break; } } - let _e173 = phi_208_; + let _e173 = phi_217_; continue; continuing { - phi_179_ = _e161; + phi_180_ = _e161; break if !(_e173); } } let _e175 = local_1; local = array(0f, 0f, 0f, 0f); - phi_214_ = type_13(0u, 4u); + phi_223_ = type_13(0u, 4u); loop { - let _e178 = phi_214_; + let _e178 = phi_223_; if (_e178.member < _e178.member_1) { - phi_215_ = type_13((_e178.member + 1u), _e178.member_1); - phi_230_ = type_13(1u, _e178.member); + phi_224_ = type_13((_e178.member + 1u), _e178.member_1); + phi_247_ = type_13(1u, _e178.member); } else { - phi_215_ = _e178; - phi_230_ = type_13(0u, type_13().member_1); + phi_224_ = _e178; + phi_247_ = type_13(0u, type_13().member_1); } - let _e191 = phi_215_; - let _e193 = phi_230_; + let _e191 = phi_224_; + let _e193 = phi_247_; switch bitcast(_e193.member) { case 0: { - phi_244_ = false; + phi_261_ = false; break; } case 1: { let _e200 = global_1.member[((_e45 + 22u) + _e193.member_1)]; local[_e193.member_1] = bitcast(_e200); - phi_244_ = true; + phi_261_ = true; break; } default: { - phi_244_ = bool(); + phi_261_ = bool(); break; } } - let _e204 = phi_244_; + let _e204 = phi_261_; continue; continuing { - phi_214_ = _e191; + phi_223_ = _e191; break if !(_e204); } } let _e206 = local; - phi_248_ = type_18(vec3(bitcast(_e53), bitcast(_e58), bitcast(_e63)), vec4(bitcast(_e69), bitcast(_e74), bitcast(_e79), bitcast(_e84)), vec3(bitcast(_e112), bitcast(_e117), bitcast(_e122)), vec4(bitcast(_e128), bitcast(_e133), bitcast(_e138), bitcast(_e143)), _e175, _e206, vec2(bitcast(_e90), bitcast(_e95)), vec2(bitcast(_e101), bitcast(_e106))); + phi_265_ = type_18(vec3(bitcast(_e53), bitcast(_e58), bitcast(_e63)), vec4(bitcast(_e69), bitcast(_e74), bitcast(_e79), bitcast(_e84)), vec3(bitcast(_e112), bitcast(_e117), bitcast(_e122)), vec4(bitcast(_e128), bitcast(_e133), bitcast(_e138), bitcast(_e143)), _e175, _e206, vec2(bitcast(_e90), bitcast(_e95)), vec2(bitcast(_e101), bitcast(_e106))); } else { - phi_248_ = type_18(vec3(0f, 0f, 0f), vec4(1f, 1f, 1f, 1f), vec3(0f, 0f, 1f), vec4(0f, 1f, 0f, 0f), array(0u, 0u, 0u, 0u), array(0f, 0f, 0f, 0f), vec2(0f, 0f), vec2(0f, 0f)); + phi_265_ = type_18(vec3(0f, 0f, 0f), vec4(1f, 1f, 1f, 1f), vec3(0f, 0f, 1f), vec4(0f, 1f, 0f, 0f), array(0u, 0u, 0u, 0u), array(0f, 0f, 0f, 0f), vec2(0f, 0f), vec2(0f, 0f)); } - let _e209 = phi_248_; + let _e209 = phi_265_; global_2 = vec4(_e209.member.x, _e209.member.y, _e209.member.z, 1f); global_3 = _e209.member_1; return; diff --git a/crates/renderling/src/atlas/atlas_image.rs b/crates/renderling/src/atlas/atlas_image.rs index 1b474a8f..a9515ed5 100644 --- a/crates/renderling/src/atlas/atlas_image.rs +++ b/crates/renderling/src/atlas/atlas_image.rs @@ -150,11 +150,12 @@ impl AtlasImage { let decoder = image::codecs::hdr::HdrDecoder::new(bytes).context(ImageSnafu)?; let width = decoder.metadata().width; let height = decoder.metadata().height; - let pixels = decoder.read_image_hdr().unwrap(); + let img = image::DynamicImage::from_decoder(decoder).unwrap(); + let pixels = img.into_rgb32f(); // Add alpha data. let mut pixel_data: Vec = Vec::new(); - for pixel in pixels { + for pixel in pixels.pixels() { pixel_data.push(pixel[0]); pixel_data.push(pixel[1]); pixel_data.push(pixel[2]); @@ -181,14 +182,6 @@ impl AtlasImage { } } -pub fn u16_to_u8(c: u16) -> u8 { - ((c as f32 / 65535.0) * 255.0) as u8 -} - -pub fn f32_to_u8(c: f32) -> u8 { - (c / 255.0) as u8 -} - /// Interpret/convert the pixel data into rgba8 pixels. /// /// This applies the linear transfer function if `apply_linear_transfer` is @@ -290,6 +283,7 @@ pub fn convert_to_rgba8_bytes( .chunks_exact(4) .flat_map(|p| { if let [r, g, b, a] = p { + todo!("f32_to_u8 erroneously used, use f16_to_u8 instead"); [f32_to_u8(*r), f32_to_u8(*g), f32_to_u8(*b), f32_to_u8(*a)] } else { unreachable!() diff --git a/crates/renderling/src/build.rs b/crates/renderling/src/build.rs index c11bbd31..f2ae999e 100644 --- a/crates/renderling/src/build.rs +++ b/crates/renderling/src/build.rs @@ -1,163 +1,12 @@ -//! Generates linkage for shaders. -#![allow(unexpected_cfgs)] -use quote::quote; - -#[derive(Debug, serde::Deserialize)] -struct Linkage { - source_path: std::path::PathBuf, - entry_point: String, - wgsl_entry_point: String, -} - -impl core::fmt::Display for Linkage { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - let spv_source_path = self.source_path.clone(); - let spv_source_filename = spv_source_path.file_name().unwrap().to_str().unwrap(); - let spv_include_source_path = format!("../../shaders/{spv_source_filename}"); - - let wgsl_source_path = self.source_path.with_extension("wgsl"); - let wgsl_source_filename = wgsl_source_path.file_name().unwrap().to_str().unwrap(); - let wgsl_include_source_path = format!("../../shaders/{wgsl_source_filename}"); - - let Linkage { - source_path: _, - entry_point, - wgsl_entry_point, - } = self; - - let fn_name = self.fn_name(); - - let quote = quote! { - use crate::linkage::ShaderLinkage; - - #[cfg(not(target_arch = "wasm32"))] - mod target { - pub const ENTRY_POINT: &str = #entry_point; - - pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> { - wgpu::include_spirv!(#spv_include_source_path) - } - - pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", #fn_name); - super::ShaderLinkage { - entry_point: ENTRY_POINT, - module: device.create_shader_module(descriptor()).into() - } - } - } - #[cfg(target_arch = "wasm32")] - mod target { - pub const ENTRY_POINT: &str = #wgsl_entry_point; - - pub fn descriptor() -> wgpu::ShaderModuleDescriptor<'static> { - wgpu::include_wgsl!(#wgsl_include_source_path) - } - - pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", #fn_name); - super::ShaderLinkage { - entry_point: ENTRY_POINT, - module: device.create_shader_module(descriptor()).into() - } - } - } - - pub fn linkage(device: &wgpu::Device) -> ShaderLinkage { - target::linkage(device) - } - }; - - f.write_fmt(format_args!( - r#"#![allow(dead_code)] - //! Automatically generated by Renderling's `build.rs`. - {quote} - "#, - )) - } -} - -impl Linkage { - pub fn fn_name(&self) -> &str { - self.entry_point.split("::").last().unwrap() - } -} - -fn wgsl(spv_filepath: impl AsRef, destination: impl AsRef) { - let bytes = std::fs::read(spv_filepath.as_ref()).unwrap_or_else(|e| { - panic!( - "could not read spv filepath '{}' while attempting to translate to wgsl: {e}", - spv_filepath.as_ref().display() - ); - }); - let opts = naga::front::spv::Options::default(); - let module = naga::front::spv::parse_u8_slice(&bytes, &opts).unwrap(); - let mut validator = - naga::valid::Validator::new(Default::default(), naga::valid::Capabilities::empty()); - let info = validator.validate(&module).unwrap(); - let wgsl = - naga::back::wgsl::write_string(&module, &info, naga::back::wgsl::WriterFlags::empty()) - .unwrap(); - let destination = destination.as_ref().with_extension("wgsl"); - std::fs::write(destination, wgsl).unwrap(); -} - -/// Generate linkage (Rust source) files for each shader in the manifest. -fn generate_linkage() { - println!("{:#?}", std::env::vars().collect::>()); - let cargo_manifest_dir = std::path::PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").unwrap()); - let shader_dir = cargo_manifest_dir.join("shaders"); - assert!( - shader_dir.is_dir(), - "missing directory '{}', you must first compile the shaders", - shader_dir.display() - ); - println!("cargo:rerun-if-changed={}", shader_dir.display()); - - let shader_manifest = cargo_manifest_dir.join("shaders/manifest.json"); - assert!( - shader_manifest.is_file(), - "missing file '{}', you must first compile the shaders", - shader_manifest.display() - ); - let linkage_dir = cargo_manifest_dir.join("src/linkage"); - assert!( - linkage_dir.is_dir(), - "missing crates/renderling/src/linkage" - ); - - println!("cwd: {:?}", std::env::current_dir().unwrap()); - - let manifest_file = std::fs::File::open(&shader_manifest).unwrap(); - let manifest: Vec = serde_json::from_reader(manifest_file).unwrap(); - let mut set = std::collections::HashSet::new(); - for linkage in manifest.into_iter() { - println!("linkage: {linkage:#?}"); - let fn_name = linkage.fn_name(); - - if set.contains(fn_name) { - panic!("Shader name '{fn_name}' is used for two or more shaders, aborting!"); - } - set.insert(fn_name.to_string()); - - let absolute_source_path = shader_dir.join(linkage.source_path.file_name().unwrap()); - let wgsl_source_path = linkage.source_path.with_extension("wgsl"); - let absolute_wgsl_source_path = shader_dir.join(wgsl_source_path.file_name().unwrap()); - wgsl(absolute_source_path, absolute_wgsl_source_path); - - let filepath = linkage_dir.join(fn_name).with_extension("rs"); - println!("filepath: {}", filepath.display()); - let contents = linkage.to_string(); - std::fs::write(&filepath, contents).unwrap(); - std::process::Command::new("rustfmt") - .args([&format!("{}", filepath.display())]) - .output() - .expect("could not format generated code"); - } -} +//! Generates linkage for shaders and sets up cfg aliases. fn main() { if std::env::var("CARGO_CFG_TARGET_ARCH").as_deref() != Ok("spirv") { - generate_linkage(); + renderling_build::generate_linkage(); + } + + cfg_aliases::cfg_aliases! { + cpu: { not(target_arch = "spirv") }, + gpu: { target_arch = "spirv" }, } } diff --git a/crates/renderling/src/color.rs b/crates/renderling/src/color.rs index 666929e5..574fc9bc 100644 --- a/crates/renderling/src/color.rs +++ b/crates/renderling/src/color.rs @@ -17,11 +17,24 @@ pub fn linear_xfer_u16(c: &mut u16) { } #[cfg(not(target_arch = "spirv"))] -pub fn linear_xfer_f16(c: &mut u16) { - let mut f = half::f16::from_bits(*c).to_f32(); - linear_xfer_f32(&mut f); - *c = half::f16::from_f32(f).to_bits(); +mod cpu { + pub fn linear_xfer_f16(c: &mut u16) { + let mut f = half::f16::from_bits(*c).to_f32(); + super::linear_xfer_f32(&mut f); + *c = half::f16::from_f32(f).to_bits(); + } + + pub fn u16_to_u8(c: u16) -> u8 { + ((c as f32 / 65535.0) * 255.0) as u8 + } + + pub fn f32_to_u8(c: f32) -> u8 { + // TODO: figure out if this is the correct impl of f32_to_u8 + (c / 255.0) as u8 + } } +#[cfg(not(target_arch = "spirv"))] +pub use cpu::*; pub fn linear_xfer_f32(c: &mut f32) { *c = c.powf(2.2); diff --git a/crates/renderling/src/cull/cpu.rs b/crates/renderling/src/cull/cpu.rs index 41924b13..5c369db9 100644 --- a/crates/renderling/src/cull/cpu.rs +++ b/crates/renderling/src/cull/cpu.rs @@ -294,30 +294,30 @@ impl DepthPyramid { pub async fn read_images( &self, ctx: &crate::Context, - ) -> Result, Vec>>, CullingError> { + ) -> Result, CullingError> { let size = self.size(); let slab_data = self.slab.read(ctx, Self::LABEL, 0..).await?; let mut images = vec![]; let mut min = f32::MAX; let mut max = f32::MIN; for (i, mip) in self.mip_data.iter().enumerate() { - let depth_data: Vec = slab_data + let depth_data: Vec = slab_data .read_vec(mip.array()) .into_iter() - .inspect(|&depth| { + .map(|depth: f32| { if i == 0 { min = min.min(depth); max = max.max(depth); } + crate::color::f32_to_u8(depth) }) .collect(); log::info!("min: {min}"); log::info!("max: {max}"); let width = size.x >> i; let height = size.y >> i; - let image: image::ImageBuffer, Vec> = - image::ImageBuffer::from_raw(width, height, depth_data) - .context(ReadMipSnafu { index: i })?; + let image = image::GrayImage::from_raw(width, height, depth_data) + .context(ReadMipSnafu { index: i })?; images.push(image); } Ok(images) @@ -991,24 +991,7 @@ mod test { // save the normalized depth image let mut depth_img = stage.get_depth_texture().read_image().unwrap(); - let mut max = Vec3::MIN; - let mut min = Vec3::MAX; - depth_img.as_rgb32f().unwrap().pixels().for_each(|c| { - let v = Vec3::from(c.0); - max = max.max(v); - min = min.min(v); - }); - let total = max.x - min.x; - depth_img - .as_mut_rgb32f() - .unwrap() - .pixels_mut() - .for_each(|c| { - let comps = c.0.map(|u| (u - min.x) / total); - c.0 = comps; - }); - log::info!("min: {min}"); - log::info!("max: {max}"); + img_diff::normalize_gray_img(&mut depth_img); img_diff::save("cull/debugging_4_depth.png", depth_img); // save the normalized pyramid images @@ -1024,9 +1007,7 @@ mod test { ) .unwrap(); for (i, mut img) in pyramid_images.into_iter().enumerate() { - img.pixels_mut().for_each(|p| { - p.0[0] = (p.0[0] - min.x) / total; - }); + img_diff::normalize_gray_img(&mut img); img_diff::save(&format!("cull/debugging_pyramid_mip_{i}.png"), img); } diff --git a/crates/renderling/src/draw/cpu.rs b/crates/renderling/src/draw/cpu.rs index ddc574e8..4f131776 100644 --- a/crates/renderling/src/draw/cpu.rs +++ b/crates/renderling/src/draw/cpu.rs @@ -110,7 +110,7 @@ impl IndirectDraws { pub async fn read_hzb_images( &self, ctx: &crate::Context, - ) -> Result, Vec>>, CullingError> { + ) -> Result, CullingError> { self.compute_culling .compute_depth_pyramid .depth_pyramid diff --git a/crates/renderling/src/linkage/bloom_downsample_fragment.rs b/crates/renderling/src/linkage/bloom_downsample_fragment.rs index 2b09fdae..124add10 100644 --- a/crates/renderling/src/linkage/bloom_downsample_fragment.rs +++ b/crates/renderling/src/linkage/bloom_downsample_fragment.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/bloom-bloom_downsample_fragment.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "bloom_downsample_fragment" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/bloom-bloom_downsample_fragment.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "bloom_downsample_fragment"); + log::debug!("creating web linkage for {}", "bloom_downsample_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/bloom_mix_fragment.rs b/crates/renderling/src/linkage/bloom_mix_fragment.rs index a1691afe..9bcd9325 100644 --- a/crates/renderling/src/linkage/bloom_mix_fragment.rs +++ b/crates/renderling/src/linkage/bloom_mix_fragment.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/bloom-bloom_mix_fragment.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "bloom_mix_fragment"); + log::debug!("creating native linkage for {}", "bloom_mix_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/bloom-bloom_mix_fragment.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "bloom_mix_fragment"); + log::debug!("creating web linkage for {}", "bloom_mix_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/bloom_upsample_fragment.rs b/crates/renderling/src/linkage/bloom_upsample_fragment.rs index b564d3ab..5884452b 100644 --- a/crates/renderling/src/linkage/bloom_upsample_fragment.rs +++ b/crates/renderling/src/linkage/bloom_upsample_fragment.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/bloom-bloom_upsample_fragment.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "bloom_upsample_fragment"); + log::debug!("creating native linkage for {}", "bloom_upsample_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/bloom-bloom_upsample_fragment.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "bloom_upsample_fragment"); + log::debug!("creating web linkage for {}", "bloom_upsample_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/bloom_vertex.rs b/crates/renderling/src/linkage/bloom_vertex.rs index 788c68d7..20417c46 100644 --- a/crates/renderling/src/linkage/bloom_vertex.rs +++ b/crates/renderling/src/linkage/bloom_vertex.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/bloom-bloom_vertex.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "bloom_vertex"); + log::debug!("creating native linkage for {}", "bloom_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/bloom-bloom_vertex.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "bloom_vertex"); + log::debug!("creating web linkage for {}", "bloom_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/brdf_lut_convolution_fragment.rs b/crates/renderling/src/linkage/brdf_lut_convolution_fragment.rs index 70616eda..47cf8a95 100644 --- a/crates/renderling/src/linkage/brdf_lut_convolution_fragment.rs +++ b/crates/renderling/src/linkage/brdf_lut_convolution_fragment.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/convolution-brdf_lut_convolution_fragment.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "brdf_lut_convolution_fragment" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/convolution-brdf_lut_convolution_fragment.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating web linkage for {}", "brdf_lut_convolution_fragment" ); diff --git a/crates/renderling/src/linkage/brdf_lut_convolution_vertex.rs b/crates/renderling/src/linkage/brdf_lut_convolution_vertex.rs index 9b568294..2ada2506 100644 --- a/crates/renderling/src/linkage/brdf_lut_convolution_vertex.rs +++ b/crates/renderling/src/linkage/brdf_lut_convolution_vertex.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/convolution-brdf_lut_convolution_vertex.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "brdf_lut_convolution_vertex" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/convolution-brdf_lut_convolution_vertex.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "brdf_lut_convolution_vertex"); + log::debug!("creating web linkage for {}", "brdf_lut_convolution_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/compute_copy_depth_to_pyramid.rs b/crates/renderling/src/linkage/compute_copy_depth_to_pyramid.rs index 54ddddda..fa419158 100644 --- a/crates/renderling/src/linkage/compute_copy_depth_to_pyramid.rs +++ b/crates/renderling/src/linkage/compute_copy_depth_to_pyramid.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/cull-compute_copy_depth_to_pyramid.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "compute_copy_depth_to_pyramid" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/cull-compute_copy_depth_to_pyramid.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating web linkage for {}", "compute_copy_depth_to_pyramid" ); diff --git a/crates/renderling/src/linkage/compute_copy_depth_to_pyramid_multisampled.rs b/crates/renderling/src/linkage/compute_copy_depth_to_pyramid_multisampled.rs index 7d544ce3..707b4fc0 100644 --- a/crates/renderling/src/linkage/compute_copy_depth_to_pyramid_multisampled.rs +++ b/crates/renderling/src/linkage/compute_copy_depth_to_pyramid_multisampled.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/cull-compute_copy_depth_to_pyramid_multisampled.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "compute_copy_depth_to_pyramid_multisampled" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/cull-compute_copy_depth_to_pyramid_multisampled.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating web linkage for {}", "compute_copy_depth_to_pyramid_multisampled" ); diff --git a/crates/renderling/src/linkage/compute_culling.rs b/crates/renderling/src/linkage/compute_culling.rs index 1a44979a..09a45604 100644 --- a/crates/renderling/src/linkage/compute_culling.rs +++ b/crates/renderling/src/linkage/compute_culling.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/cull-compute_culling.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "compute_culling"); + log::debug!("creating native linkage for {}", "compute_culling"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/cull-compute_culling.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "compute_culling"); + log::debug!("creating web linkage for {}", "compute_culling"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/compute_downsample_depth_pyramid.rs b/crates/renderling/src/linkage/compute_downsample_depth_pyramid.rs index 2a7066ae..4c65701f 100644 --- a/crates/renderling/src/linkage/compute_downsample_depth_pyramid.rs +++ b/crates/renderling/src/linkage/compute_downsample_depth_pyramid.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/cull-compute_downsample_depth_pyramid.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "compute_downsample_depth_pyramid" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/cull-compute_downsample_depth_pyramid.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating web linkage for {}", "compute_downsample_depth_pyramid" ); diff --git a/crates/renderling/src/linkage/debug_overlay_fragment.rs b/crates/renderling/src/linkage/debug_overlay_fragment.rs index 2120094a..f365ed3d 100644 --- a/crates/renderling/src/linkage/debug_overlay_fragment.rs +++ b/crates/renderling/src/linkage/debug_overlay_fragment.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/debug-debug_overlay_fragment.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "debug_overlay_fragment"); + log::debug!("creating native linkage for {}", "debug_overlay_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/debug-debug_overlay_fragment.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "debug_overlay_fragment"); + log::debug!("creating web linkage for {}", "debug_overlay_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/debug_overlay_vertex.rs b/crates/renderling/src/linkage/debug_overlay_vertex.rs index 78dc2c60..b6e66b69 100644 --- a/crates/renderling/src/linkage/debug_overlay_vertex.rs +++ b/crates/renderling/src/linkage/debug_overlay_vertex.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/debug-debug_overlay_vertex.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "debug_overlay_vertex"); + log::debug!("creating native linkage for {}", "debug_overlay_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/debug-debug_overlay_vertex.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "debug_overlay_vertex"); + log::debug!("creating web linkage for {}", "debug_overlay_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/di_convolution_fragment.rs b/crates/renderling/src/linkage/di_convolution_fragment.rs index 3f7a0ad0..8d26d94f 100644 --- a/crates/renderling/src/linkage/di_convolution_fragment.rs +++ b/crates/renderling/src/linkage/di_convolution_fragment.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/ibl-diffuse_irradiance-di_convolution_fragment.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "di_convolution_fragment"); + log::debug!("creating native linkage for {}", "di_convolution_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/ibl-diffuse_irradiance-di_convolution_fragment.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "di_convolution_fragment"); + log::debug!("creating web linkage for {}", "di_convolution_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/generate_mipmap_fragment.rs b/crates/renderling/src/linkage/generate_mipmap_fragment.rs index 339c5ccd..eec4a4ae 100644 --- a/crates/renderling/src/linkage/generate_mipmap_fragment.rs +++ b/crates/renderling/src/linkage/generate_mipmap_fragment.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/convolution-generate_mipmap_fragment.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "generate_mipmap_fragment"); + log::debug!("creating native linkage for {}", "generate_mipmap_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/convolution-generate_mipmap_fragment.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "generate_mipmap_fragment"); + log::debug!("creating web linkage for {}", "generate_mipmap_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/generate_mipmap_vertex.rs b/crates/renderling/src/linkage/generate_mipmap_vertex.rs index 355550d8..cdeab9dd 100644 --- a/crates/renderling/src/linkage/generate_mipmap_vertex.rs +++ b/crates/renderling/src/linkage/generate_mipmap_vertex.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/convolution-generate_mipmap_vertex.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "generate_mipmap_vertex"); + log::debug!("creating native linkage for {}", "generate_mipmap_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/convolution-generate_mipmap_vertex.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "generate_mipmap_vertex"); + log::debug!("creating web linkage for {}", "generate_mipmap_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/prefilter_environment_cubemap_fragment.rs b/crates/renderling/src/linkage/prefilter_environment_cubemap_fragment.rs index e91964ec..0cc0ce40 100644 --- a/crates/renderling/src/linkage/prefilter_environment_cubemap_fragment.rs +++ b/crates/renderling/src/linkage/prefilter_environment_cubemap_fragment.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/convolution-prefilter_environment_cubemap_fragment.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "prefilter_environment_cubemap_fragment" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/convolution-prefilter_environment_cubemap_fragment.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating web linkage for {}", "prefilter_environment_cubemap_fragment" ); diff --git a/crates/renderling/src/linkage/prefilter_environment_cubemap_vertex.rs b/crates/renderling/src/linkage/prefilter_environment_cubemap_vertex.rs index f5bd22ca..31878097 100644 --- a/crates/renderling/src/linkage/prefilter_environment_cubemap_vertex.rs +++ b/crates/renderling/src/linkage/prefilter_environment_cubemap_vertex.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/convolution-prefilter_environment_cubemap_vertex.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "prefilter_environment_cubemap_vertex" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/convolution-prefilter_environment_cubemap_vertex.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating web linkage for {}", "prefilter_environment_cubemap_vertex" ); diff --git a/crates/renderling/src/linkage/renderlet_fragment.rs b/crates/renderling/src/linkage/renderlet_fragment.rs index 9f261f3e..5984c350 100644 --- a/crates/renderling/src/linkage/renderlet_fragment.rs +++ b/crates/renderling/src/linkage/renderlet_fragment.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/stage-renderlet_fragment.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "renderlet_fragment"); + log::debug!("creating native linkage for {}", "renderlet_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/stage-renderlet_fragment.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "renderlet_fragment"); + log::debug!("creating web linkage for {}", "renderlet_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/renderlet_vertex.rs b/crates/renderling/src/linkage/renderlet_vertex.rs index e0715022..11af60ab 100644 --- a/crates/renderling/src/linkage/renderlet_vertex.rs +++ b/crates/renderling/src/linkage/renderlet_vertex.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/stage-renderlet_vertex.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "renderlet_vertex"); + log::debug!("creating native linkage for {}", "renderlet_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/stage-renderlet_vertex.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "renderlet_vertex"); + log::debug!("creating web linkage for {}", "renderlet_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/skybox_cubemap_fragment.rs b/crates/renderling/src/linkage/skybox_cubemap_fragment.rs index 1ecf4602..611d7cbb 100644 --- a/crates/renderling/src/linkage/skybox_cubemap_fragment.rs +++ b/crates/renderling/src/linkage/skybox_cubemap_fragment.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/skybox-skybox_cubemap_fragment.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "skybox_cubemap_fragment"); + log::debug!("creating native linkage for {}", "skybox_cubemap_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/skybox-skybox_cubemap_fragment.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "skybox_cubemap_fragment"); + log::debug!("creating web linkage for {}", "skybox_cubemap_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/skybox_cubemap_vertex.rs b/crates/renderling/src/linkage/skybox_cubemap_vertex.rs index 2f792fe2..f6e073c0 100644 --- a/crates/renderling/src/linkage/skybox_cubemap_vertex.rs +++ b/crates/renderling/src/linkage/skybox_cubemap_vertex.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/skybox-skybox_cubemap_vertex.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "skybox_cubemap_vertex"); + log::debug!("creating native linkage for {}", "skybox_cubemap_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/skybox-skybox_cubemap_vertex.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "skybox_cubemap_vertex"); + log::debug!("creating web linkage for {}", "skybox_cubemap_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/skybox_equirectangular_fragment.rs b/crates/renderling/src/linkage/skybox_equirectangular_fragment.rs index 9ef6fc56..55d579c7 100644 --- a/crates/renderling/src/linkage/skybox_equirectangular_fragment.rs +++ b/crates/renderling/src/linkage/skybox_equirectangular_fragment.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/skybox-skybox_equirectangular_fragment.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "skybox_equirectangular_fragment" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/skybox-skybox_equirectangular_fragment.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating web linkage for {}", "skybox_equirectangular_fragment" ); diff --git a/crates/renderling/src/linkage/skybox_vertex.rs b/crates/renderling/src/linkage/skybox_vertex.rs index a7acf011..97f15663 100644 --- a/crates/renderling/src/linkage/skybox_vertex.rs +++ b/crates/renderling/src/linkage/skybox_vertex.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/skybox-skybox_vertex.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "skybox_vertex"); + log::debug!("creating native linkage for {}", "skybox_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/skybox-skybox_vertex.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "skybox_vertex"); + log::debug!("creating web linkage for {}", "skybox_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/tonemapping_fragment.rs b/crates/renderling/src/linkage/tonemapping_fragment.rs index 29ae25d4..396ca926 100644 --- a/crates/renderling/src/linkage/tonemapping_fragment.rs +++ b/crates/renderling/src/linkage/tonemapping_fragment.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/tonemapping-tonemapping_fragment.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "tonemapping_fragment"); + log::debug!("creating native linkage for {}", "tonemapping_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/tonemapping-tonemapping_fragment.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "tonemapping_fragment"); + log::debug!("creating web linkage for {}", "tonemapping_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/tonemapping_vertex.rs b/crates/renderling/src/linkage/tonemapping_vertex.rs index dad930fc..0ac39bb4 100644 --- a/crates/renderling/src/linkage/tonemapping_vertex.rs +++ b/crates/renderling/src/linkage/tonemapping_vertex.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/tonemapping-tonemapping_vertex.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating native linkage for {}", "tonemapping_vertex"); + log::debug!("creating native linkage for {}", "tonemapping_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), @@ -22,7 +22,7 @@ mod target { wgpu::include_wgsl!("../../shaders/tonemapping-tonemapping_vertex.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "tonemapping_vertex"); + log::debug!("creating web linkage for {}", "tonemapping_vertex"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/tutorial_implicit_isosceles_vertex.rs b/crates/renderling/src/linkage/tutorial_implicit_isosceles_vertex.rs index cc679ff2..ff5f3764 100644 --- a/crates/renderling/src/linkage/tutorial_implicit_isosceles_vertex.rs +++ b/crates/renderling/src/linkage/tutorial_implicit_isosceles_vertex.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/tutorial-tutorial_implicit_isosceles_vertex.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "tutorial_implicit_isosceles_vertex" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/tutorial-tutorial_implicit_isosceles_vertex.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating web linkage for {}", "tutorial_implicit_isosceles_vertex" ); diff --git a/crates/renderling/src/linkage/tutorial_passthru_fragment.rs b/crates/renderling/src/linkage/tutorial_passthru_fragment.rs index 30e6172a..004def95 100644 --- a/crates/renderling/src/linkage/tutorial_passthru_fragment.rs +++ b/crates/renderling/src/linkage/tutorial_passthru_fragment.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/tutorial-tutorial_passthru_fragment.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "tutorial_passthru_fragment" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/tutorial-tutorial_passthru_fragment.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "tutorial_passthru_fragment"); + log::debug!("creating web linkage for {}", "tutorial_passthru_fragment"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/tutorial_slabbed_renderlet.rs b/crates/renderling/src/linkage/tutorial_slabbed_renderlet.rs index a2cf0d9f..548d00ba 100644 --- a/crates/renderling/src/linkage/tutorial_slabbed_renderlet.rs +++ b/crates/renderling/src/linkage/tutorial_slabbed_renderlet.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/tutorial-tutorial_slabbed_renderlet.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "tutorial_slabbed_renderlet" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/tutorial-tutorial_slabbed_renderlet.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "tutorial_slabbed_renderlet"); + log::debug!("creating web linkage for {}", "tutorial_slabbed_renderlet"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/tutorial_slabbed_vertices.rs b/crates/renderling/src/linkage/tutorial_slabbed_vertices.rs index a1a9f95a..db08ec19 100644 --- a/crates/renderling/src/linkage/tutorial_slabbed_vertices.rs +++ b/crates/renderling/src/linkage/tutorial_slabbed_vertices.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/tutorial-tutorial_slabbed_vertices.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "tutorial_slabbed_vertices" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/tutorial-tutorial_slabbed_vertices.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!("creating web linkage for {}", "tutorial_slabbed_vertices"); + log::debug!("creating web linkage for {}", "tutorial_slabbed_vertices"); super::ShaderLinkage { entry_point: ENTRY_POINT, module: device.create_shader_module(descriptor()).into(), diff --git a/crates/renderling/src/linkage/tutorial_slabbed_vertices_no_instance.rs b/crates/renderling/src/linkage/tutorial_slabbed_vertices_no_instance.rs index b6e0d949..42f3aeec 100644 --- a/crates/renderling/src/linkage/tutorial_slabbed_vertices_no_instance.rs +++ b/crates/renderling/src/linkage/tutorial_slabbed_vertices_no_instance.rs @@ -8,7 +8,7 @@ mod target { wgpu::include_spirv!("../../shaders/tutorial-tutorial_slabbed_vertices_no_instance.spv") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating native linkage for {}", "tutorial_slabbed_vertices_no_instance" ); @@ -25,7 +25,7 @@ mod target { wgpu::include_wgsl!("../../shaders/tutorial-tutorial_slabbed_vertices_no_instance.wgsl") } pub fn linkage(device: &wgpu::Device) -> super::ShaderLinkage { - log::info!( + log::debug!( "creating web linkage for {}", "tutorial_slabbed_vertices_no_instance" ); diff --git a/crates/renderling/src/stage/cpu.rs b/crates/renderling/src/stage/cpu.rs index aee5d958..9030a999 100644 --- a/crates/renderling/src/stage/cpu.rs +++ b/crates/renderling/src/stage/cpu.rs @@ -731,7 +731,7 @@ impl Stage { DepthTexture { device: self.device.clone(), queue: self.queue.clone(), - texture: self.depth_texture.read().unwrap().clone(), + texture: self.depth_texture.read().unwrap().texture.clone(), } } diff --git a/crates/renderling/src/texture.rs b/crates/renderling/src/texture.rs index 8f254799..5f2c10fc 100644 --- a/crates/renderling/src/texture.rs +++ b/crates/renderling/src/texture.rs @@ -3,8 +3,8 @@ use std::{ops::Deref, sync::Arc}; use glam::UVec2; use image::{ - load_from_memory, ColorType, DynamicImage, GenericImage, GenericImageView, ImageBuffer, - ImageError, PixelWithColorType, Rgba32FImage, + load_from_memory, DynamicImage, GenericImage, GenericImageView, ImageBuffer, ImageError, + PixelWithColorType, Rgba32FImage, }; use mips::MipMapGenerator; use snafu::prelude::*; @@ -21,7 +21,7 @@ pub enum TextureError { #[snafu(display("Image buffer '{}' unsupported color type: {:?}", label, color_type))] UnsupportedColorType { - color_type: ColorType, + color_type: image::ExtendedColorType, label: String, }, @@ -374,7 +374,7 @@ impl Texture { dimension: wgpu::TextureDimension::D2, format: { ensure!( - P::COLOR_TYPE == ColorType::Rgba8, + P::COLOR_TYPE == image::ExtendedColorType::Rgba8, UnsupportedColorTypeSnafu { color_type: P::COLOR_TYPE, label: label @@ -671,15 +671,36 @@ impl Texture { } } +pub fn read_depth_texture_to_image( + device: &wgpu::Device, + queue: &wgpu::Queue, + width: usize, + height: usize, + texture: &wgpu::Texture, +) -> Option { + let depth_copied_buffer = Texture::read(texture, device, queue, width, height, 1, 4); + let pixels = depth_copied_buffer.pixels(device); + let pixels = bytemuck::cast_slice::(&pixels) + .iter() + .copied() + .map(|f| { + // Depth texture is stored as Depth32Float, but the values are normalized 0.0-1.0 + (255.0 * f) as u8 + }) + .collect::>(); + let img_buffer = image::GrayImage::from_raw(width as u32, height as u32, pixels)?; + Some(img_buffer) +} + /// A depth texture. pub struct DepthTexture { pub(crate) device: Arc, pub(crate) queue: Arc, - pub(crate) texture: Texture, + pub(crate) texture: Arc, } impl Deref for DepthTexture { - type Target = Texture; + type Target = wgpu::Texture; fn deref(&self) -> &Self::Target { &self.texture @@ -687,12 +708,13 @@ impl Deref for DepthTexture { } impl DepthTexture { - pub fn width(&self) -> u32 { - self.texture.texture.width() - } - - pub fn height(&self) -> u32 { - self.texture.texture.height() + pub fn new(ctx: &crate::Context, texture: impl Into>) -> Self { + let (device, queue) = ctx.get_device_and_queue_owned(); + Self { + device, + queue, + texture: texture.into(), + } } /// Converts the depth texture into an image. @@ -700,23 +722,15 @@ impl DepthTexture { /// Assumes the format is single channel 32bit. /// /// ## Panics - /// This may panic if the depth texture has a multisample count greater than - /// 1. - pub fn read_image(&self) -> Option { - let depth_copied_buffer = Texture::read( - &self.texture.texture, + /// This may panic if the depth texture has a multisample count greater than 1. + pub fn read_image(&self) -> Option { + read_depth_texture_to_image( &self.device, &self.queue, self.width() as usize, self.height() as usize, - 1, - 4, - ); - let pixels = depth_copied_buffer.pixels(&self.device); - let pixels: Vec = bytemuck::cast_slice(&pixels).to_vec(); - let img_buffer: image::ImageBuffer, Vec> = - image::ImageBuffer::from_raw(self.width(), self.height(), pixels)?; - Some(image::DynamicImage::from(img_buffer)) + &self.texture, + ) } } diff --git a/crates/xtask/Cargo.toml b/crates/xtask/Cargo.toml new file mode 100644 index 00000000..45ea47ea --- /dev/null +++ b/crates/xtask/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "xtask" +version = "0.1.0" +edition = "2021" + +[dependencies] +clap.workspace = true +env_logger.workspace = true +log.workspace = true +renderling_build = { path = "../renderling-build" } diff --git a/crates/xtask/src/main.rs b/crates/xtask/src/main.rs new file mode 100644 index 00000000..be0be3f5 --- /dev/null +++ b/crates/xtask/src/main.rs @@ -0,0 +1,46 @@ +//! A build helper for the `renderling` project. +use clap::{Parser, Subcommand}; + +#[derive(Subcommand)] +enum Command { + /// Compile the `renderling` library into multiple SPIR-V shader entry points. + CompileShaders, + /// Generate Rust files linking `wgpu` shaders from SPIR-V shader entry points. + GenerateLinkage, +} + +#[derive(Parser)] +#[clap(author, version, about)] +struct Cli { + #[clap(subcommand)] + /// The subcommand to run + subcommand: Command, +} + +fn main() { + env_logger::builder().init(); + + let cli = Cli::parse(); + match cli.subcommand { + Command::CompileShaders => { + let paths = renderling_build::RenderlingPaths::default(); + + log::info!( + "Calling `cargo gpu toml {}", + paths.renderling_crate.display() + ); + + std::process::Command::new("cargo") + .args(["gpu", "toml"]) + .arg(&paths.renderling_crate) + .stdout(std::process::Stdio::inherit()) + .stderr(std::process::Stdio::inherit()) + .output() + .unwrap(); + } + Command::GenerateLinkage => { + log::info!("Generating linkage for shaders"); + renderling_build::generate_linkage() + } + } +}