[INFO] cloning repository https://github.com/fluxel-project/fluxel-rhi
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fluxel-project/fluxel-rhi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffluxel-project%2Ffluxel-rhi", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffluxel-project%2Ffluxel-rhi'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] e39c0e50406d764e6f4fb53950f7c8bc00469d04
[INFO] checking fluxel-project/fluxel-rhi against 4d7c0cd298ace72490220301fa543d63a154f8ce for pr-164789
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffluxel-project%2Ffluxel-rhi" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/fluxel-project/fluxel-rhi
[INFO] finished tweaking git repo https://github.com/fluxel-project/fluxel-rhi
[INFO] tweaked toml for git repo https://github.com/fluxel-project/fluxel-rhi written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/fluxel-project/fluxel-rhi on toolchain 4d7c0cd298ace72490220301fa543d63a154f8ce
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d7c0cd298ace72490220301fa543d63a154f8ce" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/fluxel-project/fluxel-rhi already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d7c0cd298ace72490220301fa543d63a154f8ce" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e22feee19cbf6d63967167b6d7d41b6afbaec82056185611d3f5a8f94c5361ec
[INFO] running `Command { std: "docker" "start" "e22feee19cbf6d63967167b6d7d41b6afbaec82056185611d3f5a8f94c5361ec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e22feee19cbf6d63967167b6d7d41b6afbaec82056185611d3f5a8f94c5361ec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e22feee19cbf6d63967167b6d7d41b6afbaec82056185611d3f5a8f94c5361ec" "/opt/rustwide/cargo-home/bin/cargo" "+4d7c0cd298ace72490220301fa543d63a154f8ce" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e22feee19cbf6d63967167b6d7d41b6afbaec82056185611d3f5a8f94c5361ec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e22feee19cbf6d63967167b6d7d41b6afbaec82056185611d3f5a8f94c5361ec" "/opt/rustwide/cargo-home/bin/cargo" "+4d7c0cd298ace72490220301fa543d63a154f8ce" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking fluxel-rhi-core v0.1.0 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]    Compiling zerocopy v0.8.62
[INFO] [stderr]     Checking libloading v0.8.9
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking bit-vec v0.8.0
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking indexmap v2.14.2
[INFO] [stderr]     Checking codespan-reporting v0.12.0
[INFO] [stderr]    Compiling rustix v1.1.5
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.6
[INFO] [stderr]    Compiling winit v0.30.13
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking dpi v0.1.2
[INFO] [stderr]     Checking dlib v0.5.3
[INFO] [stderr]    Compiling fluxel-naga v0.1.0 (/opt/rustwide/workdir/vendor/naga)
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling naga v27.0.3
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]   --> crates/core/src/api/foundation.rs:62:14
[INFO] [stdout]    |
[INFO] [stdout] 62 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 62 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout] 62 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking bit-set v0.8.0
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]   --> crates/core/src/api/foundation.rs:73:14
[INFO] [stdout]    |
[INFO] [stdout] 73 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 73 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout] 73 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> crates/core/src/api/foundation.rs:151:14
[INFO] [stdout]     |
[INFO] [stdout] 151 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 151 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout] 151 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking ash v0.38.0+1.3.281
[INFO] [stderr]    Compiling crc32fast v1.5.2
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling naga v30.0.1
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking flate2 v1.1.10
[INFO] [stderr]     Checking fluxel-rhi v0.1.0 (/opt/rustwide/workdir/crates/rhi)
[INFO] [stderr]     Checking fluxel-rhi-webgpu v0.1.1 (/opt/rustwide/workdir/crates/webgpu)
[INFO] [stderr]     Checking png v0.17.16
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]   --> crates/core/src/api/foundation.rs:62:14
[INFO] [stdout]    |
[INFO] [stdout] 62 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 62 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout] 62 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]   --> crates/core/src/api/foundation.rs:73:14
[INFO] [stdout]    |
[INFO] [stdout] 73 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 73 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout] 73 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> crates/core/src/api/foundation.rs:151:14
[INFO] [stdout]     |
[INFO] [stdout] 151 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 151 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout] 151 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |n| n.checked_add(1))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling thiserror-impl v2.0.21
[INFO] [stderr]     Checking thiserror v2.0.21
[INFO] [stderr]     Checking naga-types v30.0.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.62
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking serde_json v1.0.154
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking fluxel-host v0.1.0 (https://github.com/fluxel-project/fluxel-host?rev=33a6bbb3fa15500e928b4192ca8f280b735034d9#33a6bbb3)
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> crates/rhi/tests/../examples/utils/submission.rs:111:10
[INFO] [stdout]     |
[INFO] [stdout] 111 |         .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 111 -         .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout] 111 +         .try_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> crates/rhi/tests/../examples/utils/submission.rs:111:10
[INFO] [stdout]     |
[INFO] [stdout] 111 |         .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 111 -         .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout] 111 +         .try_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking fluxel-rhi-dx12 v0.1.0 (/opt/rustwide/workdir/crates/dx12)
[INFO] [stderr]     Checking fluxel-rhi-vulkan v0.1.0 (/opt/rustwide/workdir/crates/vulkan)
[INFO] [stderr]     Checking fluxel-rhi-gl v0.1.0 (/opt/rustwide/workdir/crates/gl)
[INFO] [stderr]     Checking fluxel-rhi-metal v0.1.0 (/opt/rustwide/workdir/crates/metal)
[INFO] [stdout] warning: unused import: `MetalTexture`
[INFO] [stdout]  --> crates/metal/src/backend/copy/blit.rs:7:48
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::super::{Metal, MetalCommandEncoder, MetalTexture};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> crates/metal/src/backend/encoder/clear_buffer.rs:10:28
[INFO] [stdout]    |
[INFO] [stdout] 10 | use fluxel_rhi_core::api::{self, Error, Result};
[INFO] [stdout]    |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Support`
[INFO] [stdout]  --> crates/metal/src/backend/memory.rs:6:49
[INFO] [stdout]   |
[INFO] [stdout] 6 | use fluxel_rhi_core::api::{self, Error, Result, Support};
[INFO] [stdout]   |                                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ResourceBackend`
[INFO] [stdout]  --> crates/metal/src/backend/memory.rs:7:47
[INFO] [stdout]   |
[INFO] [stdout] 7 | use fluxel_rhi_core::backend::{MemoryBackend, ResourceBackend};
[INFO] [stdout]   |                                               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::MetalAcceleration`
[INFO] [stdout]  --> crates/metal/src/backend/ray/dependencies.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use super::MetalAcceleration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BuildReservation` and `FrozenDependencies`
[INFO] [stdout]   --> crates/metal/src/backend/ray/mod.rs:19:48
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(super) use dependencies::{BuildCompletion, BuildReservation, FrozenDependencies};
[INFO] [stdout]    |                                                ^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> crates/metal/src/backend/readback.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | use fluxel_rhi_core::api::{self, Error, ReadbackData, Result};
[INFO] [stdout]    |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `native::StageBindings`
[INFO] [stdout]    --> crates/metal/src/backend/shader_variant/mod.rs:552:16
[INFO] [stdout]     |
[INFO] [stdout] 552 | pub(crate) use native::StageBindings;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `completion::CompletionJoin`
[INFO] [stdout]   --> crates/metal/src/backend/submit/mod.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use completion::CompletionJoin;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `is_bc` and `is_etc_or_astc`
[INFO] [stdout]   --> crates/metal/src/backend/texture/mod.rs:27:43
[INFO] [stdout]    |
[INFO] [stdout] 27 |     compatible_formats, format_supported, is_bc, is_compressed, is_etc_or_astc, max_mip_levels,
[INFO] [stdout]    |                                           ^^^^^                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> crates/vulkan/src/backend/submit/completion/mod.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | use fluxel_rhi_core::api::{self, CompletionState, Error, Result};
[INFO] [stdout]   |                            ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> crates/vulkan/src/backend/submit/completion/mod.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | use fluxel_rhi_core::api::{self, CompletionState, Error, Result};
[INFO] [stdout]   |                            ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `MetalTexture`
[INFO] [stdout]  --> crates/metal/src/backend/copy/blit.rs:7:48
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::super::{Metal, MetalCommandEncoder, MetalTexture};
[INFO] [stdout]   |                                                ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> crates/metal/src/backend/encoder/clear_buffer.rs:10:28
[INFO] [stdout]    |
[INFO] [stdout] 10 | use fluxel_rhi_core::api::{self, Error, Result};
[INFO] [stdout]    |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Support`
[INFO] [stdout]  --> crates/metal/src/backend/memory.rs:6:49
[INFO] [stdout]   |
[INFO] [stdout] 6 | use fluxel_rhi_core::api::{self, Error, Result, Support};
[INFO] [stdout]   |                                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ResourceBackend`
[INFO] [stdout]  --> crates/metal/src/backend/memory.rs:7:47
[INFO] [stdout]   |
[INFO] [stdout] 7 | use fluxel_rhi_core::backend::{MemoryBackend, ResourceBackend};
[INFO] [stdout]   |                                               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> crates/metal/src/backend/readback.rs:12:28
[INFO] [stdout]    |
[INFO] [stdout] 12 | use fluxel_rhi_core::api::{self, Error, ReadbackData, Result};
[INFO] [stdout]    |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `native::StageBindings`
[INFO] [stdout]    --> crates/metal/src/backend/shader_variant/mod.rs:552:16
[INFO] [stdout]     |
[INFO] [stdout] 552 | pub(crate) use native::StageBindings;
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> crates/metal/src/backend/submit/mod.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `completion::CompletionJoin`
[INFO] [stdout]   --> crates/metal/src/backend/submit/mod.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use completion::CompletionJoin;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `completion::join_into`
[INFO] [stdout]   --> crates/metal/src/backend/submit/mod.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(super) use completion::join_into;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `is_bc` and `is_etc_or_astc`
[INFO] [stdout]   --> crates/metal/src/backend/texture/mod.rs:27:43
[INFO] [stdout]    |
[INFO] [stdout] 27 |     compatible_formats, format_supported, is_bc, is_compressed, is_etc_or_astc, max_mip_levels,
[INFO] [stdout]    |                                           ^^^^^                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `binding::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:36:16
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub(crate) use binding::*;
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `compute::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub(crate) use compute::*;
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `indirect::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:44:16
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub(crate) use indirect::*;
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lowering::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:46:16
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub(crate) use lowering::*;
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `multi_draw::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:47:16
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(crate) use multi_draw::*;
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `presentation::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:49:16
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) use presentation::*;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlVersion`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:50:43
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) use profile::{GlFamilyProfile, GlVersion};
[INFO] [stdout]    |                                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `query::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:51:16
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub(crate) use query::*;
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/cache.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | use fluxel_rhi_core::api::{self, Error, Result};
[INFO] [stdout]   |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/compute.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::spi::native_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlComputePipelineInner`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/compute.rs:15:39
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::types::{GlComputePipeline, GlComputePipelineInner};
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sync::Arc`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/instance.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     sync::Arc,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LaneClass`, `LaneId`, and `LaneInfo`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/instance.rs:12:88
[INFO] [stdout]    |
[INFO] [stdout] 12 |     self, AdapterInfo, DeviceCapabilities, DeviceId, DeviceRequest, Error, InstanceId, LaneClass,
[INFO] [stdout]    |                                                                                        ^^^^^^^^^
[INFO] [stdout] 13 |     LaneId, LaneInfo, Result,
[INFO] [stdout]    |     ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/instance.rs:17:39
[INFO] [stdout]    |
[INFO] [stdout] 17 | use super::{Gl, GlDevice, GlInstance, spi::native_error, types::GlDeviceState};
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/pipeline/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::spi::native_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlRasterPipelineInner`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/pipeline/mod.rs:13:56
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::types::{GlPipelineLayout, GlRasterPipeline, GlRasterPipelineInner};
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/query.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::spi::native_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlQuerySetInner`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/query.rs:15:63
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::types::{GlBuffer, GlDevice, GlEncoder, GlQuerySet, GlQuerySetInner};
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::spi::native_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::backend::rhi::spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/binding.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::backend::rhi::spi::native_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IndexFormat`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/raster/draw.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 | use fluxel_rhi_core::api::{Error, IndexFormat, Result};
[INFO] [stdout]   |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::backend::rhi::spi::native_error`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/raster/draw.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::backend::rhi::spi::native_error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::backend::rhi::spi::native_error`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/raster/dynamic.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::backend::rhi::spi::native_error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AttachmentView` and `LoadOp`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/raster/surface_depth.rs:8:34
[INFO] [stdout]   |
[INFO] [stdout] 8 | use fluxel_rhi_core::api::{self, AttachmentView, Error, LoadOp, Result};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/raster/offscreen.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/readback.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     spi::native_error,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/resource/support.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlAttachmentTarget`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/resource/view.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::backend::api::{GlAttachmentTarget, GlTextureDimension};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/resource/mod.rs:26:27
[INFO] [stdout]    |
[INFO] [stdout] 26 | use super::{Gl, GlDevice, spi::native_error, types::*};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GlSurfaceImage` and `GlSurface`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/mod.rs:29:26
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(crate) use surface::{GlSurface, GlSurfaceImage};
[INFO] [stdout]    |                          ^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlDeviceState`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/mod.rs:31:34
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(crate) use types::{GlDevice, GlDeviceState};
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufferId`, `FramebufferId`, `ProgramId`, `QueryId`, `RenderbufferId`, `SamplerId`, `TextureId`, and `VertexArrayId`
[INFO] [stdout]   --> crates/gl/src/backend/state/context.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     BufferId, FramebufferId, ProgramId, QueryId, RenderbufferId, SamplerId, TextureId,
[INFO] [stdout]    |     ^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 10 |     VertexArrayId,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `binding::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:36:16
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub(crate) use binding::*;
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `compute::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:37:16
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub(crate) use compute::*;
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `indirect::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:44:16
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub(crate) use indirect::*;
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `lowering::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:46:16
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub(crate) use lowering::*;
[INFO] [stdout]    |                ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `multi_draw::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:47:16
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(crate) use multi_draw::*;
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `presentation::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:49:16
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) use presentation::*;
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlVersion`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:50:43
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) use profile::{GlFamilyProfile, GlVersion};
[INFO] [stdout]    |                                           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `query::*`
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:51:16
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub(crate) use query::*;
[INFO] [stdout]    |                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/cache.rs:8:28
[INFO] [stdout]   |
[INFO] [stdout] 8 | use fluxel_rhi_core::api::{self, Error, Result};
[INFO] [stdout]   |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/compute.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::spi::native_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlComputePipelineInner`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/compute.rs:15:39
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::types::{GlComputePipeline, GlComputePipelineInner};
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sync::Arc`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/instance.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     sync::Arc,
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LaneClass`, `LaneId`, and `LaneInfo`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/instance.rs:12:88
[INFO] [stdout]    |
[INFO] [stdout] 12 |     self, AdapterInfo, DeviceCapabilities, DeviceId, DeviceRequest, Error, InstanceId, LaneClass,
[INFO] [stdout]    |                                                                                        ^^^^^^^^^
[INFO] [stdout] 13 |     LaneId, LaneInfo, Result,
[INFO] [stdout]    |     ^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/instance.rs:17:39
[INFO] [stdout]    |
[INFO] [stdout] 17 | use super::{Gl, GlDevice, GlInstance, spi::native_error, types::GlDeviceState};
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/pipeline/mod.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use super::spi::native_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlRasterPipelineInner`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/pipeline/mod.rs:13:56
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::types::{GlPipelineLayout, GlRasterPipeline, GlRasterPipelineInner};
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/query.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::spi::native_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlQuerySetInner`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/query.rs:15:63
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::types::{GlBuffer, GlDevice, GlEncoder, GlQuerySet, GlQuerySetInner};
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use super::spi::native_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::backend::rhi::spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/binding.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::backend::rhi::spi::native_error;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `IndexFormat`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/raster/draw.rs:6:35
[INFO] [stdout]   |
[INFO] [stdout] 6 | use fluxel_rhi_core::api::{Error, IndexFormat, Result};
[INFO] [stdout]   |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::backend::rhi::spi::native_error`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/raster/draw.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::backend::rhi::spi::native_error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::backend::rhi::spi::native_error`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/raster/dynamic.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::backend::rhi::spi::native_error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AttachmentView` and `LoadOp`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/raster/surface_depth.rs:8:34
[INFO] [stdout]   |
[INFO] [stdout] 8 | use fluxel_rhi_core::api::{self, AttachmentView, Error, LoadOp, Result};
[INFO] [stdout]   |                                  ^^^^^^^^^^^^^^         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/raster/offscreen.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/readback.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     spi::native_error,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/resource/support.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::*;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlAttachmentTarget`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/resource/view.rs:3:27
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::backend::api::{GlAttachmentTarget, GlTextureDimension};
[INFO] [stdout]   |                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `spi::native_error`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/resource/mod.rs:26:27
[INFO] [stdout]    |
[INFO] [stdout] 26 | use super::{Gl, GlDevice, spi::native_error, types::*};
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `GlSurfaceImage` and `GlSurface`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/mod.rs:29:26
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(crate) use surface::{GlSurface, GlSurfaceImage};
[INFO] [stdout]    |                          ^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `GlDeviceState`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/mod.rs:31:34
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(crate) use types::{GlDevice, GlDeviceState};
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BufferId`, `FramebufferId`, `ProgramId`, `QueryId`, `RenderbufferId`, `SamplerId`, `TextureId`, and `VertexArrayId`
[INFO] [stdout]   --> crates/gl/src/backend/state/context.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  9 |     BufferId, FramebufferId, ProgramId, QueryId, RenderbufferId, SamplerId, TextureId,
[INFO] [stdout]    |     ^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^  ^^^^^^^^^^^^^^  ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 10 |     VertexArrayId,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RasterPipelineBlockInterner`
[INFO] [stdout]   --> crates/gl/src/backend/state/context.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     RasterPipelineBlockInterner, RasterPipelineBlocks, RasterPipelinePacket, ResourceRef,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]   --> crates/gl/src/backend/api/object.rs:91:14
[INFO] [stdout]    |
[INFO] [stdout] 91 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 91 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout] 91 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encoded_array_len` is never used
[INFO] [stdout]   --> crates/metal/src/backend/argument.rs:11:4
[INFO] [stdout]    |
[INFO] [stdout] 11 | fn encoded_array_len(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_VERTEX_BUFFERS` is never used
[INFO] [stdout]  --> crates/metal/src/backend/binding_abi.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) const MAX_VERTEX_BUFFERS: usize = 31;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SlotKind` is never used
[INFO] [stdout]   --> crates/metal/src/backend/binding_abi.rs:13:17
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) enum SlotKind {
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BindingSlot` is never constructed
[INFO] [stdout]   --> crates/metal/src/backend/binding_abi.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) struct BindingSlot {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StageBindingMap` is never constructed
[INFO] [stdout]   --> crates/metal/src/backend/binding_abi.rs:28:19
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub(crate) struct StageBindingMap {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `slot` is never used
[INFO] [stdout]   --> crates/metal/src/backend/binding_abi.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl StageBindingMap {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 37 |     pub fn slot(&self, group: u32, binding: u32) -> Option<BindingSlot> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stage_map` is never used
[INFO] [stdout]   --> crates/metal/src/backend/binding_abi.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub(crate) fn stage_map(
[INFO] [stdout]    |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `push_constants` is never read
[INFO] [stdout]    --> crates/metal/src/backend/bindings/mod.rs:117:16
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct MetalPipelineLayout {
[INFO] [stdout]     |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub(crate) push_constants: Vec<api::PushConstantRange>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MetalPipelineLayout` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `completed` is never read
[INFO] [stdout]   --> crates/metal/src/backend/cold.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct State<T> {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     completed: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Completer` is never constructed
[INFO] [stdout]   --> crates/metal/src/backend/cold.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) struct Completer<T>(Arc<Mutex<State<T>>>);
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pending` is never used
[INFO] [stdout]   --> crates/metal/src/backend/cold.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) fn pending<T>() -> (ColdFuture<T>, Completer<T>) {
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finish` is never used
[INFO] [stdout]   --> crates/metal/src/backend/cold.rs:42:19
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl<T> Completer<T> {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 42 |     pub(crate) fn finish(&self, result: Result<T>) {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `color_resolve_supported` is never used
[INFO] [stdout]    --> crates/metal/src/backend/copy/mod.rs:124:15
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub(super) fn color_resolve_supported(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shader` is never used
[INFO] [stdout]    --> crates/metal/src/backend/copy/blit.rs:274:4
[INFO] [stdout]     |
[INFO] [stdout] 274 | fn shader(kind: SampleKind) -> &'static str {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `integer_shader` is never used
[INFO] [stdout]    --> crates/metal/src/backend/copy/blit.rs:291:4
[INFO] [stdout]     |
[INFO] [stdout] 291 | fn integer_shader(scalar: &str) -> &'static str {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `accelerations` is never read
[INFO] [stdout]   --> crates/metal/src/backend/encoder/mod.rs:47:16
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct MetalCommandEncoder {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub(crate) accelerations: Vec<super::ray::MetalAcceleration>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `indirect_mesh_supported` is never used
[INFO] [stdout]    --> crates/metal/src/backend/mesh.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn indirect_mesh_supported(apple9: bool, selector: bool) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `proves_triangle_mesh` is never used
[INFO] [stdout]    --> crates/metal/src/backend/mesh.rs:143:4
[INFO] [stdout]     |
[INFO] [stdout] 143 | fn proves_triangle_mesh(source: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `valid_indirect` is never used
[INFO] [stdout]    --> crates/metal/src/backend/mesh.rs:256:4
[INFO] [stdout]     |
[INFO] [stdout] 256 | fn valid_indirect(usage: api::BufferUsage, size: u64, offset: u64) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mesh_supported` is never used
[INFO] [stdout]    --> crates/metal/src/backend/mesh.rs:277:15
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub(super) fn mesh_supported(device: &MetalDevice) -> bool {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stencil_writes` is never used
[INFO] [stdout]    --> crates/metal/src/backend/pipeline.rs:521:15
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub(super) fn stencil_writes(depth: api::DepthStencilState) -> bool {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `submitted` is never read
[INFO] [stdout]   --> crates/metal/src/backend/query.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct QueryState {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 81 |     submitted: Mutex<Submitted>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `slots` and `generations` are never read
[INFO] [stdout]   --> crates/metal/src/backend/query.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | struct Submitted {
[INFO] [stdout]    |        --------- fields in this struct
[INFO] [stdout] 86 |     slots: Vec<Option<(u32, bool)>>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 87 |     generations: Vec<Option<Arc<()>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Submitted` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QueryCommit` is never constructed
[INFO] [stdout]   --> crates/metal/src/backend/query.rs:89:19
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub(super) struct QueryCommit(Vec<(MetalQuerySet, usize, Arc<()>)>);
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> crates/metal/src/backend/query.rs:92:11
[INFO] [stdout]    |
[INFO] [stdout] 92 |     Reset(MetalQuerySet, Range<u32>),
[INFO] [stdout]    |     ----- ^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueryOp` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 92 -     Reset(MetalQuerySet, Range<u32>),
[INFO] [stdout] 92 +     Reset((), ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Write` and `Resolve` are never constructed
[INFO] [stdout]   --> crates/metal/src/backend/query.rs:93:5
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub(super) enum QueryOp {
[INFO] [stdout]    |                 ------- variants in this enum
[INFO] [stdout] 92 |     Reset(MetalQuerySet, Range<u32>),
[INFO] [stdout] 93 |     Write(MetalQuerySet, u32),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 94 |     Resolve(MetalQuerySet, Range<u32>),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `QueryOp` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set` and `apply` are never used
[INFO] [stdout]    --> crates/metal/src/backend/query.rs:97:8
[INFO] [stdout]     |
[INFO] [stdout]  96 | impl QueryOp {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout]  97 |     fn set(&self) -> &MetalQuerySet {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     fn apply(&self, slots: &mut [Option<(u32, bool)>], lane: u32) -> Result<()> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_ops` is never used
[INFO] [stdout]    --> crates/metal/src/backend/query.rs:126:15
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub(super) fn validate_ops<'a>(ops: impl Iterator<Item = (u32, &'a QueryOp)>) -> Result<()> {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `commit_ops` is never used
[INFO] [stdout]    --> crates/metal/src/backend/query.rs:142:15
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub(super) fn commit_ops(ops: &[QueryOp], lane: u32) -> QueryCommit {
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invalidate_ops` is never used
[INFO] [stdout]    --> crates/metal/src/backend/query.rs:166:15
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub(super) fn invalidate_ops(commit: &QueryCommit, lane: u32) {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Variant` is never constructed
[INFO] [stdout]   --> crates/metal/src/backend/shader_variant/mod.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) struct Variant {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `runtime_array` is never used
[INFO] [stdout]   --> crates/metal/src/backend/shader_variant/mod.rs:22:4
[INFO] [stdout]    |
[INFO] [stdout] 22 | fn runtime_array(module: &naga::Module, ty: naga::Handle<naga::Type>) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lower_view_index` is never used
[INFO] [stdout]   --> crates/metal/src/backend/shader_variant/mod.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn lower_view_index(mut source: String, entry: &str, slot: u8) -> api::Result<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate` is never used
[INFO] [stdout]    --> crates/metal/src/backend/shader_variant/mod.rs:156:15
[INFO] [stdout]     |
[INFO] [stdout] 156 | pub(crate) fn translate(
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StageBindings` is never constructed
[INFO] [stdout]   --> crates/metal/src/backend/shader_variant/native.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct StageBindings {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lower` is never used
[INFO] [stdout]   --> crates/metal/src/backend/shader_ray_query.rs:14:15
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(super) fn lower(mut source: String, metadata_slots: &[(u8, u8)]) -> Result<String> {
[INFO] [stdout]    |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `identifier` is never used
[INFO] [stdout]    --> crates/metal/src/backend/shader_ray_query.rs:191:4
[INFO] [stdout]     |
[INFO] [stdout] 191 | fn identifier(value: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `AS_TYPE` is never used
[INFO] [stdout]  --> crates/metal/src/backend/ray_query_metadata.rs:8:7
[INFO] [stdout]   |
[INFO] [stdout] 8 | const AS_TYPE: &str = "metal::raytracing::instance_acceleration_structure";
[INFO] [stdout]   |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Function` is never constructed
[INFO] [stdout]   --> crates/metal/src/backend/ray_query_metadata.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct Function {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invalid` is never used
[INFO] [stdout]   --> crates/metal/src/backend/ray_query_metadata.rs:16:4
[INFO] [stdout]    |
[INFO] [stdout] 16 | fn invalid() -> Error {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ident` is never used
[INFO] [stdout]   --> crates/metal/src/backend/ray_query_metadata.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn ident(byte: u8) -> bool {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matching` is never used
[INFO] [stdout]   --> crates/metal/src/backend/ray_query_metadata.rs:24:4
[INFO] [stdout]    |
[INFO] [stdout] 24 | fn matching(source: &str, open: usize, left: u8, right: u8) -> Result<usize> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `arguments` is never used
[INFO] [stdout]   --> crates/metal/src/backend/ray_query_metadata.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn arguments(
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `metadata_name` is never used
[INFO] [stdout]   --> crates/metal/src/backend/ray_query_metadata.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub(super) fn metadata_name(expression: &str, suffix: &str) -> Result<String> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `propagate` is never used
[INFO] [stdout]    --> crates/metal/src/backend/ray_query_metadata.rs:121:15
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub(super) fn propagate(source: &str, suffix: &str) -> Result<String> {
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `size` is never read
[INFO] [stdout]   --> crates/metal/src/backend/sparse/mod.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct MetalSparseAllocation {
[INFO] [stdout]    |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub(super) size: u64,
[INFO] [stdout]    |                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetalSparseAllocation` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_frontier` is never used
[INFO] [stdout]    --> crates/metal/src/backend/submit/mod.rs:679:4
[INFO] [stdout]     |
[INFO] [stdout] 679 | fn record_frontier(frontiers: &mut Vec<(LaneId, api::StepId)>, lane: LaneId, step: api::StepId) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `watch` is never used
[INFO] [stdout]    --> crates/metal/src/backend/submit/completion.rs:116:19
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl Completion {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub(crate) fn watch(&self, waker: &Waker) -> Option<Result<()>> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CompletionJoin` is never constructed
[INFO] [stdout]    --> crates/metal/src/backend/submit/completion.rs:201:19
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub(super) struct CompletionJoin {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update` is never used
[INFO] [stdout]    --> crates/metal/src/backend/submit/completion.rs:208:19
[INFO] [stdout]     |
[INFO] [stdout] 207 | impl CompletionJoin {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 208 |     pub(super) fn update(self: &Arc<Self>) {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `join_into` is never used
[INFO] [stdout]    --> crates/metal/src/backend/submit/completion.rs:246:15
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub(crate) fn join_into(output: &Completion, children: Vec<Completion>) {
[INFO] [stdout]     |               ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_sparse_texture` is never used
[INFO] [stdout]    --> crates/metal/src/backend/texture/mod.rs:257:15
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub(super) fn create_sparse_texture(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_VERTEX_BUFFERS` is never used
[INFO] [stdout]  --> crates/metal/src/backend/binding_abi.rs:8:18
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(crate) const MAX_VERTEX_BUFFERS: usize = 31;
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `completed` is never read
[INFO] [stdout]   --> crates/metal/src/backend/cold.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct State<T> {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     completed: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Completer` is never constructed
[INFO] [stdout]   --> crates/metal/src/backend/cold.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) struct Completer<T>(Arc<Mutex<State<T>>>);
[INFO] [stdout]    |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pending` is never used
[INFO] [stdout]   --> crates/metal/src/backend/cold.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) fn pending<T>() -> (ColdFuture<T>, Completer<T>) {
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finish` is never used
[INFO] [stdout]   --> crates/metal/src/backend/cold.rs:42:19
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl<T> Completer<T> {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] 42 |     pub(crate) fn finish(&self, result: Result<T>) {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shader` is never used
[INFO] [stdout]    --> crates/metal/src/backend/copy/blit.rs:274:4
[INFO] [stdout]     |
[INFO] [stdout] 274 | fn shader(kind: SampleKind) -> &'static str {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `integer_shader` is never used
[INFO] [stdout]    --> crates/metal/src/backend/copy/blit.rs:291:4
[INFO] [stdout]     |
[INFO] [stdout] 291 | fn integer_shader(scalar: &str) -> &'static str {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `accelerations` is never read
[INFO] [stdout]   --> crates/metal/src/backend/encoder/mod.rs:47:16
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct MetalCommandEncoder {
[INFO] [stdout]    |            ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub(crate) accelerations: Vec<super::ray::MetalAcceleration>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mesh_supported` is never used
[INFO] [stdout]    --> crates/metal/src/backend/mesh.rs:277:15
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub(super) fn mesh_supported(device: &MetalDevice) -> bool {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stencil_writes` is never used
[INFO] [stdout]    --> crates/metal/src/backend/pipeline.rs:521:15
[INFO] [stdout]     |
[INFO] [stdout] 521 | pub(super) fn stencil_writes(depth: api::DepthStencilState) -> bool {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildReservation` is never constructed
[INFO] [stdout]    --> crates/metal/src/backend/ray/dependencies.rs:151:19
[INFO] [stdout]     |
[INFO] [stdout] 151 | pub(crate) struct BuildReservation {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `completion` is never used
[INFO] [stdout]    --> crates/metal/src/backend/ray/dependencies.rs:213:19
[INFO] [stdout]     |
[INFO] [stdout] 162 | impl BuildReservation {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub(crate) fn completion(&self) -> BuildCompletion {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `workgroup_size`, `arrays`, and `buffer_alignments` are never read
[INFO] [stdout]   --> crates/metal/src/backend/shader_variant/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) struct Variant {
[INFO] [stdout]    |                   ------- fields in this struct
[INFO] [stdout] 13 |     pub source: String,
[INFO] [stdout] 14 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     pub workgroup_size: [u32; 3],
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     pub arrays: Vec<(u32, u32, u32)>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 19 |     pub buffer_alignments: Vec<(u32, u32, u64)>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StageBindings` is never constructed
[INFO] [stdout]   --> crates/metal/src/backend/shader_variant/native.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct StageBindings {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `size` is never read
[INFO] [stdout]   --> crates/metal/src/backend/sparse/mod.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct MetalSparseAllocation {
[INFO] [stdout]    |            --------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub(super) size: u64,
[INFO] [stdout]    |                ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetalSparseAllocation` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `watch` is never used
[INFO] [stdout]    --> crates/metal/src/backend/submit/completion.rs:116:19
[INFO] [stdout]     |
[INFO] [stdout] 100 | impl Completion {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub(crate) fn watch(&self, waker: &Waker) -> Option<Result<()>> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_sparse_texture` is never used
[INFO] [stdout]    --> crates/metal/src/backend/texture/mod.rs:257:15
[INFO] [stdout]     |
[INFO] [stdout] 257 | pub(super) fn create_sparse_texture(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]   --> crates/gl/src/backend/api/object.rs:91:14
[INFO] [stdout]    |
[INFO] [stdout] 91 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 91 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout] 91 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]   --> crates/vulkan/src/backend/submit/queue_timeline.rs:72:14
[INFO] [stdout]    |
[INFO] [stdout] 72 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 72 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout] 72 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]   --> crates/vulkan/src/backend/submit/queue_timeline.rs:72:14
[INFO] [stdout]    |
[INFO] [stdout] 72 |             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 72 -             .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout] 72 +             .try_update(Ordering::Relaxed, Ordering::Relaxed, |value| {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src_offset`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/command/transfer/copies.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     src_offset: u64,
[INFO] [stdout]   |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_offset`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst_offset`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/command/transfer/copies.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     dst_offset: u64,
[INFO] [stdout]   |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dst_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/command/transfer/copies.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     bytes: u64,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layout`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/command/transfer/uploads.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     layout: TexelCopyBufferLayout,
[INFO] [stdout]   |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/command/transfer/uploads.rs:351:5
[INFO] [stdout]     |
[INFO] [stdout] 351 |     offset: u64,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/command/transfer/uploads.rs:352:5
[INFO] [stdout]     |
[INFO] [stdout] 352 |     bytes: &[u8],
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/gl/src/backend/rhi/command/mod.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let mut encoder = GlEncoder::new(device.0.clone(), lane.device);
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cx`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/completion/mod.rs:178:39
[INFO] [stdout]     |
[INFO] [stdout] 178 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
[INFO] [stdout]     |                                       ^^ help: if this is intentional, prefix it with an underscore: `_cx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/completion/mod.rs:322:22
[INFO] [stdout]     |
[INFO] [stdout] 322 | fn completion_status(point: &GlCompletion) -> CompletionState {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `refreshed`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/compute.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let refreshed = super::raster::cube_mirror::refresh(encoder)?;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_refreshed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `refreshed`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/compute.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let refreshed = super::raster::cube_mirror::refresh(encoder)?;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_refreshed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `refreshed`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/extras.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let refreshed = super::raster::cube_mirror::refresh(encoder)?;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_refreshed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `refreshed`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/extras.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let refreshed = super::raster::cube_mirror::refresh(encoder)?;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_refreshed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `refreshed`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/extras.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let refreshed = super::raster::cube_mirror::refresh(encoder)?;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_refreshed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/gl/src/backend/rhi/immediate.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         mut encoder: GlEncoder,
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/immediate.rs:162:24
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn abandon_session(device: &GlDevice, _: &SubmissionPlan<Self>, issued: &[StepId]) {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/immediate.rs:185:5
[INFO] [stdout]     |
[INFO] [stdout] 185 |     device: &GlDevice,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cx`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/mapping.rs:67:39
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
[INFO] [stdout]    |                                       ^^ help: if this is intentional, prefix it with an underscore: `_cx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/mapping.rs:227:9
[INFO] [stdout]     |
[INFO] [stdout] 227 |         device: &'a GlDevice,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/mapping.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 |         buffer: &'a GlBuffer,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/mapping.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |         range: Range<u64>,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/mapping.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |         mode: api::MapMode,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/mapping.rs:479:16
[INFO] [stdout]     |
[INFO] [stdout] 479 | fn write_range(map: &GlMap, range: Range<u64>) -> Result<()> {
[INFO] [stdout]     |                ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth_stencil`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/pipeline/mod.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 146 |     let depth_stencil = desc.depth_stencil.map(lower_depth_stencil).transpose()?;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_depth_stencil`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rasterization`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/pipeline/mod.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let rasterization = crate::backend::api::GlRasterizationState {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rasterization`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mip_uniforms`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/pipeline/mod.rs:297:9
[INFO] [stdout]     |
[INFO] [stdout] 297 |     let mip_uniforms = shaders
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mip_uniforms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pipeline`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/push.rs:296:9
[INFO] [stdout]     |
[INFO] [stdout] 296 |     let pipeline = encoder.raster_pipeline.clone().ok_or(Error::InvalidState)?;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pipeline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/gl/src/backend/rhi/raster/cube_mirror.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let mut refreshed = false;
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `view`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/raster/cube_mirror.rs:101:10
[INFO] [stdout]     |
[INFO] [stdout] 101 |     for (view, unit) in active_sampled {
[INFO] [stdout]     |          ^^^^ help: if this is intentional, prefix it with an underscore: `_view`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unit`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/raster/cube_mirror.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 |     for (view, unit) in active_sampled {
[INFO] [stdout]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_unit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_vertex`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/draw.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     base_vertex: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_vertex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_instance`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/draw.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     first_instance: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_instance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/raster/dynamic.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |     let state = depth_bias_state(pipeline.raster.clone(), value)?;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/multiview/mod.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let Some((_, first)) = encoder.raster_multiview else {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/readback.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         device: &'a GlDevice,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/gl/src/backend/rhi/resource/binding.rs:303:29
[INFO] [stdout]     |
[INFO] [stdout] 303 | ...                   _ => unreachable!("validated sampled texture dimension"),
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> crates/gl/src/backend/rhi/resource/binding.rs:303:29
[INFO] [stdout]     |
[INFO] [stdout] 285 | ...                   api::TextureViewDimension::D1 => {
[INFO] [stdout]     |                       ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 288 | ...                   api::TextureViewDimension::D2 => {
[INFO] [stdout]     |                       ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 291 | ...                   api::TextureViewDimension::D2Array => {
[INFO] [stdout]     |                       ---------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 294 | ...                   api::TextureViewDimension::D3 => {
[INFO] [stdout]     |                       ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 303 | ...                   _ => unreachable!("validated sampled texture dimension"),
[INFO] [stdout]     |                       ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/gl/src/backend/rhi/resource/view.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         _ => return Err(Error::Unsupported("GL texture view dimension")),
[INFO] [stdout]    |         ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> crates/gl/src/backend/rhi/resource/view.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         api::TextureViewDimension::D1 => GlTextureDimension::D1,
[INFO] [stdout]    |         ----------------------------- matches some of the same values
[INFO] [stdout] 60 |         api::TextureViewDimension::D2 => GlTextureDimension::D2,
[INFO] [stdout]    |         ----------------------------- matches some of the same values
[INFO] [stdout] 61 |         api::TextureViewDimension::D2Array => GlTextureDimension::D2Array,
[INFO] [stdout]    |         ---------------------------------- matches some of the same values
[INFO] [stdout] 62 |         api::TextureViewDimension::D3 => GlTextureDimension::D3,
[INFO] [stdout]    |         ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 65 |         _ => return Err(Error::Unsupported("GL texture view dimension")),
[INFO] [stdout]    |         ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lowered`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/resource/mod.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 |             Ok(lowered) => {
[INFO] [stdout]    |                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lowered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/gl/src/backend/rhi/resource/mod.rs:453:29
[INFO] [stdout]     |
[INFO] [stdout] 453 | ...                   _ => return Err(Error::Unsupported("GL sampled texture dimension")),
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> crates/gl/src/backend/rhi/resource/mod.rs:453:29
[INFO] [stdout]     |
[INFO] [stdout] 435 | ...                   crate::backend::api::GlTextureDimension::D1 => {
[INFO] [stdout]     |                       ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 438 | ...                   crate::backend::api::GlTextureDimension::D2 => {
[INFO] [stdout]     |                       ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 441 | ...                   crate::backend::api::GlTextureDimension::D2Array => {
[INFO] [stdout]     |                       ------------------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 444 | ...                   crate::backend::api::GlTextureDimension::D3 => {
[INFO] [stdout]     |                       ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 453 | ...                   _ => return Err(Error::Unsupported("GL sampled texture dimension")),
[INFO] [stdout]     |                       ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReadbackDiagnostics` is never constructed
[INFO] [stdout]   --> crates/vulkan/src/backend/readback.rs:39:19
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub(super) struct ReadbackDiagnostics {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `diagnostics` is never used
[INFO] [stdout]   --> crates/vulkan/src/backend/readback.rs:96:19
[INFO] [stdout]    |
[INFO] [stdout] 94 | impl ReadbackPool {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 95 |     #[cfg(test)]
[INFO] [stdout] 96 |     pub(super) fn diagnostics(&self) -> ReadbackDiagnostics {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_test_submit_count` is never used
[INFO] [stdout]   --> crates/vulkan/src/backend/submit/multi_queue/mod.rs:17:15
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(super) fn reset_test_submit_count() {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `test_submit_count` is never used
[INFO] [stdout]   --> crates/vulkan/src/backend/submit/multi_queue/mod.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(super) fn test_submit_count() -> u64 {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inject_terminal_submit_failure` is never used
[INFO] [stdout]   --> crates/vulkan/src/backend/submit/multi_queue/mod.rs:27:15
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub(super) fn inject_terminal_submit_failure() {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UploadDiagnostics` is never constructed
[INFO] [stdout]   --> crates/vulkan/src/backend/upload/mod.rs:26:19
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(super) struct UploadDiagnostics {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `diagnostics` is never used
[INFO] [stdout]    --> crates/vulkan/src/backend/upload/mod.rs:105:19
[INFO] [stdout]     |
[INFO] [stdout] 103 | impl UploadPool {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 104 |     #[cfg(test)]
[INFO] [stdout] 105 |     pub(super) fn diagnostics(&self) -> UploadDiagnostics {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `src_offset`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/command/transfer/copies.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     src_offset: u64,
[INFO] [stdout]   |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_src_offset`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dst_offset`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/command/transfer/copies.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     dst_offset: u64,
[INFO] [stdout]   |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dst_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/command/transfer/copies.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     bytes: u64,
[INFO] [stdout]    |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layout`
[INFO] [stdout]  --> crates/gl/src/backend/rhi/command/transfer/uploads.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     layout: TexelCopyBufferLayout,
[INFO] [stdout]   |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_layout`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/command/transfer/uploads.rs:351:5
[INFO] [stdout]     |
[INFO] [stdout] 351 |     offset: u64,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `bytes`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/command/transfer/uploads.rs:352:5
[INFO] [stdout]     |
[INFO] [stdout] 352 |     bytes: &[u8],
[INFO] [stdout]     |     ^^^^^ help: if this is intentional, prefix it with an underscore: `_bytes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/gl/src/backend/rhi/command/mod.rs:77:13
[INFO] [stdout]    |
[INFO] [stdout] 77 |         let mut encoder = GlEncoder::new(device.0.clone(), lane.device);
[INFO] [stdout]    |             ----^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cx`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/completion/mod.rs:178:39
[INFO] [stdout]     |
[INFO] [stdout] 178 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
[INFO] [stdout]     |                                       ^^ help: if this is intentional, prefix it with an underscore: `_cx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `point`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/completion/mod.rs:322:22
[INFO] [stdout]     |
[INFO] [stdout] 322 | fn completion_status(point: &GlCompletion) -> CompletionState {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_point`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `refreshed`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/compute.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let refreshed = super::raster::cube_mirror::refresh(encoder)?;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_refreshed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `refreshed`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/compute.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |         let refreshed = super::raster::cube_mirror::refresh(encoder)?;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_refreshed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `refreshed`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/extras.rs:28:13
[INFO] [stdout]    |
[INFO] [stdout] 28 |         let refreshed = super::raster::cube_mirror::refresh(encoder)?;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_refreshed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `refreshed`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/extras.rs:88:13
[INFO] [stdout]    |
[INFO] [stdout] 88 |         let refreshed = super::raster::cube_mirror::refresh(encoder)?;
[INFO] [stdout]    |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_refreshed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `refreshed`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/extras.rs:160:13
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let refreshed = super::raster::cube_mirror::refresh(encoder)?;
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_refreshed`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> crates/gl/src/backend/rhi/immediate.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |         mut encoder: GlEncoder,
[INFO] [stdout]    |         ----^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/immediate.rs:162:24
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn abandon_session(device: &GlDevice, _: &SubmissionPlan<Self>, issued: &[StepId]) {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/immediate.rs:185:5
[INFO] [stdout]     |
[INFO] [stdout] 185 |     device: &GlDevice,
[INFO] [stdout]     |     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cx`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/mapping.rs:67:39
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
[INFO] [stdout]    |                                       ^^ help: if this is intentional, prefix it with an underscore: `_cx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/mapping.rs:227:9
[INFO] [stdout]     |
[INFO] [stdout] 227 |         device: &'a GlDevice,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buffer`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/mapping.rs:228:9
[INFO] [stdout]     |
[INFO] [stdout] 228 |         buffer: &'a GlBuffer,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `range`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/mapping.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 229 |         range: Range<u64>,
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mode`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/mapping.rs:230:9
[INFO] [stdout]     |
[INFO] [stdout] 230 |         mode: api::MapMode,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `map`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/mapping.rs:479:16
[INFO] [stdout]     |
[INFO] [stdout] 479 | fn write_range(map: &GlMap, range: Range<u64>) -> Result<()> {
[INFO] [stdout]     |                ^^^ help: if this is intentional, prefix it with an underscore: `_map`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth_stencil`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/pipeline/mod.rs:146:9
[INFO] [stdout]     |
[INFO] [stdout] 146 |     let depth_stencil = desc.depth_stencil.map(lower_depth_stencil).transpose()?;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_depth_stencil`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rasterization`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/pipeline/mod.rs:147:9
[INFO] [stdout]     |
[INFO] [stdout] 147 |     let rasterization = crate::backend::api::GlRasterizationState {
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rasterization`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mip_uniforms`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/pipeline/mod.rs:297:9
[INFO] [stdout]     |
[INFO] [stdout] 297 |     let mip_uniforms = shaders
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mip_uniforms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pipeline`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/push.rs:296:9
[INFO] [stdout]     |
[INFO] [stdout] 296 |     let pipeline = encoder.raster_pipeline.clone().ok_or(Error::InvalidState)?;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pipeline`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/gl/src/backend/rhi/raster/cube_mirror.rs:100:9
[INFO] [stdout]     |
[INFO] [stdout] 100 |     let mut refreshed = false;
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `view`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/raster/cube_mirror.rs:101:10
[INFO] [stdout]     |
[INFO] [stdout] 101 |     for (view, unit) in active_sampled {
[INFO] [stdout]     |          ^^^^ help: if this is intentional, prefix it with an underscore: `_view`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `unit`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/raster/cube_mirror.rs:101:16
[INFO] [stdout]     |
[INFO] [stdout] 101 |     for (view, unit) in active_sampled {
[INFO] [stdout]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_unit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_vertex`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/draw.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     base_vertex: i32,
[INFO] [stdout]    |     ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_vertex`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first_instance`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/draw.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     first_instance: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_first_instance`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/raster/dynamic.rs:224:9
[INFO] [stdout]     |
[INFO] [stdout] 224 |     let state = depth_bias_state(pipeline.raster.clone(), value)?;
[INFO] [stdout]     |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `first`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/multiview/mod.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 |     let Some((_, first)) = encoder.raster_multiview else {
[INFO] [stdout]    |                  ^^^^^ help: if this is intentional, prefix it with an underscore: `_first`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `device`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/readback.rs:158:9
[INFO] [stdout]     |
[INFO] [stdout] 158 |         device: &'a GlDevice,
[INFO] [stdout]     |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/gl/src/backend/rhi/resource/binding.rs:303:29
[INFO] [stdout]     |
[INFO] [stdout] 303 | ...                   _ => unreachable!("validated sampled texture dimension"),
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> crates/gl/src/backend/rhi/resource/binding.rs:303:29
[INFO] [stdout]     |
[INFO] [stdout] 285 | ...                   api::TextureViewDimension::D1 => {
[INFO] [stdout]     |                       ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 288 | ...                   api::TextureViewDimension::D2 => {
[INFO] [stdout]     |                       ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 291 | ...                   api::TextureViewDimension::D2Array => {
[INFO] [stdout]     |                       ---------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 294 | ...                   api::TextureViewDimension::D3 => {
[INFO] [stdout]     |                       ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 303 | ...                   _ => unreachable!("validated sampled texture dimension"),
[INFO] [stdout]     |                       ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> crates/gl/src/backend/rhi/resource/view.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 65 |         _ => return Err(Error::Unsupported("GL texture view dimension")),
[INFO] [stdout]    |         ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]   --> crates/gl/src/backend/rhi/resource/view.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 59 |         api::TextureViewDimension::D1 => GlTextureDimension::D1,
[INFO] [stdout]    |         ----------------------------- matches some of the same values
[INFO] [stdout] 60 |         api::TextureViewDimension::D2 => GlTextureDimension::D2,
[INFO] [stdout]    |         ----------------------------- matches some of the same values
[INFO] [stdout] 61 |         api::TextureViewDimension::D2Array => GlTextureDimension::D2Array,
[INFO] [stdout]    |         ---------------------------------- matches some of the same values
[INFO] [stdout] 62 |         api::TextureViewDimension::D3 => GlTextureDimension::D3,
[INFO] [stdout]    |         ----------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 65 |         _ => return Err(Error::Unsupported("GL texture view dimension")),
[INFO] [stdout]    |         ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lowered`
[INFO] [stdout]   --> crates/gl/src/backend/rhi/resource/mod.rs:45:16
[INFO] [stdout]    |
[INFO] [stdout] 45 |             Ok(lowered) => {
[INFO] [stdout]    |                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lowered`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> crates/gl/src/backend/rhi/resource/mod.rs:453:29
[INFO] [stdout]     |
[INFO] [stdout] 453 | ...                   _ => return Err(Error::Unsupported("GL sampled texture dimension")),
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> crates/gl/src/backend/rhi/resource/mod.rs:453:29
[INFO] [stdout]     |
[INFO] [stdout] 435 | ...                   crate::backend::api::GlTextureDimension::D1 => {
[INFO] [stdout]     |                       ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 438 | ...                   crate::backend::api::GlTextureDimension::D2 => {
[INFO] [stdout]     |                       ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 441 | ...                   crate::backend::api::GlTextureDimension::D2Array => {
[INFO] [stdout]     |                       ------------------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 444 | ...                   crate::backend::api::GlTextureDimension::D3 => {
[INFO] [stdout]     |                       ------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 453 | ...                   _ => return Err(Error::Unsupported("GL sampled texture dimension")),
[INFO] [stdout]     |                       ^ ...and 2 other patterns collectively make this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mip_uniforms`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/shader/mod.rs:215:5
[INFO] [stdout]     |
[INFO] [stdout] 215 |     mip_uniforms: Vec<super::types::GlMipUniform>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mip_uniforms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlFamilyApi` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:62:18
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub(crate) trait GlFamilyApi {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlTextureTarget` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/binding.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) enum GlTextureTarget {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `message` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/binding.rs:36:25
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl GlBindingValidationError {
[INFO] [stdout]    | ----------------------------- method in this implementation
[INFO] [stdout] 35 |     /// The stable validation wording providers report without reformatting.
[INFO] [stdout] 36 |     pub(crate) const fn message(self) -> &'static str {
[INFO] [stdout]    |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlBindingApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/binding.rs:131:18
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub(crate) trait GlBindingApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlComputeDispatchApi` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/compute.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) trait GlComputeDispatchApi: GlFamilyApi {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Rgb8` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/copy.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) enum GlPixelFormat {
[INFO] [stdout]    |                 ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 10 |     Rgb8,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlPixelFormat` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate_for_transfer` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/copy.rs:228:19
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl GlPixelStoreState {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub(crate) fn validate_for_transfer(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UploadSourceTooShort` and `ImageHeightTooShort` are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/copy.rs:269:5
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub(crate) enum GlCopyValidationError {
[INFO] [stdout]     |                 --------------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 269 |     UploadSourceTooShort,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     ImageHeightTooShort,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlCopyValidationError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlCopyDomainApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/copy.rs:290:18
[INFO] [stdout]     |
[INFO] [stdout] 290 | pub(crate) trait GlCopyDomainApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlContextInfo` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/discovery.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct GlContextInfo {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/discovery.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl GlContextInfo {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 21 |     /// Creates the identity from exact provider strings.
[INFO] [stdout] 22 |     pub(crate) fn new(
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(crate) const fn profile(&self) -> GlFamilyProfile {
[INFO] [stdout]    |                         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub(crate) fn version(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) fn shading_language_version(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub(crate) fn vendor(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub(crate) fn renderer(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub(crate) fn driver_or_browser(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub(crate) fn flags(&self) -> &GlContextFlags {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlContextFlags` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/discovery.rs:73:19
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub(crate) struct GlContextFlags {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/discovery.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub(crate) enum GlCapability {
[INFO] [stdout]    |                 ------------ variants in this enum
[INFO] [stdout] 84 |     Compute,
[INFO] [stdout] 85 |     StorageBuffer,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 86 |     StorageImage,
[INFO] [stdout] 87 |     IndirectDraw,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 88 |     IndirectDispatch,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 89 |     MultiDrawIndirect,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 90 |     /// One command issuing many draws from per-draw parameter slices.
[INFO] [stdout] 91 |     MultiDraw,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 92 |     /// One attachment serving several array layers in a single pass.
[INFO] [stdout] 93 |     Multiview,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 94 |     /// Core occlusion queries with begin/end and result observation.
[INFO] [stdout] 95 |     OcclusionQuery,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 96 |     TimerQuery,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlCapability` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `limits_satisfied` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl GlCapability {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn limits_satisfied(self, l: &GlLimits, formats: &GlFormatTable) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `NotRequired` and `NotRun` are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub(crate) enum GlOperationProbe {
[INFO] [stdout]     |                 ---------------- variants in this enum
[INFO] [stdout] 132 |     NotRequired,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     NotRun,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlOperationProbe` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlSurfaceFacts` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:197:17
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub(crate) enum GlSurfaceFacts {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlDiscoveryBuilder` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:213:19
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub(crate) struct GlDiscoveryBuilder {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `surface_facts`, `resolve`, and `build` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:224:19
[INFO] [stdout]     |
[INFO] [stdout] 222 | impl GlDiscoveryBuilder {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 223 |     /// Binds all raw observations to one exact context generation before resolution.
[INFO] [stdout] 224 |     pub(crate) fn new(
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub(crate) fn surface_facts(&mut self, facts: GlSurfaceFacts) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub(crate) fn resolve(
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub(crate) fn build(self) -> GlDiscoverySnapshot {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlDiscoverySnapshot` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:290:19
[INFO] [stdout]     |
[INFO] [stdout] 290 | pub(crate) struct GlDiscoverySnapshot {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:301:25
[INFO] [stdout]     |
[INFO] [stdout] 299 | impl GlDiscoverySnapshot {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] 300 |     /// Returns the exact context generation that authorized this snapshot.
[INFO] [stdout] 301 |     pub(crate) const fn context_stamp(&self) -> ContextStamp {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub(crate) fn context(&self) -> &GlContextInfo {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub(crate) fn extensions(&self) -> &GlExtensionSet {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub(crate) const fn limits(&self) -> GlLimits {
[INFO] [stdout]     |                         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub(crate) fn formats(&self) -> &GlFormatTable {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub(crate) fn capabilities(&self) -> &GlCapabilitySet {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub(crate) fn surface_facts(&self) -> GlSurfaceFacts {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub(crate) fn max_multiview_view_count(&self) -> u32 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub(super) fn rebind_for_test(&self, stamp: ContextStamp) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlDiscoveryError` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:361:17
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub(crate) enum GlDiscoveryError {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_profile` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:366:4
[INFO] [stdout]     |
[INFO] [stdout] 366 | fn validate_profile(profile: GlFamilyProfile) -> Result<(), GlDiscoveryError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/error.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum GlContextLifecycle {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout]  8 |     /// Context exists but has not accepted work.
[INFO] [stdout]  9 |     Inactive,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 10 |     /// Context may accept API calls.
[INFO] [stdout] 11 |     Active,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 12 |     /// Surface is unavailable but the context is not lost.
[INFO] [stdout] 13 |     Suspended,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 14 |     /// The driver or browser invalidated the context.
[INFO] [stdout] 15 |     Lost,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 16 |     /// Context recreation is in progress.
[INFO] [stdout] 17 |     Restoring,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 18 |     /// A failed transition makes further work unsafe.
[INFO] [stdout] 19 |     Poisoned,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 20 |     /// Context ownership has ended permanently.
[INFO] [stdout] 21 |     Disposed,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlContextLifecycle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `accepts_commands` and `refusal` are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/error.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl GlContextLifecycle {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] 25 |     /// Returns whether commands may be issued in this lifecycle state.
[INFO] [stdout] 26 |     pub const fn accepts_commands(self) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub(crate) fn refusal(self, operation: &'static str) -> GlError {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/error.rs:66:5
[INFO] [stdout]     |
[INFO] [stdout]  54 | pub enum GlError {
[INFO] [stdout]     |          ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  66 |     StaleObject {
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     WrongContext {
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     WrongThread {
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     InvalidLifecycle {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     ContextLost { operation: &'static str },
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]  93 |     /// The context has been disposed.
[INFO] [stdout]  94 |     Disposed { operation: &'static str },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]  95 |     /// A poisoned context cannot safely continue.
[INFO] [stdout]  96 |     Poisoned { operation: &'static str },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]  97 |     /// Allocation failed in the driver or browser.
[INFO] [stdout]  98 |     OutOfMemory { operation: &'static str },
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]  99 |     /// Shader compilation failed with a complete driver log.
[INFO] [stdout] 100 |     Shader { stage: &'static str, log: String },
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 101 |     /// Program linking or validation failed with a complete driver log.
[INFO] [stdout] 102 |     Program {
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     IncompleteFramebuffer {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     Timeout { operation: &'static str },
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 113 |     /// A native driver or browser returned a non-specialized error.
[INFO] [stdout] 114 |     Driver {
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MultisampleArray` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/formats.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub(crate) enum GlFormatResourceKind {
[INFO] [stdout]    |                 -------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 59 |     MultisampleArray,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlFormatResourceKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ExtensionAcquired` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/formats.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub(crate) enum GlFormatEvidence {
[INFO] [stdout]    |                 ---------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 70 |     ExtensionAcquired(GlKnownExtension),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlFormatEvidence` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/formats.rs:119:19
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl GlFormatTable {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 118 |     /// Record exact byte-preserving pixel-pack support separately from blits.
[INFO] [stdout] 119 |     pub(crate) fn mark_exact_buffer_readback(&mut self, format: GlFormat) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub(crate) fn exact_buffer_readback(&self, format: GlFormat) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub(crate) fn mark_exact_alias_readback(&mut self, format: GlFormat) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub(crate) fn exact_alias_readback(&self, format: GlFormat) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub(crate) fn mark_compressed_alias_readback(&mut self, format: GlFormat, alias: GlFormat) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub(crate) fn compressed_alias_readback(&self, format: GlFormat) -> Option<GlFormat> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub(crate) fn get(&self, format: GlFormat, sample_count: u32) -> Option<GlFormatCapabilities> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub(crate) fn iter(&self) -> impl Iterator<Item = GlFormatCapabilities> + '_ {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub(crate) fn has_storage_read_write(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub(crate) fn validate_evidence(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `InvalidCoreGuarantee`, `ExtensionIllegalForProfile`, `ExtensionNotAcquired`, and `ExtensionDoesNotSupplyFormat` are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/formats.rs:347:5
[INFO] [stdout]     |
[INFO] [stdout] 335 | pub(crate) enum GlFormatTableError {
[INFO] [stdout]     |                 ------------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 347 |     InvalidCoreGuarantee {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 354 |     ExtensionIllegalForProfile {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     ExtensionNotAcquired {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     ExtensionDoesNotSupplyFormat {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlFormatTableError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Bc1RgbUnorm` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/format_types.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) enum GlFormat {
[INFO] [stdout]    |                 -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 69 |     Bc1RgbUnorm,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlFormat` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_float_color` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/format_types.rs:155:25
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl GlFormat {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub(crate) const fn is_float_color(self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_non_compressed_core_baseline_for` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/format_types.rs:462:25
[INFO] [stdout]     |
[INFO] [stdout] 346 | impl GlFormat {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 462 |     pub(super) const fn is_non_compressed_core_baseline_for(
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Renderbuffer` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/framebuffer.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub(crate) enum GlAttachmentTarget {
[INFO] [stdout]    |                 ------------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 61 |     Renderbuffer(RenderbufferId),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlAttachmentTarget` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DiscardWithoutResolve`, `EmptyBlitMask`, `BlitFilterIncompatible`, and `IdenticalBlitTargets` are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:207:5
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub(crate) enum GlFramebufferValidationError {
[INFO] [stdout]     |                 ---------------------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 207 |     DiscardWithoutResolve,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     EmptyBlitMask,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 215 |     BlitFilterIncompatible,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 216 |     IdenticalBlitTargets,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlFramebufferValidationError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlFramebufferApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:462:18
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub(crate) trait GlFramebufferApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlDrawArraysIndirectAbi` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/indirect.rs:26:19
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) struct GlDrawArraysIndirectAbi {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlDrawElementsIndirectAbi` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/indirect.rs:35:19
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub(crate) struct GlDrawElementsIndirectAbi {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_indirect_allocation` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/indirect.rs:84:15
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub(crate) fn validate_indirect_allocation(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Indexed` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/indirect.rs:97:5
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) enum GlIndirectAbi {
[INFO] [stdout]    |                 ------------- variant in this enum
[INFO] [stdout] 96 |     NonIndexed,
[INFO] [stdout] 97 |     Indexed,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlIndirectAbi` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlIndirectCountRange` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:169:19
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub(crate) struct GlIndirectCountRange {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:185:19
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl GlIndirectCountRange {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub(crate) fn validate(self, operation: &'static str) -> Result<(), GlError> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlDrawIndirectApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:203:18
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub(crate) trait GlDrawIndirectApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlDispatchIndirectApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:206:18
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub(crate) trait GlDispatchIndirectApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlMultiDrawIndirectApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:210:18
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub(crate) trait GlMultiDrawIndirectApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlMultiDrawCountApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:213:18
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub(crate) trait GlMultiDrawCountApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `bits`, and `get` are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/limits.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl GlFiniteF32 {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout]  9 |     /// Rejects NaN and infinities while preserving every bit of a finite result.
[INFO] [stdout] 10 |     pub(crate) fn new(value: f32) -> Option<Self> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub(crate) const fn bits(self) -> u32 {
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub(crate) const fn get(self) -> f32 {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/limits.rs:162:19
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl GlLimits {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub(crate) fn validate_profile_minimums(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub(crate) const fn supports_compute(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub(crate) const fn supports_storage_buffers(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub(crate) const fn supports_storage_images(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub(crate) const fn supports_single_indirect(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub(crate) const fn supports_multi_draw_indirect(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub(crate) const fn supports_multiview(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlLimitViolation` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/limits.rs:228:19
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub(crate) struct GlLimitViolation {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlProfileMinimums` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/limits.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 | struct GlProfileMinimums {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `for_profile` and `requirements` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/limits.rs:252:14
[INFO] [stdout]     |
[INFO] [stdout] 251 | impl GlProfileMinimums {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 252 |     const fn for_profile(profile: GlFamilyProfile) -> Self {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     fn requirements(self, l: &GlLimits) -> [(&'static str, u64, u64); 14] {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `issue_single_draws` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/multi_draw.rs:134:15
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub(crate) fn issue_single_draws(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlMultiDrawApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/multi_draw.rs:152:18
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub(crate) trait GlMultiDrawApi: GlRasterCommandApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `NEXT_CONTEXT_OWNER` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/object.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | static NEXT_CONTEXT_OWNER: AtomicU64 = AtomicU64::new(1);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `current` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/object.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl OwnerThreadIdentity {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 21 |     /// Captures the calling thread.
[INFO] [stdout] 22 |     pub fn current() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/object.rs:44:18
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl DeviceIdentity {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub const fn get(self) -> u64 {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `checked_next` and `get` are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/object.rs:58:18
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl ContextEpoch {
[INFO] [stdout]    | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub const fn checked_next(self) -> Option<Self> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub const fn get(self) -> u64 {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `allocate` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/object.rs:89:19
[INFO] [stdout]    |
[INFO] [stdout] 83 | impl ContextStamp {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub(crate) fn allocate() -> Option<Self> {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_zero` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/presentation.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl GlSurfaceSize {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 16 |     pub const fn is_zero(self) -> bool {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlSurfaceAcquire` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/presentation.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub(crate) enum GlSurfaceAcquire {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `acquire_position` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/presentation.rs:132:15
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub(crate) fn acquire_position(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlSurfacePresentationApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/presentation.rs:161:18
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub(crate) trait GlSurfacePresentationApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Pending` and `Unknown` are never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/query.rs:7:5
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) enum GlQueryResult {
[INFO] [stdout]    |                 ------------- variants in this enum
[INFO] [stdout]  7 |     Pending,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     Unknown,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlQueryResult` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlQueryObjectsApi` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/query.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) trait GlQueryObjectsApi: GlFamilyApi {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlOcclusionQueryApi` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/query.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) trait GlOcclusionQueryApi: GlFamilyApi {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlElapsedQueryApi` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/query.rs:32:18
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) trait GlElapsedQueryApi: GlFamilyApi {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlTimestampQueryApi` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/query.rs:38:18
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub(crate) trait GlTimestampQueryApi: GlFamilyApi {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlRasterCommandApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/raster.rs:306:18
[INFO] [stdout]     |
[INFO] [stdout] 306 | pub(crate) trait GlRasterCommandApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlAdvancedRasterApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/raster.rs:316:18
[INFO] [stdout]     |
[INFO] [stdout] 316 | pub(crate) trait GlAdvancedRasterApi: GlRasterCommandApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlResourceApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/resource.rs:240:18
[INFO] [stdout]     |
[INFO] [stdout] 240 | pub(crate) trait GlResourceApi: super::GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate_for` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/resource_texture.rs:199:19
[INFO] [stdout]     |
[INFO] [stdout] 198 | impl GlTextureSubresource {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] 199 |     pub(crate) fn validate_for(self, desc: GlTextureDesc) -> Result<(), GlResourceValidationError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate_for` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/resource_texture.rs:230:19
[INFO] [stdout]     |
[INFO] [stdout] 229 | impl GlTextureRegion {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 230 |     pub(crate) fn validate_for(self, desc: GlTextureDesc) -> Result<(), GlResourceValidationError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_texture_copy` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/resource_texture.rs:263:15
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub(crate) fn validate_texture_copy(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/resource_texture.rs:343:5
[INFO] [stdout]     |
[INFO] [stdout] 323 | pub(crate) enum GlResourceValidationError {
[INFO] [stdout]     |                 ------------------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 343 |     ZeroLayerCount,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 344 |     MipLevelOutOfBounds,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 345 |     LayerRangeOutOfBounds,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 346 |     ZeroCopyExtent,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 347 |     TextureRegionOutOfBounds,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 348 |     SubresourceRegionOutOfBounds,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 349 |     ThreeDimensionalSubresourceLayers,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 350 |     IncompatibleCopyFormat,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 351 |     IncompatibleCopySampleCount,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 352 |     IncompatibleCopyAspect,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 353 |     IncompatibleCopyExtent,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 |     CompressedCopyBlockMisaligned,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlResourceValidationError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate_for` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/sampler.rs:72:19
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl GlSamplerDesc {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub(crate) fn validate_for(
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `AnisotropyExtensionUnavailable`, `AnisotropyLimitUnavailable`, and `AnisotropyExceedsLimit` are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/sampler.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub(crate) enum GlSamplerValidationError {
[INFO] [stdout]     |                 ------------------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 102 |     AnisotropyExtensionUnavailable,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 103 |     AnisotropyLimitUnavailable,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 104 |     AnisotropyExceedsLimit,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlSamplerValidationError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlSamplerApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/sampler.rs:108:18
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub(crate) trait GlSamplerApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CombinedTextureSampler` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/shader.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub(crate) enum GlShaderResourceKind {
[INFO] [stdout]    |                 -------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 65 |     CombinedTextureSampler,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlShaderResourceKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `TextureUnit` and `StorageBlock` are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/shader.rs:205:5
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub(crate) enum GlExecutableBindingLocation {
[INFO] [stdout]     |                 --------------------------- variants in this enum
[INFO] [stdout] 204 |     UniformBlock(u32),
[INFO] [stdout] 205 |     TextureUnit(u32),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     StorageBlock(u32),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlExecutableBindingLocation` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MissingStorageImageUnit` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/shader.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub(crate) enum GlShaderValidationError {
[INFO] [stdout]     |                 ----------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 278 |     MissingStorageImageUnit,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlShaderValidationError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlShaderApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/shader.rs:461:18
[INFO] [stdout]     |
[INFO] [stdout] 461 | pub(crate) trait GlShaderApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlStorageImageLimits` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/storage.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub(crate) struct GlStorageImageLimits {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlStorageImageBinding` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/storage.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(crate) struct GlStorageImageBinding {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/storage.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 73 | impl GlStorageImageBinding {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] 74 |     pub(crate) fn validate(
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlStorageBufferApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/storage.rs:103:18
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub(crate) trait GlStorageBufferApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlStorageImageApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/storage.rs:111:18
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub(crate) trait GlStorageImageApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constants `TRANSFORM_FEEDBACK`, `ATOMIC_COUNTER`, and `CLIENT_MAPPED_BUFFER` are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/sync.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl GlMemoryBarrier {
[INFO] [stdout]    | -------------------- associated constants in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub const TRANSFORM_FEEDBACK: Self = Self(1 << 10);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub const ATOMIC_COUNTER: Self = Self(1 << 11);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub const SHADER_STORAGE: Self = Self(1 << 12);
[INFO] [stdout] 25 |     pub const CLIENT_MAPPED_BUFFER: Self = Self(1 << 13);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlFenceStatus` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/sync.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub(crate) enum GlFenceStatus {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlWaitBound` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/sync.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub(crate) struct GlWaitBound {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `POLL` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/sync.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl GlWaitBound {
[INFO] [stdout]    | ---------------- associated constant in this implementation
[INFO] [stdout] 66 |     pub const POLL: Self = Self { nanoseconds: 0 };
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `revoke_all` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/sync.rs:105:19
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl GlFenceLeaseBook {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub(crate) fn revoke_all(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlSyncApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/sync.rs:112:18
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub(crate) trait GlSyncApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Uint32` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/vertex.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub(crate) enum GlIndexFormat {
[INFO] [stdout]    |                 ------------- variant in this enum
[INFO] [stdout] 75 |     Uint16,
[INFO] [stdout] 76 |     Uint32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlIndexFormat` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlVertexApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/vertex.rs:301:18
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub(crate) trait GlVertexApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlFormatEvidence` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/capabilities.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) struct GlFormatEvidence {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlLoweringClosure` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/capabilities.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(crate) struct GlLoweringClosure {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlCapabilitySnapshot` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/capabilities.rs:44:19
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub(crate) struct GlCapabilitySnapshot {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `into_capabilities` and `format` are never used
[INFO] [stdout]   --> crates/gl/src/backend/capabilities.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl GlCapabilitySnapshot {
[INFO] [stdout]    | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub(crate) fn into_capabilities(self, device: DeviceId) -> DeviceCapabilities {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub(crate) fn format(&self, format: GlFormat) -> Option<GlFormatEvidence> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlFeatureProbe` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/facts.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct GlFeatureProbe {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> crates/gl/src/backend/facts.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl GlFeatureProbe {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 17 |     pub(crate) fn new(profile: GlProfile) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub(crate) fn profile(&self) -> GlProfile {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub(crate) fn report_extension(&mut self, extension: GlExtension) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub(crate) fn report_function(&mut self, function: GlFunction) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub(crate) fn supports(&self, feature: GlFeature) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub(crate) fn missing_function(&self, feature: GlFeature) -> Option<GlFunction> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub(crate) fn selected_route(&self, feature: GlFeature) -> Option<SelectedRoute> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `ObjectLabel` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/features/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) enum GlFunction {
[INFO] [stdout]    |                 ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 57 |     ObjectLabel,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlFunction` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `native_symbol` is never used
[INFO] [stdout]   --> crates/gl/src/backend/features/mod.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl GlFunction {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub(crate) const fn native_symbol(self) -> Option<&'static str> {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub(crate) enum GlFeature {
[INFO] [stdout]     |                 --------- variants in this enum
[INFO] [stdout] 114 |     Compute,
[INFO] [stdout] 115 |     IndirectDispatch,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 116 |     ShaderStorageBuffers,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 117 |     ImageLoadStore,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 118 |     IndirectDraw,
[INFO] [stdout] 119 |     MultiDrawIndirect,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 120 |     MultiDraw,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 121 |     IndirectCount,
[INFO] [stdout] 122 |     TimerQuery,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 123 |     OcclusionQuery,
[INFO] [stdout] 124 |     SamplerAnisotropy,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     CompressionAstcLdr,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 131 |     CompressionAstcHdr,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 132 |     Multiview,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlFeature` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_functions` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:327:15
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub(crate) fn required_functions(feature: GlFeature) -> &'static [GlFunction] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `DESKTOP_MINIMUM`, `GLES_MINIMUM`, and `accepts` are never used
[INFO] [stdout]   --> crates/gl/src/backend/profile.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl GlProfile {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 33 |     pub(crate) const DESKTOP_MINIMUM: GlVersion = GlVersion::new(4, 0);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     pub(crate) const GLES_MINIMUM: GlVersion = GlVersion::new(3, 0);
[INFO] [stdout]    |                      ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub(crate) const fn accepts(self) -> bool {
[INFO] [stdout]    |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `state` and `hits` are never read
[INFO] [stdout]   --> crates/gl/src/backend/rhi/cache.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) struct GlPipelineCacheInner {
[INFO] [stdout]    |                   -------------------- fields in this struct
[INFO] [stdout] 17 |     pub(crate) state: Rc<GlDeviceState>,
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub(crate) hits: std::cell::Cell<u32>,
[INFO] [stdout]    |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `invalidate_binary_format` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/cache.rs:25:19
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl GlPipelineCacheInner {
[INFO] [stdout]    | ------------------------- method in this implementation
[INFO] [stdout] 25 |     pub(crate) fn invalidate_binary_format(&self) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_u32` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/cache.rs:115:4
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn read_u32(data: &mut &[u8]) -> Result<u32> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_bytes` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/cache.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn read_bytes<'a>(data: &mut &'a [u8]) -> Result<&'a [u8]> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/cache.rs:132:4
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn decode(mut data: &[u8], identity: &[u8]) -> Result<BTreeMap<String, CachedBinary>> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `evidence` is never read
[INFO] [stdout]   --> crates/gl/src/backend/rhi/completion/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct GlCompletion {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 56 |     state: Rc<GlDeviceState>,
[INFO] [stdout] 57 |     evidence: GlCompletionEvidence,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlCompletion` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Unsupported` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/rhi/completion/mod.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | enum GlCompletionEvidence {
[INFO] [stdout]    |      -------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 68 |     Unsupported,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlCompletionEvidence` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> crates/gl/src/backend/rhi/encoder.rs:24:16
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct GlEncoder {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub(crate) raster_views: Vec<GlTextureView>,
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(crate) raster_viewport: Option<crate::backend::api::GlViewport>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     pub(crate) raster_scissor: Option<crate::backend::api::GlScissorRect>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub(crate) raster_color_slots: Vec<bool>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub(crate) vertex_bindings: Vec<crate::backend::api::GlVertexBufferBinding>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     pub(crate) index_binding: Option<crate::backend::api::GlIndexBinding>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub(crate) statistics_query_set: Option<GlQuerySet>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `begin_raster_state`, `set_raster_read_only`, and `end_raster_state` are never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/encoder.rs:138:19
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl GlEncoder {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub(crate) fn begin_raster_state(&mut self, extent: [u32; 2]) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub(crate) fn set_raster_read_only(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub(crate) fn end_raster_state(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_usage` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/mapping.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn required_usage(mode: api::MapMode) -> crate::backend::api::GlBufferUsage {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PipelineLayoutNativeRef` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/pipeline/mod.rs:606:7
[INFO] [stdout]     |
[INFO] [stdout] 606 | trait PipelineLayoutNativeRef {
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> crates/gl/src/backend/rhi/push.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) struct PushUniform {
[INFO] [stdout]    |                   ----------- field in this struct
[INFO] [stdout] 17 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PushUniform` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_active` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/push.rs:388:15
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub(crate) fn validate_active(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `PassTimestamps` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/query.rs:209:17
[INFO] [stdout]     |
[INFO] [stdout] 209 | pub(crate) type PassTimestamps = Option<(GlQuerySet, Option<u32>, Option<u32>)>;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_pass_timestamps` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/query.rs:211:15
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub(crate) fn prepare_pass_timestamps(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_pass_timestamps` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/query.rs:240:15
[INFO] [stdout]     |
[INFO] [stdout] 240 | pub(crate) fn start_pass_timestamps(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finish_pass_timestamps` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/query.rs:253:15
[INFO] [stdout]     |
[INFO] [stdout] 253 | pub(crate) fn finish_pass_timestamps(encoder: &mut GlEncoder) -> Result<()> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_inactive_color_slots` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/raster/mod.rs:771:4
[INFO] [stdout]     |
[INFO] [stdout] 771 | fn normalize_inactive_color_slots(state: &mut crate::backend::api::GlRasterState, slots: &[bool]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `allows_missing_element` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/binding.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn allows_missing_element(entry: &super::super::types::GlBindingLayoutEntry) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mip_count_for_binding` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/binding.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn mip_count_for_binding(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remember_group` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/binding.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn remember_group(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dynamic_offset` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/raster/binding.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn dynamic_offset(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_aspects` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/surface_depth.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(super) fn validate_aspects(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `native_aspect` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/surface_depth.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(super) fn native_aspect(view: &GlTextureView) -> crate::backend::api::GlTextureAspect {
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASE` is never used
[INFO] [stdout]  --> crates/gl/src/backend/rhi/raster/multiview/mod.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const BASE: &str = "fluxel_internal_view_index_base";
[INFO] [stdout]   |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `install` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/multiview/mod.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(super) fn install(encoder: &mut GlEncoder, pipeline: &GlRasterPipeline) -> Result<()> {
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `gradients` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/shader/binding_array_dynamic_sample.rs:293:5
[INFO] [stdout]     |
[INFO] [stdout] 287 | struct Choice {
[INFO] [stdout]     |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 293 |     gradients: Option<(Expr, Expr)>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `native_error` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/spi.rs:169:15
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub(crate) fn native_error(error: crate::backend::api::GlError) -> Error {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlSurfaceTargetToken` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/rhi/surface.rs:61:19
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub(crate) struct GlSurfaceTargetToken {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_current` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/surface.rs:69:19
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl GlSurfaceTargetToken {
[INFO] [stdout]    | ------------------------- method in this implementation
[INFO] [stdout] 69 |     pub(crate) fn is_current(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `target_token` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/surface.rs:161:19
[INFO] [stdout]     |
[INFO] [stdout] 160 | impl GlSurfaceImage {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 161 |     pub(crate) fn target_token(&self) -> GlSurfaceTargetToken {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `native_error` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/surface.rs:492:4
[INFO] [stdout]     |
[INFO] [stdout] 492 | fn native_error(error: crate::backend::api::GlError) -> Error {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:140:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |   macro_rules! native_handle {
[INFO] [stdout] ...
[INFO] [stdout] 140 |           pub struct $name(pub(crate) Rc<GlDeviceState>);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | / native_handle!(
[INFO] [stdout] 145 | |     GlMeshPipeline,
[INFO] [stdout]     | |     -------------- field in this struct
[INFO] [stdout] 146 | |     GlRayPipeline,
[INFO] [stdout] 147 | |     GlAcceleration,
[INFO] [stdout] 148 | |     GlSparseAllocation,
[INFO] [stdout] 149 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `GlMeshPipeline` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:140:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |   macro_rules! native_handle {
[INFO] [stdout] ...
[INFO] [stdout] 140 |           pub struct $name(pub(crate) Rc<GlDeviceState>);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | / native_handle!(
[INFO] [stdout] 145 | |     GlMeshPipeline,
[INFO] [stdout] 146 | |     GlRayPipeline,
[INFO] [stdout]     | |     ------------- field in this struct
[INFO] [stdout] 147 | |     GlAcceleration,
[INFO] [stdout] 148 | |     GlSparseAllocation,
[INFO] [stdout] 149 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `GlRayPipeline` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:140:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |   macro_rules! native_handle {
[INFO] [stdout] ...
[INFO] [stdout] 140 |           pub struct $name(pub(crate) Rc<GlDeviceState>);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | / native_handle!(
[INFO] [stdout] 145 | |     GlMeshPipeline,
[INFO] [stdout] 146 | |     GlRayPipeline,
[INFO] [stdout] 147 | |     GlAcceleration,
[INFO] [stdout]     | |     -------------- field in this struct
[INFO] [stdout] 148 | |     GlSparseAllocation,
[INFO] [stdout] 149 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `GlAcceleration` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:140:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |   macro_rules! native_handle {
[INFO] [stdout] ...
[INFO] [stdout] 140 |           pub struct $name(pub(crate) Rc<GlDeviceState>);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | / native_handle!(
[INFO] [stdout] 145 | |     GlMeshPipeline,
[INFO] [stdout] 146 | |     GlRayPipeline,
[INFO] [stdout] 147 | |     GlAcceleration,
[INFO] [stdout] 148 | |     GlSparseAllocation,
[INFO] [stdout]     | |     ------------------ field in this struct
[INFO] [stdout] 149 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `GlSparseAllocation` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `statistics_queries` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:166:16
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub struct GlQuerySetInner {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub(crate) statistics_queries: Vec<crate::backend::api::QueryId>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_inner` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:179:19
[INFO] [stdout]     |
[INFO] [stdout] 178 | impl GlQuerySet {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 179 |     pub(crate) fn from_inner(inner: GlQuerySetInner) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mip_uniforms` and `push_uniforms` are never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:223:16
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct GlComputePipelineInner {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 223 |     pub(crate) mip_uniforms: Vec<GlMipUniform>,
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub(crate) push_uniforms: Vec<super::push::PushUniform>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_inner` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:241:19
[INFO] [stdout]     |
[INFO] [stdout] 240 | impl GlComputePipeline {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 241 |     pub(crate) fn from_inner(inner: GlComputePipelineInner) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `buffer`, `offset`, and `size` are never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 313 |     UniformBuffer {
[INFO] [stdout]     |     ------------- fields in this variant
[INFO] [stdout] 314 |         buffer: GlBuffer,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 315 |         offset: u64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 316 |         size: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlBoundResource` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `buffer`, `offset`, and `size` are never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:319:9
[INFO] [stdout]     |
[INFO] [stdout] 318 |     StorageBuffer {
[INFO] [stdout]     |     ------------- fields in this variant
[INFO] [stdout] 319 |         buffer: GlBuffer,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 320 |         offset: u64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 321 |         size: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlBoundResource` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:325:13
[INFO] [stdout]     |
[INFO] [stdout] 325 |     Sampler(GlSampler),
[INFO] [stdout]     |     ------- ^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlBoundResource` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 325 -     Sampler(GlSampler),
[INFO] [stdout] 325 +     Sampler(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source_layer` and `source_mip` are never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:372:16
[INFO] [stdout]     |
[INFO] [stdout] 358 | pub struct GlTextureView {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 372 |     pub(crate) source_layer: u32,
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub(crate) source_mip: u32,
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlTextureView` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_inner` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:433:19
[INFO] [stdout]     |
[INFO] [stdout] 432 | impl GlSampler {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 433 |     pub(crate) fn from_inner(inner: GlSamplerInner) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mip_uniforms`, `state`, `push_uniforms`, and `vertex_layout` are never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:474:16
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub struct GlRasterPipelineInner {
[INFO] [stdout]     |            --------------------- fields in this struct
[INFO] [stdout] 474 |     pub(crate) mip_uniforms: Vec<GlMipUniform>,
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] 475 |     pub(crate) multiview: Option<u32>,
[INFO] [stdout] 476 |     pub(crate) state: Rc<GlDeviceState>,
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 482 |     pub(crate) push_uniforms: Vec<super::push::PushUniform>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 487 |     pub(crate) vertex_layout: crate::backend::api::GlVertexLayout,
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_inner` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:513:19
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl GlRasterPipeline {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] 513 |     pub(crate) fn from_inner(inner: GlRasterPipelineInner) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:581:16
[INFO] [stdout]     |
[INFO] [stdout] 578 | pub struct GlMap {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 581 |     pub(crate) offset: u64,
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_inner` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:597:19
[INFO] [stdout]     |
[INFO] [stdout] 596 | impl GlBuffer {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 597 |     pub(crate) fn from_inner(inner: GlBufferInner) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_inner` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:653:19
[INFO] [stdout]     |
[INFO] [stdout] 652 | impl GlTexture {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 653 |     pub(crate) fn from_inner(inner: GlTextureInner) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `samples`, `group`, `binding`, and `element` are never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:692:16
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub(crate) struct GlMipUniform {
[INFO] [stdout]     |                   ------------ fields in this struct
[INFO] [stdout] 692 |     pub(crate) samples: bool,
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 693 |     pub(crate) group: u32,
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout] 694 |     pub(crate) binding: u32,
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 695 |     pub(crate) element: Option<u32>,
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlMipUniform` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Shader` and `Sync` are never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/cache.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) enum ResourceRef {
[INFO] [stdout]    |                 ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 15 |     Shader(ShaderId),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     Sync(SyncId),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResourceRef` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len`, `live_bytes`, `drain`, and `purge` are never used
[INFO] [stdout]    --> crates/gl/src/backend/state/cache.rs:79:19
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl<K: Clone + Eq + std::hash::Hash, V> StructuralCache<K, V> {
[INFO] [stdout]     | -------------------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub(crate) fn len(&self) -> usize {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub(crate) const fn live_bytes(&self) -> u64 {
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub(crate) fn drain(&mut self, c: &mut CacheCounters) -> Vec<(K, V)> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub(crate) fn purge(&mut self, c: &mut CacheCounters) {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `VertexArray`, `DrawFramebuffer`, and `ReadFramebuffer` are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/state/context.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub(crate) enum DerivedCacheKind {
[INFO] [stdout]     |                 ---------------- variants in this enum
[INFO] [stdout] 104 |     VertexArray,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 105 |     DrawFramebuffer,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 106 |     ReadFramebuffer,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DerivedCacheKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/gl/src/backend/state/context.rs:170:19
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl ContextState {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub(crate) fn pass_failed(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub(crate) fn end_pass(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub(crate) const fn draw(&self) -> bool {
[INFO] [stdout]     |                         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub(crate) const fn dispatch(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub(crate) const fn clear(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub(crate) const fn query_command(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub(crate) const fn barrier(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub(crate) fn pipeline_failed(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub(crate) fn prepare_geometry(&self, wanted: CanonicalBlockId) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub(crate) fn commit_geometry(&mut self, wanted: CanonicalBlockId) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub(crate) fn geometry_failed(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     pub(crate) fn prepare_compute_program(&self, wanted: CanonicalBlockId) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub(crate) fn compute_failed(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub(crate) fn program_unbound(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub(crate) fn prepare_pixel_transfer(&self, wanted: PixelTransferPacket) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub(crate) fn commit_pixel_transfer(&mut self, wanted: PixelTransferPacket) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub(crate) const fn prepare_query_command(&self, _: CanonicalBlockId) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub(crate) fn commit_query_begin(&mut self, target: CanonicalBlockId) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub(crate) fn commit_query_end(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub(crate) fn query_failed(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub(crate) fn prepare_texture_slot(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     pub(crate) fn commit_texture_slot(&mut self, unit: u32, binding: CanonicalBlockId) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     pub(crate) fn prepare_storage_slot(&self, index: u32, binding: CanonicalBlockId) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 377 |     pub(crate) fn commit_storage_slot(&mut self, index: u32, binding: CanonicalBlockId) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 |     pub(crate) fn prepare_image_slot(&self, index: u32, binding: CanonicalBlockId) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 387 |     pub(crate) fn commit_image_slot(&mut self, index: u32, binding: CanonicalBlockId) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 407 |     pub(crate) fn retire_bind_group(&mut self, group: BindGroupKey) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub(crate) fn register_derived(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/event.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub(crate) enum StateEvent {
[INFO] [stdout]    |                 ---------- variants in this enum
[INFO] [stdout] 10 |     BufferRetired(BufferId),
[INFO] [stdout] 11 |     TextureRetired(TextureId),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 12 |     RenderbufferRetired(RenderbufferId),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |     FramebufferRetired(FramebufferId),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     QueryRetired(QueryId),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 15 |     SamplerRetired(SamplerId),
[INFO] [stdout] 16 |     ProgramRetired(ProgramId),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 17 |     VertexArrayRetired(VertexArrayId),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     ContextLost,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `StateEvent` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `declaring` is never used
[INFO] [stdout]   --> crates/gl/src/backend/state/event.rs:48:25
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl ScopedRawAccess {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 48 |     pub(crate) const fn declaring(domains: DirtyDomains) -> Self {
[INFO] [stdout]    |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `EMPTY`, `insert`, `remove`, `extend`, and `is_empty` are never used
[INFO] [stdout]   --> crates/gl/src/backend/state/knowledge.rs:58:22
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl DirtyDomains {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 58 |     pub(crate) const EMPTY: Self = Self(0);
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub(crate) fn insert(&mut self, domain: StateDomain) {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub(crate) fn remove(&mut self, domain: StateDomain) {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub(crate) fn extend(&mut self, other: Self) {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub(crate) const fn is_empty(self) -> bool {
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Oracle` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/state/knowledge.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub(crate) enum ExecutionMode {
[INFO] [stdout]     |                 ------------- variant in this enum
[INFO] [stdout] 119 |     Optimized,
[INFO] [stdout] 120 |     Oracle,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExecutionMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lower_texture_region` is never used
[INFO] [stdout]    --> crates/gl/src/backend/translate.rs:115:15
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub(crate) fn lower_texture_region(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mip_uniforms`
[INFO] [stdout]    --> crates/gl/src/backend/rhi/shader/mod.rs:215:5
[INFO] [stdout]     |
[INFO] [stdout] 215 |     mip_uniforms: Vec<super::types::GlMipUniform>,
[INFO] [stdout]     |     ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_mip_uniforms`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlFamilyApi` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/mod.rs:62:18
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub(crate) trait GlFamilyApi {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlTextureTarget` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/binding.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) enum GlTextureTarget {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlBindingValidationError` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/binding.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(crate) enum GlBindingValidationError {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `message` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/binding.rs:36:25
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl GlBindingValidationError {
[INFO] [stdout]    | ----------------------------- method in this implementation
[INFO] [stdout] 35 |     /// The stable validation wording providers report without reformatting.
[INFO] [stdout] 36 |     pub(crate) const fn message(self) -> &'static str {
[INFO] [stdout]    |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlBindingLimits` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/binding.rs:54:19
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub(crate) struct GlBindingLimits {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_texture_unit` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/binding.rs:64:15
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub(crate) fn validate_texture_unit(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_uniform_buffer_binding` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/binding.rs:78:15
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub(crate) fn validate_uniform_buffer_binding(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_uniform_range` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/binding.rs:106:15
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub(crate) fn validate_uniform_range(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlBindingApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/binding.rs:131:18
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub(crate) trait GlBindingApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlComputeLimits` is never constructed
[INFO] [stdout]  --> crates/gl/src/backend/api/compute.rs:7:19
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) struct GlComputeLimits {
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlDispatchGroups` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/compute.rs:14:19
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) struct GlDispatchGroups(pub [u32; 3]);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/compute.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl GlDispatchGroups {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] 16 |     pub(crate) fn validate(self, limits: GlComputeLimits) -> Result<(), GlError> {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlComputeDispatchApi` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/compute.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub(crate) trait GlComputeDispatchApi: GlFamilyApi {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Rgb8` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/copy.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub(crate) enum GlPixelFormat {
[INFO] [stdout]    |                 ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 10 |     Rgb8,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlPixelFormat` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `bytes_per_pixel` and `block_extent` are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/copy.rs:28:25
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl GlPixelFormat {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] 28 |     pub(crate) const fn bytes_per_pixel(self) -> u32 {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub(crate) const fn block_extent(self) -> (u32, u32) {
[INFO] [stdout]    |                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Disallow` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/copy.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub(crate) enum GlRepackPolicy {
[INFO] [stdout]    |                 -------------- variant in this enum
[INFO] [stdout] 54 |     Disallow,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlRepackPolicy` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `stride_is_mappable`, `staged_row_parameters`, `validate_for`, `required_bytes`, and `required_bytes_unchecked` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/copy.rs:78:19
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl GlPixelLayout {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub(crate) fn stride_is_mappable(self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  97 |     pub(crate) fn staged_row_parameters(self) -> (u32, u32) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub(crate) fn validate_for(self, region: GlTextureRegion) -> Result<(), GlCopyValidationError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub(crate) fn required_bytes(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn required_bytes_unchecked(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlPixelStoreState` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/copy.rs:190:19
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub(crate) struct GlPixelStoreState {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `DEFAULT`, `validate`, and `validate_for_transfer` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/copy.rs:205:22
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl GlPixelStoreState {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 205 |     pub(crate) const DEFAULT: Self = Self {
[INFO] [stdout]     |                      ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub(crate) fn validate(self) -> Result<(), GlCopyValidationError> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     pub(crate) fn validate_for_transfer(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlReadback` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/copy.rs:244:19
[INFO] [stdout]     |
[INFO] [stdout] 244 | pub(crate) struct GlReadback {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate_for` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/copy.rs:250:19
[INFO] [stdout]     |
[INFO] [stdout] 248 | impl GlReadback {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 249 |     /// Ensures a successful provider result is neither truncated nor silently overlong.
[INFO] [stdout] 250 |     pub(crate) fn validate_for(
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlCopyValidationError` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/copy.rs:264:17
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub(crate) enum GlCopyValidationError {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlCopyDomainApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/copy.rs:290:18
[INFO] [stdout]     |
[INFO] [stdout] 290 | pub(crate) trait GlCopyDomainApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlContextInfo` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/discovery.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct GlContextInfo {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/discovery.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl GlContextInfo {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 21 |     /// Creates the identity from exact provider strings.
[INFO] [stdout] 22 |     pub(crate) fn new(
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub(crate) const fn profile(&self) -> GlFamilyProfile {
[INFO] [stdout]    |                         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub(crate) fn version(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) fn shading_language_version(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub(crate) fn vendor(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub(crate) fn renderer(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub(crate) fn driver_or_browser(&self) -> &str {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub(crate) fn flags(&self) -> &GlContextFlags {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlContextFlags` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/discovery.rs:73:19
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub(crate) struct GlContextFlags {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlCapability` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/discovery.rs:83:17
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub(crate) enum GlCapability {
[INFO] [stdout]    |                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `requires_probe` and `limits_satisfied` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:99:14
[INFO] [stdout]     |
[INFO] [stdout]  98 | impl GlCapability {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout]  99 |     const fn requires_probe(self) -> bool {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn limits_satisfied(self, l: &GlLimits, formats: &GlFormatTable) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlOperationProbe` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:131:17
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub(crate) enum GlOperationProbe {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlCapabilityFact` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:139:19
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub(crate) struct GlCapabilityFact {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_enabled` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:145:14
[INFO] [stdout]     |
[INFO] [stdout] 144 | impl GlCapabilityFact {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 145 |     const fn is_enabled(self, c: GlCapability) -> bool {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlCapabilitySet` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:153:19
[INFO] [stdout]     |
[INFO] [stdout] 153 | pub(crate) struct GlCapabilitySet {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `fact`, `supports`, and `supports_compute` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:157:19
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl GlCapabilitySet {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] 157 |     pub(crate) fn fact(&self, c: GlCapability) -> Option<GlCapabilityFact> {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub(crate) fn supports(&self, c: GlCapability) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub(crate) fn supports_compute(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlSurfaceFacts` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:197:17
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub(crate) enum GlSurfaceFacts {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlDiscoveryBuilder` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:213:19
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub(crate) struct GlDiscoveryBuilder {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `surface_facts`, `resolve`, and `build` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:224:19
[INFO] [stdout]     |
[INFO] [stdout] 222 | impl GlDiscoveryBuilder {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout] 223 |     /// Binds all raw observations to one exact context generation before resolution.
[INFO] [stdout] 224 |     pub(crate) fn new(
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 257 |     pub(crate) fn surface_facts(&mut self, facts: GlSurfaceFacts) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub(crate) fn resolve(
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     pub(crate) fn build(self) -> GlDiscoverySnapshot {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlDiscoverySnapshot` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:290:19
[INFO] [stdout]     |
[INFO] [stdout] 290 | pub(crate) struct GlDiscoverySnapshot {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:301:25
[INFO] [stdout]     |
[INFO] [stdout] 299 | impl GlDiscoverySnapshot {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] 300 |     /// Returns the exact context generation that authorized this snapshot.
[INFO] [stdout] 301 |     pub(crate) const fn context_stamp(&self) -> ContextStamp {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub(crate) fn context(&self) -> &GlContextInfo {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub(crate) fn extensions(&self) -> &GlExtensionSet {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 313 |     pub(crate) const fn limits(&self) -> GlLimits {
[INFO] [stdout]     |                         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub(crate) fn formats(&self) -> &GlFormatTable {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub(crate) fn capabilities(&self) -> &GlCapabilitySet {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 328 |     pub(crate) fn surface_facts(&self) -> GlSurfaceFacts {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 339 |     pub(crate) fn max_multiview_view_count(&self) -> u32 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlDiscoveryError` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:361:17
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub(crate) enum GlDiscoveryError {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_profile` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/discovery.rs:366:4
[INFO] [stdout]     |
[INFO] [stdout] 366 | fn validate_profile(profile: GlFamilyProfile) -> Result<(), GlDiscoveryError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/error.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub enum GlContextLifecycle {
[INFO] [stdout]    |          ------------------ variants in this enum
[INFO] [stdout]  8 |     /// Context exists but has not accepted work.
[INFO] [stdout]  9 |     Inactive,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 10 |     /// Context may accept API calls.
[INFO] [stdout] 11 |     Active,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 12 |     /// Surface is unavailable but the context is not lost.
[INFO] [stdout] 13 |     Suspended,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 14 |     /// The driver or browser invalidated the context.
[INFO] [stdout] 15 |     Lost,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 16 |     /// Context recreation is in progress.
[INFO] [stdout] 17 |     Restoring,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 18 |     /// A failed transition makes further work unsafe.
[INFO] [stdout] 19 |     Poisoned,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 20 |     /// Context ownership has ended permanently.
[INFO] [stdout] 21 |     Disposed,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlContextLifecycle` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `accepts_commands` and `refusal` are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/error.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl GlContextLifecycle {
[INFO] [stdout]    | ----------------------- methods in this implementation
[INFO] [stdout] 25 |     /// Returns whether commands may be issued in this lifecycle state.
[INFO] [stdout] 26 |     pub const fn accepts_commands(self) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub(crate) fn refusal(self, operation: &'static str) -> GlError {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/error.rs:61:5
[INFO] [stdout]     |
[INFO] [stdout]  54 | pub enum GlError {
[INFO] [stdout]     |          ------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  61 |     Validation {
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     StaleObject {
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  72 |     WrongContext {
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     WrongThread {
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     InvalidLifecycle {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     ContextLost { operation: &'static str },
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]  93 |     /// The context has been disposed.
[INFO] [stdout]  94 |     Disposed { operation: &'static str },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]  95 |     /// A poisoned context cannot safely continue.
[INFO] [stdout]  96 |     Poisoned { operation: &'static str },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]  97 |     /// Allocation failed in the driver or browser.
[INFO] [stdout]  98 |     OutOfMemory { operation: &'static str },
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]  99 |     /// Shader compilation failed with a complete driver log.
[INFO] [stdout] 100 |     Shader { stage: &'static str, log: String },
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 101 |     /// Program linking or validation failed with a complete driver log.
[INFO] [stdout] 102 |     Program {
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     IncompleteFramebuffer {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     Timeout { operation: &'static str },
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 113 |     /// A native driver or browser returned a non-specialized error.
[INFO] [stdout] 114 |     Driver {
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlKnownExtension` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/extensions.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub enum GlKnownExtension {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `raw_name`, `from_raw_name`, and `is_legal_for` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/extensions.rs:239:18
[INFO] [stdout]     |
[INFO] [stdout] 237 | impl GlKnownExtension {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 238 |     /// Returns the registry spelling retained as raw runtime evidence.
[INFO] [stdout] 239 |     pub const fn raw_name(self) -> &'static str {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     pub fn from_raw_name(name: &str) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub const fn is_legal_for(self, profile: GlFamilyProfile) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExtensionProvenance` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/extensions.rs:462:10
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub enum ExtensionProvenance {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlExtensionSet` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/extensions.rs:480:12
[INFO] [stdout]     |
[INFO] [stdout] 480 | pub struct GlExtensionSet {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/extensions.rs:487:12
[INFO] [stdout]     |
[INFO] [stdout] 485 | impl GlExtensionSet {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] 486 |     /// Records a runtime extension string, even when Fluxel has no typed use for it.
[INFO] [stdout] 487 |     pub fn report_raw(&mut self, name: impl Into<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 498 |     pub fn acquire(&mut self, extension: GlKnownExtension) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 503 |     pub fn probe(&mut self, extension: GlKnownExtension) -> bool {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 508 |     pub fn fail(&mut self, extension: GlKnownExtension) -> bool {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 519 |     pub fn raw_reported_names(&self) -> impl Iterator<Item = &str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 524 |     pub fn provenance(&self, extension: GlKnownExtension) -> Option<ExtensionProvenance> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 529 |     pub fn is_acquired(&self, extension: GlKnownExtension) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 537 |     pub fn is_probed(&self, extension: GlKnownExtension) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 544 |     fn advance(&mut self, extension: GlKnownExtension, target: ExtensionProvenance) -> bool {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoreOrExtension` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/extensions.rs:558:12
[INFO] [stdout]     |
[INFO] [stdout] 558 | pub struct CoreOrExtension {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CapabilityEvidence` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/extensions.rs:571:10
[INFO] [stdout]     |
[INFO] [stdout] 571 | pub enum CapabilityEvidence {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/extensions.rs:580:12
[INFO] [stdout]     |
[INFO] [stdout] 578 | impl CoreOrExtension {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 579 |     /// Resolves core and extension alternatives without treating raw reporting as enablement.
[INFO] [stdout] 580 |     pub fn resolve(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `supports_compressed_3d` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/formats.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl GlFormat {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     pub(crate) fn supports_compressed_3d(
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlFormatResourceKind` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/formats.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub(crate) enum GlFormatResourceKind {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlFormatEvidence` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/formats.rs:66:17
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub(crate) enum GlFormatEvidence {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlFormatCapabilities` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/formats.rs:81:19
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub(crate) struct GlFormatCapabilities {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlFormatTable` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/formats.rs:110:19
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub(crate) struct GlFormatTable {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/formats.rs:119:19
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl GlFormatTable {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 118 |     /// Record exact byte-preserving pixel-pack support separately from blits.
[INFO] [stdout] 119 |     pub(crate) fn mark_exact_buffer_readback(&mut self, format: GlFormat) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub(crate) fn exact_buffer_readback(&self, format: GlFormat) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub(crate) fn mark_exact_alias_readback(&mut self, format: GlFormat) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub(crate) fn exact_alias_readback(&self, format: GlFormat) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub(crate) fn mark_compressed_alias_readback(&mut self, format: GlFormat, alias: GlFormat) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     pub(crate) fn compressed_alias_readback(&self, format: GlFormat) -> Option<GlFormat> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub(crate) fn record(
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub(crate) fn get(&self, format: GlFormat, sample_count: u32) -> Option<GlFormatCapabilities> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub(crate) fn get_for(
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub(crate) fn iter(&self) -> impl Iterator<Item = GlFormatCapabilities> + '_ {
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub(crate) fn has_storage_read_write(&self) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 223 |     pub(crate) fn validate_evidence(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub(crate) fn validate_for_limits(&self, limits: &GlLimits) -> Result<(), GlFormatTableError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlFormatTableError` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/formats.rs:335:17
[INFO] [stdout]     |
[INFO] [stdout] 335 | pub(crate) enum GlFormatTableError {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Bc1RgbUnorm` and `Bc1RgbSrgb` are never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/format_types.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) enum GlFormat {
[INFO] [stdout]    |                 -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 69 |     Bc1RgbUnorm,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     Bc1RgbSrgb,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlFormat` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_integer_color`, `is_float_color`, and `blit_compatible` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/format_types.rs:129:25
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl GlFormat {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 128 |     /// Integer framebuffer colors cannot use GL's linear blit filter.
[INFO] [stdout] 129 |     pub(crate) const fn is_integer_color(self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub(crate) const fn is_float_color(self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub(crate) fn blit_compatible(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlCompressedSizeError` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/format_types.rs:312:17
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub(crate) enum GlCompressedSizeError {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `checked_encoded_size` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/format_types.rs:323:19
[INFO] [stdout]     |
[INFO] [stdout] 319 | impl GlCompressedFormatInfo {
[INFO] [stdout]     | --------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 323 |     pub(crate) fn checked_encoded_size(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_core_compressed_for`, `is_non_compressed_core_baseline_for`, and `is_supplied_by_extension` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/format_types.rs:406:25
[INFO] [stdout]     |
[INFO] [stdout] 346 | impl GlFormat {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 406 |     pub(crate) const fn is_core_compressed_for(self, profile: GlFamilyProfile) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 462 |     pub(super) const fn is_non_compressed_core_baseline_for(
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 545 |     pub(super) const fn is_supplied_by_extension(self, extension: GlKnownExtension) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Offscreen` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/framebuffer.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub(crate) enum GlRenderTarget {
[INFO] [stdout]    |                 -------------- variant in this enum
[INFO] [stdout] 45 |     Offscreen(FramebufferId),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlRenderTarget` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Allocated` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/framebuffer.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub(crate) enum GlPassAttachmentView {
[INFO] [stdout]    |                 -------------------- variant in this enum
[INFO] [stdout] 53 |     Allocated(GlTextureView),
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlPassAttachmentView` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Texture` and `Renderbuffer` are never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/framebuffer.rs:59:5
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub(crate) enum GlAttachmentTarget {
[INFO] [stdout]    |                 ------------------ variants in this enum
[INFO] [stdout] 59 |     Texture(TextureId),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 60 |     /// A renderbuffer allocation, which has no mip chain and no layers.
[INFO] [stdout] 61 |     Renderbuffer(RenderbufferId),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlAttachmentTarget` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlFramebufferDescriptor` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:139:19
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub(crate) struct GlFramebufferDescriptor {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlBlitRegion` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:163:19
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub(crate) struct GlBlitRegion {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:171:19
[INFO] [stdout]     |
[INFO] [stdout] 170 | impl GlBlitRegion {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] 171 |     pub(crate) fn validate(&self) -> Result<(), GlFramebufferValidationError> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlBlitMask` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:181:19
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub(crate) struct GlBlitMask {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:188:25
[INFO] [stdout]     |
[INFO] [stdout] 187 | impl GlBlitMask {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 188 |     pub(crate) const fn is_empty(self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlFramebufferValidationError` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:194:17
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub(crate) enum GlFramebufferValidationError {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `context` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:220:14
[INFO] [stdout]     |
[INFO] [stdout] 219 | impl GlAttachmentTarget {
[INFO] [stdout]     | ----------------------- method in this implementation
[INFO] [stdout] 220 |     const fn context(self) -> super::ContextStamp {
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_depth_stencil` and `validate_shape` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:228:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | impl GlTextureView {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] 228 |     fn is_depth_stencil(self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     fn validate_shape(self) -> Result<(), GlFramebufferValidationError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_view_count` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:257:4
[INFO] [stdout]     |
[INFO] [stdout] 257 | fn validate_view_count(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `validate`, `view_count`, and `validate_multiview` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:274:19
[INFO] [stdout]     |
[INFO] [stdout] 273 | impl GlFramebufferDescriptor {
[INFO] [stdout]     | ---------------------------- methods in this implementation
[INFO] [stdout] 274 |     pub(crate) fn validate(
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub(crate) fn view_count(&self) -> u32 {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 361 |     pub(crate) fn validate_multiview(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `validate`, `view_count`, and `validate_multiview` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:369:19
[INFO] [stdout]     |
[INFO] [stdout] 368 | impl GlRenderPassDescriptor {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] 369 |     pub(crate) fn validate(
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub(crate) fn view_count(&self) -> u32 {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 454 |     pub(crate) fn validate_multiview(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlFramebufferApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/framebuffer.rs:462:18
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub(crate) trait GlFramebufferApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlDrawArraysIndirectAbi` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/indirect.rs:26:19
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) struct GlDrawArraysIndirectAbi {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlDrawElementsIndirectAbi` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/indirect.rs:35:19
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub(crate) struct GlDrawElementsIndirectAbi {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlDispatchIndirectAbi` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/indirect.rs:50:19
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) struct GlDispatchIndirectAbi {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `SIZE` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/indirect.rs:56:22
[INFO] [stdout]    |
[INFO] [stdout] 54 | impl GlDispatchIndirectAbi {
[INFO] [stdout]    | -------------------------- associated constant in this implementation
[INFO] [stdout] 55 |     /// Exact record size in bytes, taken from the layout instead of restated.
[INFO] [stdout] 56 |     pub(crate) const SIZE: u64 = std::mem::size_of::<Self>() as u64;
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_indirect_range` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/indirect.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn validate_indirect_range(range: GlBufferRange, operation: &'static str) -> Result<(), GlError> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_indirect_allocation` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/indirect.rs:84:15
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub(crate) fn validate_indirect_allocation(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlIndirectAbi` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/indirect.rs:95:17
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) enum GlIndirectAbi {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlIndirectCommandRange` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:100:19
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub(crate) struct GlIndirectCommandRange {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:108:19
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl GlIndirectCommandRange {
[INFO] [stdout]     | --------------------------- method in this implementation
[INFO] [stdout] 108 |     pub(crate) fn validate(self, operation: &'static str) -> Result<(), GlError> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlDispatchIndirectCommand` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:143:19
[INFO] [stdout]     |
[INFO] [stdout] 143 | pub(crate) struct GlDispatchIndirectCommand {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:152:19
[INFO] [stdout]     |
[INFO] [stdout] 147 | impl GlDispatchIndirectCommand {
[INFO] [stdout]     | ------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub(crate) fn validate(self, operation: &'static str) -> Result<(), GlError> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlIndirectCountRange` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:169:19
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub(crate) struct GlIndirectCountRange {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:185:19
[INFO] [stdout]     |
[INFO] [stdout] 174 | impl GlIndirectCountRange {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub(crate) fn validate(self, operation: &'static str) -> Result<(), GlError> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlDrawIndirectApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:203:18
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub(crate) trait GlDrawIndirectApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlDispatchIndirectApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:206:18
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub(crate) trait GlDispatchIndirectApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlMultiDrawIndirectApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:210:18
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub(crate) trait GlMultiDrawIndirectApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlMultiDrawCountApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/indirect.rs:213:18
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub(crate) trait GlMultiDrawCountApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `bits`, and `get` are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/limits.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl GlFiniteF32 {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout]  9 |     /// Rejects NaN and infinities while preserving every bit of a finite result.
[INFO] [stdout] 10 |     pub(crate) fn new(value: f32) -> Option<Self> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     pub(crate) const fn bits(self) -> u32 {
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub(crate) const fn get(self) -> f32 {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/limits.rs:95:19
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl GlLimits {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub(crate) fn push_constant_bytes(&self, compute: bool) -> u32 {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub const fn unavailable() -> Self {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 162 |     pub(crate) fn validate_profile_minimums(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub(crate) const fn supports_compute(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub(crate) const fn supports_storage_buffers(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub(crate) const fn supports_storage_images(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub(crate) const fn supports_single_indirect(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     pub(crate) const fn supports_multi_draw_indirect(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub(crate) const fn supports_multiview(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlLimitViolation` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/limits.rs:228:19
[INFO] [stdout]     |
[INFO] [stdout] 228 | pub(crate) struct GlLimitViolation {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlProfileMinimums` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/limits.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 | struct GlProfileMinimums {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `for_profile` and `requirements` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/limits.rs:252:14
[INFO] [stdout]     |
[INFO] [stdout] 251 | impl GlProfileMinimums {
[INFO] [stdout]     | ---------------------- associated items in this implementation
[INFO] [stdout] 252 |     const fn for_profile(profile: GlFamilyProfile) -> Self {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     fn requirements(self, l: &GlLimits) -> [(&'static str, u64, u64); 14] {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `raster_topology_mode` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/lowering.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) const fn raster_topology_mode(topology: GlPrimitiveTopology) -> u32 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `raster_compare_function` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/lowering.rs:21:21
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) const fn raster_compare_function(compare: GlDepthCompareFunction) -> u32 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `raster_stencil_operation` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/lowering.rs:34:21
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub(crate) const fn raster_stencil_operation(operation: GlStencilOperation) -> u32 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `raster_blend_factor` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/lowering.rs:47:21
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(crate) const fn raster_blend_factor(factor: GlBlendFactor) -> u32 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `raster_blend_operation` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/lowering.rs:69:21
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub(crate) const fn raster_blend_operation(operation: GlBlendOperation) -> u32 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sampler_address_mode` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/lowering.rs:79:21
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub(crate) const fn sampler_address_mode(mode: GlAddressMode) -> i32 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sampler_mag_filter` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/lowering.rs:87:21
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub(crate) const fn sampler_mag_filter(mode: GlFilterMode) -> i32 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sampler_min_filter` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/lowering.rs:94:21
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub(crate) const fn sampler_min_filter(min: GlFilterMode, mip: GlMipmapFilterMode) -> i32 {
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sampler_compare_function` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/lowering.rs:103:21
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub(crate) const fn sampler_compare_function(compare: GlCompareFunction) -> i32 {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `depth_attachment_point` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/lowering.rs:116:21
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub(crate) const fn depth_attachment_point(format: GlFormat) -> Option<u32> {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_stencil_plane` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/lowering.rs:125:21
[INFO] [stdout]     |
[INFO] [stdout] 125 | pub(crate) const fn has_stencil_plane(format: GlFormat) -> bool {
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlMultiDrawValidationError` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/multi_draw.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(crate) enum GlMultiDrawValidationError {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlMultiDraw` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/multi_draw.rs:42:19
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub(crate) struct GlMultiDraw {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `draws`, `needs_instance_counts`, and `validate` are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/multi_draw.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl GlMultiDraw {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 47 |     /// Builds a batch, rejecting one this contract cannot issue as written.
[INFO] [stdout] 48 |     pub(crate) fn new(draws: Vec<GlDrawCommand>) -> Result<Self, GlMultiDrawValidationError> {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub(crate) fn draws(&self) -> &[GlDrawCommand] {
[INFO] [stdout]    |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub(crate) fn needs_instance_counts(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn validate(&self) -> Result<(), GlMultiDrawValidationError> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_non_indexed` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/multi_draw.rs:92:4
[INFO] [stdout]    |
[INFO] [stdout] 92 | fn validate_non_indexed(draw: &GlNonIndexedDraw) -> Result<(), GlMultiDrawValidationError> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_indexed` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/multi_draw.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn validate_indexed(draw: &GlIndexedDraw) -> Result<(), GlMultiDrawValidationError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `issue_single_draws` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/multi_draw.rs:134:15
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub(crate) fn issue_single_draws(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlMultiDrawApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/multi_draw.rs:152:18
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub(crate) trait GlMultiDrawApi: GlRasterCommandApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `NEXT_CONTEXT_OWNER` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/object.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | static NEXT_CONTEXT_OWNER: AtomicU64 = AtomicU64::new(1);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `current` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/object.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl OwnerThreadIdentity {
[INFO] [stdout]    | ------------------------ associated function in this implementation
[INFO] [stdout] 21 |     /// Captures the calling thread.
[INFO] [stdout] 22 |     pub fn current() -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `get` are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/object.rs:36:18
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl DeviceIdentity {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 35 |     /// Creates a nonzero device identity from allocator-owned metadata.
[INFO] [stdout] 36 |     pub const fn new(value: u64) -> Option<Self> {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub const fn get(self) -> u64 {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `INITIAL`, `checked_next`, and `get` are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/object.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl ContextEpoch {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 54 |     /// The first live context generation.
[INFO] [stdout] 55 |     pub const INITIAL: Self = Self(NonZeroU64::MIN);
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub const fn checked_next(self) -> Option<Self> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub const fn get(self) -> u64 {
[INFO] [stdout]    |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `allocate` and `new` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:89:19
[INFO] [stdout]     |
[INFO] [stdout]  83 | impl ContextStamp {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub(crate) fn allocate() -> Option<Self> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub const fn new(device: DeviceIdentity, epoch: ContextEpoch) -> Self {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgramObject` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct ProgramObject;
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SamplerObject` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub struct SamplerObject;
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ShaderObject` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub struct ShaderObject;
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VertexArrayObject` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub struct VertexArrayObject;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SyncObject` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub struct SyncObject;
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SurfaceImageObject` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:164:12
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub struct SurfaceImageObject;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:192:25
[INFO] [stdout]     |
[INFO] [stdout] 190 | impl<K: GlObjectKind> ObjectIdentity<K> {
[INFO] [stdout]     | --------------------------------------- associated function in this implementation
[INFO] [stdout] 191 |     /// Creates a typed identity from Fluxel-owned allocation metadata.
[INFO] [stdout] 192 |     pub(crate) const fn new(context: ContextStamp, slot: u32, generation: u32) -> Self {
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProgramId` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:207:10
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub type ProgramId = ObjectIdentity<ProgramObject>;
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SamplerId` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:211:10
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub type SamplerId = ObjectIdentity<SamplerObject>;
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShaderId` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:213:10
[INFO] [stdout]     |
[INFO] [stdout] 213 | pub type ShaderId = ObjectIdentity<ShaderObject>;
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VertexArrayId` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:215:10
[INFO] [stdout]     |
[INFO] [stdout] 215 | pub type VertexArrayId = ObjectIdentity<VertexArrayObject>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SyncId` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:221:10
[INFO] [stdout]     |
[INFO] [stdout] 221 | pub type SyncId = ObjectIdentity<SyncObject>;
[INFO] [stdout]     |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `SurfaceImageId` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/object.rs:223:10
[INFO] [stdout]     |
[INFO] [stdout] 223 | pub type SurfaceImageId = ObjectIdentity<SurfaceImageObject>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlSurfaceSize` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/presentation.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct GlSurfaceSize {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_zero` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/presentation.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl GlSurfaceSize {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 16 |     pub const fn is_zero(self) -> bool {
[INFO] [stdout]    |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlSurfaceGeneration` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/presentation.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) struct GlSurfaceGeneration(NonZeroU64);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlSurfaceLease` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/presentation.rs:23:19
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub(crate) struct GlSurfaceLease {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlSurfaceLeaseBook` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/presentation.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(crate) struct GlSurfaceLeaseBook {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `acquire`, `validate`, `consume`, and `invalidate_generation` are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/presentation.rs:37:19
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl GlSurfaceLeaseBook {
[INFO] [stdout]    | ----------------------- associated items in this implementation
[INFO] [stdout] 37 |     pub(crate) fn new() -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub(crate) fn acquire(
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub(crate) fn validate(
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub(crate) fn consume(
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub(crate) fn invalidate_generation(&mut self) -> Result<(), GlError> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlSurfaceAcquire` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/presentation.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub(crate) enum GlSurfaceAcquire {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `acquire_position` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/presentation.rs:132:15
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub(crate) fn acquire_position(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlSurfacePresentationApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/presentation.rs:161:18
[INFO] [stdout]     |
[INFO] [stdout] 161 | pub(crate) trait GlSurfacePresentationApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_publish_source` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/presentation.rs:193:15
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub(crate) fn validate_publish_source(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlQueryResult` is never used
[INFO] [stdout]  --> crates/gl/src/backend/api/query.rs:6:17
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub(crate) enum GlQueryResult {
[INFO] [stdout]   |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlQueryObjectsApi` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/query.rs:19:18
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub(crate) trait GlQueryObjectsApi: GlFamilyApi {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlOcclusionQueryApi` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/query.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) trait GlOcclusionQueryApi: GlFamilyApi {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlElapsedQueryApi` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/query.rs:32:18
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) trait GlElapsedQueryApi: GlFamilyApi {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlTimestampQueryApi` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/query.rs:38:18
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub(crate) trait GlTimestampQueryApi: GlFamilyApi {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlAdvancedDrawCommand` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/raster.rs:180:19
[INFO] [stdout]     |
[INFO] [stdout] 180 | pub(crate) struct GlAdvancedDrawCommand {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlAdvancedRasterCapabilities` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/raster.rs:186:19
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub(crate) struct GlAdvancedRasterCapabilities {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlRasterValidationError` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/raster.rs:191:17
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub(crate) enum GlRasterValidationError {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlRasterValidationInfo` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/raster.rs:205:19
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub(crate) struct GlRasterValidationInfo {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/raster.rs:213:19
[INFO] [stdout]     |
[INFO] [stdout] 212 | impl GlRasterState {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 213 |     pub(crate) fn validate(
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/raster.rs:284:19
[INFO] [stdout]     |
[INFO] [stdout] 283 | impl GlAdvancedDrawCommand {
[INFO] [stdout]     | -------------------------- method in this implementation
[INFO] [stdout] 284 |     pub(crate) fn validate(
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlRasterPipeline` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/raster.rs:298:19
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub(crate) struct GlRasterPipeline {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlRasterCommandApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/raster.rs:306:18
[INFO] [stdout]     |
[INFO] [stdout] 306 | pub(crate) trait GlRasterCommandApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlAdvancedRasterApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/raster.rs:316:18
[INFO] [stdout]     |
[INFO] [stdout] 316 | pub(crate) trait GlAdvancedRasterApi: GlRasterCommandApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/resource.rs:113:25
[INFO] [stdout]     |
[INFO] [stdout]  85 | impl GlBufferRole {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub(crate) const fn name(self) -> &'static str {
[INFO] [stdout]     |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlBufferRange` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/resource.rs:217:19
[INFO] [stdout]     |
[INFO] [stdout] 217 | pub(crate) struct GlBufferRange {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate_for` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/resource.rs:224:19
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl GlBufferRange {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 224 |     pub(crate) fn validate_for(self, desc: GlBufferDesc) -> Result<(), GlResourceValidationError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlResourceApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/resource.rs:240:18
[INFO] [stdout]     |
[INFO] [stdout] 240 | pub(crate) trait GlResourceApi: super::GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlRenderBufferDesc` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/resource_texture.rs:25:19
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub(crate) struct GlRenderBufferDesc {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/resource_texture.rs:33:19
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl GlRenderBufferDesc {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] 33 |     pub(crate) fn validate(self) -> Result<(), GlResourceValidationError> {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `All`, `DepthOnly`, and `StencilOnly` are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/resource_texture.rs:182:5
[INFO] [stdout]     |
[INFO] [stdout] 181 | pub(crate) enum GlTextureAspect {
[INFO] [stdout]     |                 --------------- variants in this enum
[INFO] [stdout] 182 |     All,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 183 |     Color,
[INFO] [stdout] 184 |     DepthOnly,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 185 |     StencilOnly,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlTextureAspect` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlTextureSubresource` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/resource_texture.rs:190:19
[INFO] [stdout]     |
[INFO] [stdout] 190 | pub(crate) struct GlTextureSubresource {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate_for` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/resource_texture.rs:199:19
[INFO] [stdout]     |
[INFO] [stdout] 198 | impl GlTextureSubresource {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] 199 |     pub(crate) fn validate_for(self, desc: GlTextureDesc) -> Result<(), GlResourceValidationError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlTextureRegion` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/resource_texture.rs:224:19
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub(crate) struct GlTextureRegion {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate_for` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/resource_texture.rs:230:19
[INFO] [stdout]     |
[INFO] [stdout] 229 | impl GlTextureRegion {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 230 |     pub(crate) fn validate_for(self, desc: GlTextureDesc) -> Result<(), GlResourceValidationError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_texture_copy` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/resource_texture.rs:263:15
[INFO] [stdout]     |
[INFO] [stdout] 263 | pub(crate) fn validate_texture_copy(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/resource_texture.rs:331:5
[INFO] [stdout]     |
[INFO] [stdout] 323 | pub(crate) enum GlResourceValidationError {
[INFO] [stdout]     |                 ------------------------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 331 |     ZeroRangeSize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 332 |     BufferRangeOutOfBounds,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 333 |     ZeroTextureExtent,
[INFO] [stdout] 334 |     ZeroRenderBufferExtent,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     ZeroLayerCount,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 344 |     MipLevelOutOfBounds,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 345 |     LayerRangeOutOfBounds,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 346 |     ZeroCopyExtent,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 347 |     TextureRegionOutOfBounds,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 348 |     SubresourceRegionOutOfBounds,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 349 |     ThreeDimensionalSubresourceLayers,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 350 |     IncompatibleCopyFormat,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 351 |     IncompatibleCopySampleCount,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 352 |     IncompatibleCopyAspect,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 353 |     IncompatibleCopyExtent,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 |     CompressedCopyBlockMisaligned,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlResourceValidationError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `message` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/resource_texture.rs:367:19
[INFO] [stdout]     |
[INFO] [stdout] 359 | impl GlResourceValidationError {
[INFO] [stdout]     | ------------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 367 |     pub(crate) fn message(&self) -> String {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate_for` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/sampler.rs:72:19
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl GlSamplerDesc {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub(crate) fn validate_for(
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `AnisotropyExtensionUnavailable`, `AnisotropyLimitUnavailable`, and `AnisotropyExceedsLimit` are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/sampler.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub(crate) enum GlSamplerValidationError {
[INFO] [stdout]     |                 ------------------------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 102 |     AnisotropyExtensionUnavailable,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 103 |     AnisotropyLimitUnavailable,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 104 |     AnisotropyExceedsLimit,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlSamplerValidationError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlSamplerApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/sampler.rs:108:18
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub(crate) trait GlSamplerApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `CombinedTextureSampler` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/shader.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub(crate) enum GlShaderResourceKind {
[INFO] [stdout]    |                 -------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 65 |     CombinedTextureSampler,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlShaderResourceKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `matches_uniform` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/shader.rs:123:19
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl GlSampledBindingType {
[INFO] [stdout]     | ------------------------- method in this implementation
[INFO] [stdout] 123 |     pub(crate) fn matches_uniform(self, ty: u32) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UniformBlock`, `TextureUnit`, `StorageBlock`, and `ImageUnit` are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/shader.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub(crate) enum GlExecutableBindingLocation {
[INFO] [stdout]     |                 --------------------------- variants in this enum
[INFO] [stdout] 204 |     UniformBlock(u32),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 205 |     TextureUnit(u32),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     StorageBlock(u32),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     ImageUnit(u32),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlExecutableBindingLocation` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/api/shader.rs:269:5
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub(crate) enum GlShaderValidationError {
[INFO] [stdout]     |                 ----------------------- variants in this enum
[INFO] [stdout] 269 |     MixedShaderFormats,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 270 |     WrongStage,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     ZeroArrayCount,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 275 |     DuplicateLogicalBinding,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 276 |     DuplicateLogicalAssignment,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 277 |     DuplicateExecutableAssignment,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 278 |     MissingStorageImageUnit,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 279 |     StorageImageUnitMismatch,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 280 |     DuplicateVertexLocation,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 281 |     DuplicateFragmentOutputLocation,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 282 |     ZeroVertexColumns,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlShaderValidationError` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/shader.rs:286:19
[INFO] [stdout]     |
[INFO] [stdout] 285 | impl GlPipelineLayout {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 286 |     pub(crate) fn validate(&self) -> Result<(), GlShaderValidationError> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `validate` and `validate_for` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/shader.rs:300:19
[INFO] [stdout]     |
[INFO] [stdout] 299 | impl GlProgramDescriptor {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] 300 |     pub(crate) fn validate(&self) -> Result<(), GlShaderValidationError> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub(crate) fn validate_for(
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate_against` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/shader.rs:380:19
[INFO] [stdout]     |
[INFO] [stdout] 379 | impl GlProgramReflection {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] 380 |     pub(crate) fn validate_against(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlShaderApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/shader.rs:461:18
[INFO] [stdout]     |
[INFO] [stdout] 461 | pub(crate) trait GlShaderApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlStorageBufferLimits` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/storage.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) struct GlStorageBufferLimits {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlStorageBufferRange` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/storage.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) struct GlStorageBufferRange {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/storage.rs:29:19
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl GlStorageBufferRange {
[INFO] [stdout]    | ------------------------- method in this implementation
[INFO] [stdout] 29 |     pub(crate) fn validate(
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlStorageImageLimits` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/storage.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub(crate) struct GlStorageImageLimits {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlStorageImageBinding` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/storage.rs:63:19
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(crate) struct GlStorageImageBinding {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/storage.rs:74:19
[INFO] [stdout]    |
[INFO] [stdout] 73 | impl GlStorageImageBinding {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] 74 |     pub(crate) fn validate(
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlStorageBufferApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/storage.rs:103:18
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub(crate) trait GlStorageBufferApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlStorageImageApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/storage.rs:111:18
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub(crate) trait GlStorageImageApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> crates/gl/src/backend/api/sync.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl GlMemoryBarrier {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub const TRANSFORM_FEEDBACK: Self = Self(1 << 10);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub const ATOMIC_COUNTER: Self = Self(1 << 11);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub const SHADER_STORAGE: Self = Self(1 << 12);
[INFO] [stdout] 25 |     pub const CLIENT_MAPPED_BUFFER: Self = Self(1 << 13);
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     pub const QUERY_BUFFER: Self = Self(1 << 14);
[INFO] [stdout] 27 |     pub const BY_REGION_LEGAL: Self =
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub const fn contains(self, other: Self) -> bool {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub(crate) fn validate_nonempty(self) -> Result<(), GlError> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub(crate) fn validate_by_region(self) -> Result<(), GlError> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlFenceStatus` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/sync.rs:55:17
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub(crate) enum GlFenceStatus {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlWaitBound` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/sync.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub(crate) struct GlWaitBound {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated constant `POLL` is never used
[INFO] [stdout]   --> crates/gl/src/backend/api/sync.rs:66:15
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl GlWaitBound {
[INFO] [stdout]    | ---------------- associated constant in this implementation
[INFO] [stdout] 66 |     pub const POLL: Self = Self { nanoseconds: 0 };
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlFenceLease` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/sync.rs:70:19
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub(crate) struct GlFenceLease {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlFenceLeaseBook` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/sync.rs:76:19
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub(crate) struct GlFenceLeaseBook {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `issue`, `validate`, `revoke`, and `revoke_all` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/sync.rs:81:19
[INFO] [stdout]     |
[INFO] [stdout]  80 | impl GlFenceLeaseBook {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout]  81 |     pub(crate) fn issue(&mut self, fence: SyncId) -> Result<GlFenceLease, GlError> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     pub(crate) fn validate(&self, lease: GlFenceLease) -> Result<(), GlError> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub(crate) fn revoke(&mut self, lease: GlFenceLease) {
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub(crate) fn revoke_all(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlSyncApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/sync.rs:112:18
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub(crate) trait GlSyncApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Uint16` and `Uint32` are never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/vertex.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub(crate) enum GlIndexFormat {
[INFO] [stdout]    |                 ------------- variants in this enum
[INFO] [stdout] 75 |     Uint16,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 76 |     Uint32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlIndexFormat` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlVertexBufferMetadata` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/api/vertex.rs:95:19
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(crate) struct GlVertexBufferMetadata {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlVertexValidationError` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/vertex.rs:106:17
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub(crate) enum GlVertexValidationError {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `byte_size` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/vertex.rs:128:14
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl GlVertexFormat {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 128 |     const fn byte_size(self) -> u32 {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `validate`, `validate_bindings`, and `validate_bound_bindings_with` are never used
[INFO] [stdout]    --> crates/gl/src/backend/api/vertex.rs:155:19
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl GlVertexLayout {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] 155 |     pub(crate) fn validate(&self) -> Result<(), GlVertexValidationError> {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 185 |     pub(crate) fn validate_bindings(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub(crate) fn validate_bound_bindings_with(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `GlVertexApi` is never used
[INFO] [stdout]    --> crates/gl/src/backend/api/vertex.rs:301:18
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub(crate) trait GlVertexApi: GlFamilyApi {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlFormatEvidence` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/capabilities.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) struct GlFormatEvidence {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlLoweringClosure` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/capabilities.rs:31:19
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub(crate) struct GlLoweringClosure {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlCapabilitySnapshot` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/capabilities.rs:44:19
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub(crate) struct GlCapabilitySnapshot {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `into_capabilities` and `format` are never used
[INFO] [stdout]   --> crates/gl/src/backend/capabilities.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl GlCapabilitySnapshot {
[INFO] [stdout]    | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub(crate) fn into_capabilities(self, device: DeviceId) -> DeviceCapabilities {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub(crate) fn format(&self, format: GlFormat) -> Option<GlFormatEvidence> {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `small_float` is never used
[INFO] [stdout]   --> crates/gl/src/backend/clear_texel.rs:10:4
[INFO] [stdout]    |
[INFO] [stdout] 10 | fn small_float(value: f32, mantissa: u32, signed: bool) -> u32 {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rgb9e5` is never used
[INFO] [stdout]   --> crates/gl/src/backend/clear_texel.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn rgb9e5(c: [f32; 4]) -> u32 {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode` is never used
[INFO] [stdout]   --> crates/gl/src/backend/clear_texel.rs:81:15
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub(crate) fn encode(format: F, color: ClearColor) -> Result<Vec<u8>> {
[INFO] [stdout]    |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlFeatureProbe` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/facts.rs:10:19
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) struct GlFeatureProbe {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> crates/gl/src/backend/facts.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl GlFeatureProbe {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 17 |     pub(crate) fn new(profile: GlProfile) -> Self {
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub(crate) fn profile(&self) -> GlProfile {
[INFO] [stdout]    |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub(crate) fn report_extension(&mut self, extension: GlExtension) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub(crate) fn report_function(&mut self, function: GlFunction) {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub(crate) fn supports(&self, feature: GlFeature) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub(crate) fn missing_function(&self, feature: GlFeature) -> Option<GlFunction> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub(crate) fn selected_route(&self, feature: GlFeature) -> Option<SelectedRoute> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlFunction` is never used
[INFO] [stdout]   --> crates/gl/src/backend/features/mod.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) enum GlFunction {
[INFO] [stdout]    |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `native_symbol` is never used
[INFO] [stdout]   --> crates/gl/src/backend/features/mod.rs:68:25
[INFO] [stdout]    |
[INFO] [stdout] 65 | impl GlFunction {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub(crate) const fn native_symbol(self) -> Option<&'static str> {
[INFO] [stdout]    |                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `GlFeature` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:113:17
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub(crate) enum GlFeature {
[INFO] [stdout]     |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SelectedRoute` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:144:17
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub(crate) enum SelectedRoute {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `selected_route` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:152:15
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub(crate) fn selected_route(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `route_functions` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:218:15
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub(crate) fn route_functions(feature: GlFeature, route: SelectedRoute) -> &'static [GlFunction] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `supports` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:242:15
[INFO] [stdout]     |
[INFO] [stdout] 242 | pub(crate) fn supports(
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `missing_function` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:264:15
[INFO] [stdout]     |
[INFO] [stdout] 264 | pub(crate) fn missing_function(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Requirement` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:289:19
[INFO] [stdout]     |
[INFO] [stdout] 289 | pub(crate) struct Requirement {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NEVER` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:296:18
[INFO] [stdout]     |
[INFO] [stdout] 296 | pub(crate) const NEVER: GlVersion = GlVersion::new(u8::MAX, u8::MAX);
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GL15` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:297:18
[INFO] [stdout]     |
[INFO] [stdout] 297 | pub(crate) const GL15: GlVersion = GlVersion::new(1, 5);
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GL14` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:298:18
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub(crate) const GL14: GlVersion = GlVersion::new(1, 4);
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GL30` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:299:18
[INFO] [stdout]     |
[INFO] [stdout] 299 | pub(crate) const GL30: GlVersion = GlVersion::new(3, 0);
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GL32` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:300:18
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub(crate) const GL32: GlVersion = GlVersion::new(3, 2);
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GL33` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:301:18
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub(crate) const GL33: GlVersion = GlVersion::new(3, 3);
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GL40` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:302:18
[INFO] [stdout]     |
[INFO] [stdout] 302 | pub(crate) const GL40: GlVersion = GlVersion::new(4, 0);
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GL42` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:303:18
[INFO] [stdout]     |
[INFO] [stdout] 303 | pub(crate) const GL42: GlVersion = GlVersion::new(4, 2);
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GL43` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:304:18
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub(crate) const GL43: GlVersion = GlVersion::new(4, 3);
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GL45` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:305:18
[INFO] [stdout]     |
[INFO] [stdout] 305 | pub(crate) const GL45: GlVersion = GlVersion::new(4, 5);
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GL46` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:306:18
[INFO] [stdout]     |
[INFO] [stdout] 306 | pub(crate) const GL46: GlVersion = GlVersion::new(4, 6);
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GLES30` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:307:18
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub(crate) const GLES30: GlVersion = GlVersion::new(3, 0);
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GLES31` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:308:18
[INFO] [stdout]     |
[INFO] [stdout] 308 | pub(crate) const GLES31: GlVersion = GlVersion::new(3, 1);
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GLES32` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:309:18
[INFO] [stdout]     |
[INFO] [stdout] 309 | pub(crate) const GLES32: GlVersion = GlVersion::new(3, 2);
[INFO] [stdout]     |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `requirement` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:315:15
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub(crate) fn requirement(feature: GlFeature) -> Option<Requirement> {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_functions` is never used
[INFO] [stdout]    --> crates/gl/src/backend/features/mod.rs:327:15
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub(crate) fn required_functions(feature: GlFeature) -> &'static [GlFunction] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `requirement` is never used
[INFO] [stdout]  --> crates/gl/src/backend/features/compute.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(super) fn requirement(feature: F) -> Option<Requirement> {
[INFO] [stdout]   |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `requirement` is never used
[INFO] [stdout]  --> crates/gl/src/backend/features/debug.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(super) fn requirement(feature: F) -> Option<Requirement> {
[INFO] [stdout]   |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `requirement` is never used
[INFO] [stdout]  --> crates/gl/src/backend/features/draw.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(super) fn requirement(feature: F) -> Option<Requirement> {
[INFO] [stdout]   |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `requirement` is never used
[INFO] [stdout]  --> crates/gl/src/backend/features/query.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub(super) fn requirement(feature: F) -> Option<Requirement> {
[INFO] [stdout]   |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `requirement` is never used
[INFO] [stdout]  --> crates/gl/src/backend/features/sync.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(super) fn requirement(feature: F) -> Option<Requirement> {
[INFO] [stdout]   |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `requirement` is never used
[INFO] [stdout]  --> crates/gl/src/backend/features/texture.rs:8:15
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub(super) fn requirement(feature: F) -> Option<Requirement> {
[INFO] [stdout]   |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlVersion` is never constructed
[INFO] [stdout]  --> crates/gl/src/backend/profile.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) struct GlVersion {
[INFO] [stdout]   |                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `is_met_by` are never used
[INFO] [stdout]   --> crates/gl/src/backend/profile.rs:15:25
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl GlVersion {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 15 |     pub(crate) const fn new(major: u8, minor: u8) -> Self {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub(crate) const fn is_met_by(self, actual: Self) -> bool {
[INFO] [stdout]    |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Desktop`, `Embedded`, and `WebGl2` are never constructed
[INFO] [stdout]   --> crates/gl/src/backend/profile.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) enum GlProfile {
[INFO] [stdout]    |                 --------- variants in this enum
[INFO] [stdout] 27 |     Desktop { major: u8, minor: u8 },
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 28 |     Embedded { major: u8, minor: u8 },
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 29 |     WebGl2,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlProfile` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `DESKTOP_MINIMUM`, `GLES_MINIMUM`, `accepts`, `has_core`, and `meets` are never used
[INFO] [stdout]   --> crates/gl/src/backend/profile.rs:33:22
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl GlProfile {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 33 |     pub(crate) const DESKTOP_MINIMUM: GlVersion = GlVersion::new(4, 0);
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     pub(crate) const GLES_MINIMUM: GlVersion = GlVersion::new(3, 0);
[INFO] [stdout]    |                      ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub(crate) const fn accepts(self) -> bool {
[INFO] [stdout]    |                         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub(crate) const fn has_core(self, desktop: GlVersion, gles: GlVersion) -> bool {
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub(crate) const fn meets(self, desktop: Option<GlVersion>, gles: Option<GlVersion>) -> bool {
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `state` is never read
[INFO] [stdout]   --> crates/gl/src/backend/rhi/cache.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) struct GlPipelineCacheInner {
[INFO] [stdout]    |                   -------------------- field in this struct
[INFO] [stdout] 17 |     pub(crate) state: Rc<GlDeviceState>,
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_u32` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/cache.rs:115:4
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn read_u32(data: &mut &[u8]) -> Result<u32> {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_bytes` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/cache.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn read_bytes<'a>(data: &mut &'a [u8]) -> Result<&'a [u8]> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/cache.rs:132:4
[INFO] [stdout]     |
[INFO] [stdout] 132 | fn decode(mut data: &[u8], identity: &[u8]) -> Result<BTreeMap<String, CachedBinary>> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `evidence` is never read
[INFO] [stdout]   --> crates/gl/src/backend/rhi/completion/mod.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct GlCompletion {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 56 |     state: Rc<GlDeviceState>,
[INFO] [stdout] 57 |     evidence: GlCompletionEvidence,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlCompletion` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Unsupported` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/rhi/completion/mod.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | enum GlCompletionEvidence {
[INFO] [stdout]    |      -------------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 68 |     Unsupported,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GlCompletionEvidence` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> crates/gl/src/backend/rhi/encoder.rs:24:16
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct GlEncoder {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub(crate) raster_views: Vec<GlTextureView>,
[INFO] [stdout]    |                ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(crate) raster_viewport: Option<crate::backend::api::GlViewport>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     pub(crate) raster_scissor: Option<crate::backend::api::GlScissorRect>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub(crate) raster_color_slots: Vec<bool>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub(crate) vertex_bindings: Vec<crate::backend::api::GlVertexBufferBinding>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^
[INFO] [stdout] 39 |     pub(crate) index_binding: Option<crate::backend::api::GlIndexBinding>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub(crate) statistics_query_set: Option<GlQuerySet>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `begin_raster_state`, `set_raster_read_only`, and `end_raster_state` are never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/encoder.rs:138:19
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl GlEncoder {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub(crate) fn begin_raster_state(&mut self, extent: [u32; 2]) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub(crate) fn set_raster_read_only(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub(crate) fn end_raster_state(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_usage` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/mapping.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn required_usage(mode: api::MapMode) -> crate::backend::api::GlBufferUsage {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `UniformBinding` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/pipeline/mod.rs:479:6
[INFO] [stdout]     |
[INFO] [stdout] 479 | type UniformBinding = (u32, u32, Option<u32>);
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `PipelineLayoutNativeRef` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/pipeline/mod.rs:606:7
[INFO] [stdout]     |
[INFO] [stdout] 606 | trait PipelineLayoutNativeRef {
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_uniform_limits` is never used
[INFO] [stdout]  --> crates/gl/src/backend/rhi/pipeline/limits.rs:5:4
[INFO] [stdout]   |
[INFO] [stdout] 5 | fn check_uniform_limits(stages: &[Vec<UniformBinding>], points: u32, combined: u32) -> Result<()> {
[INFO] [stdout]   |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> crates/gl/src/backend/rhi/push.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) struct PushUniform {
[INFO] [stdout]    |                   ----------- field in this struct
[INFO] [stdout] 17 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PushUniform` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_active` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/push.rs:388:15
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub(crate) fn validate_active(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `PassTimestamps` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/query.rs:209:17
[INFO] [stdout]     |
[INFO] [stdout] 209 | pub(crate) type PassTimestamps = Option<(GlQuerySet, Option<u32>, Option<u32>)>;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_pass_timestamps` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/query.rs:211:15
[INFO] [stdout]     |
[INFO] [stdout] 211 | pub(crate) fn prepare_pass_timestamps(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `start_pass_timestamps` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/query.rs:240:15
[INFO] [stdout]     |
[INFO] [stdout] 240 | pub(crate) fn start_pass_timestamps(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finish_pass_timestamps` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/query.rs:253:15
[INFO] [stdout]     |
[INFO] [stdout] 253 | pub(crate) fn finish_pass_timestamps(encoder: &mut GlEncoder) -> Result<()> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_inactive_color_slots` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/raster/mod.rs:771:4
[INFO] [stdout]     |
[INFO] [stdout] 771 | fn normalize_inactive_color_slots(state: &mut crate::backend::api::GlRasterState, slots: &[bool]) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `allows_missing_element` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/binding.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn allows_missing_element(entry: &super::super::types::GlBindingLayoutEntry) -> bool {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mip_count_for_binding` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/binding.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn mip_count_for_binding(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remember_group` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/binding.rs:66:4
[INFO] [stdout]    |
[INFO] [stdout] 66 | fn remember_group(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dynamic_offset` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/raster/binding.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn dynamic_offset(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_aspects` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/surface_depth.rs:10:15
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(super) fn validate_aspects(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `native_aspect` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/surface_depth.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(super) fn native_aspect(view: &GlTextureView) -> crate::backend::api::GlTextureAspect {
[INFO] [stdout]    |               ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BASE` is never used
[INFO] [stdout]  --> crates/gl/src/backend/rhi/raster/multiview/mod.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | const BASE: &str = "fluxel_internal_view_index_base";
[INFO] [stdout]   |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `install` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/raster/multiview/mod.rs:47:15
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub(super) fn install(encoder: &mut GlEncoder, pipeline: &GlRasterPipeline) -> Result<()> {
[INFO] [stdout]    |               ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Core` and `Arb` are never constructed
[INFO] [stdout]    --> crates/gl/src/backend/rhi/shader/mod.rs:525:5
[INFO] [stdout]     |
[INFO] [stdout] 523 | pub(super) enum DrawParameters {
[INFO] [stdout]     |                 -------------- variants in this enum
[INFO] [stdout] 524 |     None,
[INFO] [stdout] 525 |     Core,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 526 |     Arb,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DrawParameters` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `gradients` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/shader/binding_array_dynamic_sample.rs:293:5
[INFO] [stdout]     |
[INFO] [stdout] 287 | struct Choice {
[INFO] [stdout]     |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 293 |     gradients: Option<(Expr, Expr)>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lower_wgsl` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/shader/wgsl/mod.rs:59:15
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub(super) fn lower_wgsl(
[INFO] [stdout]    |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lower_wgsl_with_constants` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/shader/wgsl/mod.rs:70:15
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub(super) fn lower_wgsl_with_constants(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lower_wgsl_with_parameters` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/shader/wgsl/mod.rs:82:15
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub(super) fn lower_wgsl_with_parameters(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lower_wgsl_with_multiview` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/shader/wgsl/mod.rs:95:15
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub(super) fn lower_wgsl_with_multiview(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `native_error` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/spi.rs:169:15
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub(crate) fn native_error(error: crate::backend::api::GlError) -> Error {
[INFO] [stdout]     |               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlSurfaceTargetToken` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/rhi/surface.rs:61:19
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub(crate) struct GlSurfaceTargetToken {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_current` is never used
[INFO] [stdout]   --> crates/gl/src/backend/rhi/surface.rs:69:19
[INFO] [stdout]    |
[INFO] [stdout] 68 | impl GlSurfaceTargetToken {
[INFO] [stdout]    | ------------------------- method in this implementation
[INFO] [stdout] 69 |     pub(crate) fn is_current(&self) -> bool {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `target_token` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/surface.rs:161:19
[INFO] [stdout]     |
[INFO] [stdout] 160 | impl GlSurfaceImage {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 161 |     pub(crate) fn target_token(&self) -> GlSurfaceTargetToken {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `native_error` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/surface.rs:492:4
[INFO] [stdout]     |
[INFO] [stdout] 492 | fn native_error(error: crate::backend::api::GlError) -> Error {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:140:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |   macro_rules! native_handle {
[INFO] [stdout] ...
[INFO] [stdout] 140 |           pub struct $name(pub(crate) Rc<GlDeviceState>);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | / native_handle!(
[INFO] [stdout] 145 | |     GlMeshPipeline,
[INFO] [stdout]     | |     -------------- field in this struct
[INFO] [stdout] 146 | |     GlRayPipeline,
[INFO] [stdout] 147 | |     GlAcceleration,
[INFO] [stdout] 148 | |     GlSparseAllocation,
[INFO] [stdout] 149 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `GlMeshPipeline` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:140:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |   macro_rules! native_handle {
[INFO] [stdout] ...
[INFO] [stdout] 140 |           pub struct $name(pub(crate) Rc<GlDeviceState>);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | / native_handle!(
[INFO] [stdout] 145 | |     GlMeshPipeline,
[INFO] [stdout] 146 | |     GlRayPipeline,
[INFO] [stdout]     | |     ------------- field in this struct
[INFO] [stdout] 147 | |     GlAcceleration,
[INFO] [stdout] 148 | |     GlSparseAllocation,
[INFO] [stdout] 149 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `GlRayPipeline` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:140:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |   macro_rules! native_handle {
[INFO] [stdout] ...
[INFO] [stdout] 140 |           pub struct $name(pub(crate) Rc<GlDeviceState>);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | / native_handle!(
[INFO] [stdout] 145 | |     GlMeshPipeline,
[INFO] [stdout] 146 | |     GlRayPipeline,
[INFO] [stdout] 147 | |     GlAcceleration,
[INFO] [stdout]     | |     -------------- field in this struct
[INFO] [stdout] 148 | |     GlSparseAllocation,
[INFO] [stdout] 149 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `GlAcceleration` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:140:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |   macro_rules! native_handle {
[INFO] [stdout] ...
[INFO] [stdout] 140 |           pub struct $name(pub(crate) Rc<GlDeviceState>);
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 | / native_handle!(
[INFO] [stdout] 145 | |     GlMeshPipeline,
[INFO] [stdout] 146 | |     GlRayPipeline,
[INFO] [stdout] 147 | |     GlAcceleration,
[INFO] [stdout] 148 | |     GlSparseAllocation,
[INFO] [stdout]     | |     ------------------ field in this struct
[INFO] [stdout] 149 | | );
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `GlSparseAllocation` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `statistics_queries` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:166:16
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub struct GlQuerySetInner {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub(crate) statistics_queries: Vec<crate::backend::api::QueryId>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_inner` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:179:19
[INFO] [stdout]     |
[INFO] [stdout] 178 | impl GlQuerySet {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 179 |     pub(crate) fn from_inner(inner: GlQuerySetInner) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mip_uniforms` and `push_uniforms` are never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:223:16
[INFO] [stdout]     |
[INFO] [stdout] 222 | pub struct GlComputePipelineInner {
[INFO] [stdout]     |            ---------------------- fields in this struct
[INFO] [stdout] 223 |     pub(crate) mip_uniforms: Vec<GlMipUniform>,
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub(crate) push_uniforms: Vec<super::push::PushUniform>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_inner` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:241:19
[INFO] [stdout]     |
[INFO] [stdout] 240 | impl GlComputePipeline {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 241 |     pub(crate) fn from_inner(inner: GlComputePipelineInner) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `buffer`, `offset`, and `size` are never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:314:9
[INFO] [stdout]     |
[INFO] [stdout] 313 |     UniformBuffer {
[INFO] [stdout]     |     ------------- fields in this variant
[INFO] [stdout] 314 |         buffer: GlBuffer,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 315 |         offset: u64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 316 |         size: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlBoundResource` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `buffer`, `offset`, and `size` are never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:319:9
[INFO] [stdout]     |
[INFO] [stdout] 318 |     StorageBuffer {
[INFO] [stdout]     |     ------------- fields in this variant
[INFO] [stdout] 319 |         buffer: GlBuffer,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 320 |         offset: u64,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 321 |         size: u64,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlBoundResource` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:325:13
[INFO] [stdout]     |
[INFO] [stdout] 325 |     Sampler(GlSampler),
[INFO] [stdout]     |     ------- ^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlBoundResource` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 325 -     Sampler(GlSampler),
[INFO] [stdout] 325 +     Sampler(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `source_layer` and `source_mip` are never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:372:16
[INFO] [stdout]     |
[INFO] [stdout] 358 | pub struct GlTextureView {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 372 |     pub(crate) source_layer: u32,
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub(crate) source_mip: u32,
[INFO] [stdout]     |                ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlTextureView` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_inner` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:433:19
[INFO] [stdout]     |
[INFO] [stdout] 432 | impl GlSampler {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 433 |     pub(crate) fn from_inner(inner: GlSamplerInner) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mip_uniforms`, `state`, `push_uniforms`, and `vertex_layout` are never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:474:16
[INFO] [stdout]     |
[INFO] [stdout] 473 | pub struct GlRasterPipelineInner {
[INFO] [stdout]     |            --------------------- fields in this struct
[INFO] [stdout] 474 |     pub(crate) mip_uniforms: Vec<GlMipUniform>,
[INFO] [stdout]     |                ^^^^^^^^^^^^
[INFO] [stdout] 475 |     pub(crate) multiview: Option<u32>,
[INFO] [stdout] 476 |     pub(crate) state: Rc<GlDeviceState>,
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 482 |     pub(crate) push_uniforms: Vec<super::push::PushUniform>,
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 487 |     pub(crate) vertex_layout: crate::backend::api::GlVertexLayout,
[INFO] [stdout]     |                ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_inner` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:513:19
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl GlRasterPipeline {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] 513 |     pub(crate) fn from_inner(inner: GlRasterPipelineInner) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset` is never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:581:16
[INFO] [stdout]     |
[INFO] [stdout] 578 | pub struct GlMap {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 581 |     pub(crate) offset: u64,
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_inner` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:597:19
[INFO] [stdout]     |
[INFO] [stdout] 596 | impl GlBuffer {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 597 |     pub(crate) fn from_inner(inner: GlBufferInner) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_inner` is never used
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:653:19
[INFO] [stdout]     |
[INFO] [stdout] 652 | impl GlTexture {
[INFO] [stdout]     | -------------- associated function in this implementation
[INFO] [stdout] 653 |     pub(crate) fn from_inner(inner: GlTextureInner) -> Self {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `samples`, `group`, `binding`, and `element` are never read
[INFO] [stdout]    --> crates/gl/src/backend/rhi/types/mod.rs:692:16
[INFO] [stdout]     |
[INFO] [stdout] 691 | pub(crate) struct GlMipUniform {
[INFO] [stdout]     |                   ------------ fields in this struct
[INFO] [stdout] 692 |     pub(crate) samples: bool,
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 693 |     pub(crate) group: u32,
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout] 694 |     pub(crate) binding: u32,
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout] 695 |     pub(crate) element: Option<u32>,
[INFO] [stdout]     |                ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `GlMipUniform` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ResourceRef` is never used
[INFO] [stdout]   --> crates/gl/src/backend/state/cache.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub(crate) enum ResourceRef {
[INFO] [stdout]    |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DependencySet` is never used
[INFO] [stdout]   --> crates/gl/src/backend/state/cache.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) type DependencySet = BTreeSet<ResourceRef>;
[INFO] [stdout]    |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheBudget` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/cache.rs:24:19
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub(crate) struct CacheBudget {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> crates/gl/src/backend/state/cache.rs:29:25
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl CacheBudget {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 29 |     pub(crate) const fn new(max_entries: usize, max_bytes: u64) -> Self {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheCounters` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/cache.rs:37:19
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub(crate) struct CacheCounters {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CacheMutation` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/cache.rs:49:19
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub(crate) struct CacheMutation<K, V> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Entry` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/cache.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct Entry<V> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StructuralCache` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/cache.rs:62:19
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub(crate) struct StructuralCache<K, V> {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/gl/src/backend/state/cache.rs:70:19
[INFO] [stdout]     |
[INFO] [stdout]  69 | impl<K: Clone + Eq + std::hash::Hash, V> StructuralCache<K, V> {
[INFO] [stdout]     | -------------------------------------------------------------- associated items in this implementation
[INFO] [stdout]  70 |     pub(crate) fn new(budget: CacheBudget) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout]  79 |     pub(crate) fn len(&self) -> usize {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     pub(crate) const fn live_bytes(&self) -> u64 {
[INFO] [stdout]     |                         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     fn tick(&mut self) -> u64 {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     fn report(&self, c: &mut CacheCounters) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub(crate) fn get(&mut self, key: &K, c: &mut CacheCounters) -> Option<&V> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub(crate) fn insert(
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub(crate) fn invalidate_resource(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub(crate) fn drain(&mut self, c: &mut CacheCounters) -> Vec<(K, V)> {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 221 |     pub(crate) fn purge(&mut self, c: &mut CacheCounters) {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PassPacket` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/context.rs:22:19
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub(crate) struct PassPacket {
[INFO] [stdout]    |                   ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PixelTransferPacket` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/context.rs:29:19
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(crate) struct PixelTransferPacket {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RasterPipelineDiff` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/context.rs:40:19
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub(crate) struct RasterPipelineDiff {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ContextStateError` is never used
[INFO] [stdout]   --> crates/gl/src/backend/state/context.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub(crate) enum ContextStateError {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> crates/gl/src/backend/state/context.rs:57:25
[INFO] [stdout]    |
[INFO] [stdout] 56 | impl RasterPipelineDiff {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] 57 |     pub(crate) const fn is_empty(self) -> bool {
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InstalledRasterPipeline` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/context.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | struct InstalledRasterPipeline {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BoundGroupPacket` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/context.rs:72:19
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub(crate) struct BoundGroupPacket {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BindingFlush` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/context.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub(crate) struct BindingFlush {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> crates/gl/src/backend/state/context.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 89 | impl BindingFlush {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 90 |     pub(crate) const fn is_empty(&self) -> bool {
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DerivedCacheKey` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/context.rs:98:19
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub(crate) struct DerivedCacheKey {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DerivedCacheKind` is never used
[INFO] [stdout]    --> crates/gl/src/backend/state/context.rs:103:17
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub(crate) enum DerivedCacheKind {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ContextState` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/state/context.rs:112:19
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub(crate) struct ContextState {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/gl/src/backend/state/context.rs:137:19
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl ContextState {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 137 |     pub(crate) fn new(mode: ExecutionMode) -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub(crate) const fn prepare_pass(&self, _: PassPacket) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     pub(crate) fn commit_pass(&mut self, pass: PassPacket) {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 170 |     pub(crate) fn pass_failed(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub(crate) fn end_pass(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub(crate) const fn draw(&self) -> bool {
[INFO] [stdout]     |                         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub(crate) const fn dispatch(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 184 |     pub(crate) const fn clear(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub(crate) const fn query_command(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub(crate) const fn barrier(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub(crate) fn register_pipeline(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub(crate) fn prepare_pipeline(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub(crate) fn prepare_dynamic_pipeline(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub(crate) fn commit_pipeline(&mut self, wanted: RasterPipelinePacket) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     pub(crate) fn pipeline_failed(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub(crate) fn prepare_geometry(&self, wanted: CanonicalBlockId) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 271 |     pub(crate) fn commit_geometry(&mut self, wanted: CanonicalBlockId) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 274 |     pub(crate) fn geometry_failed(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     pub(crate) fn prepare_compute_program(&self, wanted: CanonicalBlockId) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub(crate) fn commit_compute_program(&mut self, wanted: CanonicalBlockId) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     pub(crate) fn compute_failed(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub(crate) fn program_unbound(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 296 |     pub(crate) fn prepare_pixel_transfer(&self, wanted: PixelTransferPacket) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 303 |     pub(crate) fn commit_pixel_transfer(&mut self, wanted: PixelTransferPacket) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub(crate) const fn prepare_query_command(&self, _: CanonicalBlockId) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     pub(crate) fn commit_query_begin(&mut self, target: CanonicalBlockId) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub(crate) fn commit_query_end(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     pub(crate) fn query_failed(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub(crate) fn stage_bind_group(&mut self, packet: BoundGroupPacket) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub(crate) fn prepare_texture_slot(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 343 |     pub(crate) fn commit_texture_slot(&mut self, unit: u32, binding: CanonicalBlockId) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 350 |     pub(crate) fn prepare_sampler_slot(&self, unit: u32, binding: CanonicalBlockId) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub(crate) fn commit_sampler_slot(&mut self, unit: u32, binding: CanonicalBlockId) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub(crate) fn prepare_uniform_slot(&self, index: u32, binding: CanonicalBlockId) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 367 |     pub(crate) fn commit_uniform_slot(&mut self, index: u32, binding: CanonicalBlockId) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 370 |     pub(crate) fn prepare_storage_slot(&self, index: u32, binding: CanonicalBlockId) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 377 |     pub(crate) fn commit_storage_slot(&mut self, index: u32, binding: CanonicalBlockId) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 |     pub(crate) fn prepare_image_slot(&self, index: u32, binding: CanonicalBlockId) -> bool {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 387 |     pub(crate) fn commit_image_slot(&mut self, index: u32, binding: CanonicalBlockId) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |     pub(crate) fn binding_flush(&self) -> BindingFlush {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 399 |     pub(crate) fn acknowledge_bindings(&mut self, flushed: &BindingFlush) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 407 |     pub(crate) fn retire_bind_group(&mut self, group: BindGroupKey) {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 412 |     pub(crate) fn register_derived(
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 419 |     pub(crate) fn event(&mut self, event: StateEvent) {
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 440 |     fn retire(&mut self, resource: ResourceRef) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     fn invalidate_domain(&mut self, domain: StateDomain) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 506 |     fn forget_context(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `references` is never used
[INFO] [stdout]    --> crates/gl/src/backend/state/context.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout] 526 | impl CanonicalBlockId {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 527 |     fn references(self, resource: ResourceRef) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StateEvent` is never used
[INFO] [stdout]  --> crates/gl/src/backend/state/event.rs:9:17
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) enum StateEvent {
[INFO] [stdout]   |                 ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `domains` is never used
[INFO] [stdout]   --> crates/gl/src/backend/state/event.rs:27:25
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl StateEvent {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 27 |     pub(crate) const fn domains(self) -> DirtyDomains {
[INFO] [stdout]    |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScopedRawAccess` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/event.rs:46:19
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub(crate) struct ScopedRawAccess(Option<DirtyDomains>);
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `declaring`, `all`, and `domains` are never used
[INFO] [stdout]   --> crates/gl/src/backend/state/event.rs:48:25
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl ScopedRawAccess {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 48 |     pub(crate) const fn declaring(domains: DirtyDomains) -> Self {
[INFO] [stdout]    |                         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub(crate) const fn all() -> Self {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub(crate) const fn domains(self) -> DirtyDomains {
[INFO] [stdout]    |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GlObjectKey` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/identity.rs:11:19
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub(crate) struct GlObjectKey {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> crates/gl/src/backend/state/identity.rs:19:25
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl GlObjectKey {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 18 |     /// Creates a key from backend-owned allocation metadata.
[INFO] [stdout] 19 |     pub(crate) const fn new(context: ContextStamp, slot: u32, generation: u32) -> Self {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BindGroupKey` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/identity.rs:34:19
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub(crate) struct BindGroupKey {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> crates/gl/src/backend/state/identity.rs:42:25
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl BindGroupKey {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] 41 |     /// Creates a key from backend-owned bind-group allocation metadata.
[INFO] [stdout] 42 |     pub(crate) const fn new(context: ContextStamp, slot: u32, generation: u32) -> Self {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StateDomain` is never used
[INFO] [stdout]  --> crates/gl/src/backend/state/knowledge.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub(crate) enum StateDomain {
[INFO] [stdout]   |                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `ALL`, `COUNT`, `index`, `bit`, and `name` are never used
[INFO] [stdout]   --> crates/gl/src/backend/state/knowledge.rs:18:22
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl StateDomain {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 18 |     pub(crate) const ALL: [Self; 8] = [
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub(crate) const COUNT: usize = Self::ALL.len();
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] 29 |     pub(crate) const fn index(self) -> usize {
[INFO] [stdout]    |                         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub(crate) const fn bit(self) -> u32 {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 35 |     pub(crate) const fn name(self) -> &'static str {
[INFO] [stdout]    |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DirtyDomains` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/knowledge.rs:56:19
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub(crate) struct DirtyDomains(u32);
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> crates/gl/src/backend/state/knowledge.rs:58:22
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl DirtyDomains {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 58 |     pub(crate) const EMPTY: Self = Self(0);
[INFO] [stdout]    |                      ^^^^^
[INFO] [stdout] 59 |     pub(crate) const ALL: Self = Self((1 << StateDomain::COUNT) - 1);
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] 60 |     pub(crate) const fn of(domain: StateDomain) -> Self {
[INFO] [stdout]    |                         ^^
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub(crate) const fn contains(self, domain: StateDomain) -> bool {
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub(crate) fn insert(&mut self, domain: StateDomain) {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub(crate) fn remove(&mut self, domain: StateDomain) {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub(crate) fn extend(&mut self, other: Self) {
[INFO] [stdout]    |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub(crate) const fn is_empty(self) -> bool {
[INFO] [stdout]    |                         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub(crate) fn iter(self) -> impl Iterator<Item = StateDomain> {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DriverKnowledge` is never used
[INFO] [stdout]   --> crates/gl/src/backend/state/knowledge.rs:87:17
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub(crate) enum DriverKnowledge<T> {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_known`, `get`, `set`, `invalidate`, and `agrees` are never used
[INFO] [stdout]    --> crates/gl/src/backend/state/knowledge.rs:92:25
[INFO] [stdout]     |
[INFO] [stdout]  91 | impl<T> DriverKnowledge<T> {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout]  92 |     pub(crate) const fn is_known(&self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub(crate) const fn get(&self) -> Option<&T> {
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub(crate) fn set(&mut self, value: T) {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub(crate) fn invalidate(&mut self) {
[INFO] [stdout]     |                   ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub(crate) fn agrees(&self, desired: &T) -> bool
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExecutionMode` is never used
[INFO] [stdout]    --> crates/gl/src/backend/state/knowledge.rs:118:17
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub(crate) enum ExecutionMode {
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `may_skip` is never used
[INFO] [stdout]    --> crates/gl/src/backend/state/knowledge.rs:123:25
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl ExecutionMode {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 123 |     pub(crate) const fn may_skip(self) -> bool {
[INFO] [stdout]     |                         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `CanonicalBlockId` is never used
[INFO] [stdout]   --> crates/gl/src/backend/state/pipeline.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub(crate) enum CanonicalBlockId {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `object`, and `uniform_range` are never used
[INFO] [stdout]   --> crates/gl/src/backend/state/pipeline.rs:45:25
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl CanonicalBlockId {
[INFO] [stdout]    | --------------------- associated functions in this implementation
[INFO] [stdout] 45 |     pub(crate) const fn new(value: u64) -> Self {
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub(crate) const fn object<K: GlObjectKind>(identity: ObjectIdentity<K>) -> Self {
[INFO] [stdout]    |                         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub(crate) const fn uniform_range<K: GlObjectKind>(
[INFO] [stdout]    |                         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RasterPipelineBlocks` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/pipeline.rs:72:19
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub(crate) struct RasterPipelineBlocks {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RasterPipelineBlockInterner` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/pipeline.rs:86:19
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub(crate) struct RasterPipelineBlockInterner {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RasterBlock` is never constructed
[INFO] [stdout]   --> crates/gl/src/backend/state/pipeline.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | struct RasterBlock {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlendBlock` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/state/pipeline.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | struct BlendBlock {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> crates/gl/src/backend/state/pipeline.rs:112:19
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl RasterPipelineBlockInterner {
[INFO] [stdout]     | -------------------------------- associated items in this implementation
[INFO] [stdout] 112 |     pub(crate) fn new() -> Self {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub(crate) fn intern(
[INFO] [stdout]     |                   ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     fn intern_program(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     fn intern_raster(
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn intern_depth_stencil(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     fn intern_blend(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 |     fn intern_multisample(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intern` is never used
[INFO] [stdout]    --> crates/gl/src/backend/state/pipeline.rs:189:4
[INFO] [stdout]     |
[INFO] [stdout] 189 | fn intern<T: Eq + std::hash::Hash>(
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RasterPipelinePacket` is never constructed
[INFO] [stdout]    --> crates/gl/src/backend/state/pipeline.rs:207:19
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub(crate) struct RasterPipelinePacket {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lower_texture_region` is never used
[INFO] [stdout]    --> crates/gl/src/backend/translate.rs:115:15
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub(crate) fn lower_texture_region(
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `texture_region_coordinates` is never used
[INFO] [stdout]    --> crates/gl/src/backend/translate.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn texture_region_coordinates(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `fluxel-rhi-core`
[INFO] [stderr]   --> crates/dx12/Cargo.toml:25:1
[INFO] [stderr]    |
[INFO] [stderr] 25 | fluxel-rhi-core = { path = "../core", version = "0.1.0" }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `fluxel-rhi-core`
[INFO] [stderr] warning: unused dependency `naga`
[INFO] [stderr]   --> crates/dx12/Cargo.toml:29:1
[INFO] [stderr]    |
[INFO] [stderr] 29 | naga = { package = "fluxel-naga", path = "../../vendor/naga", version = "=0.1.0", features = ["wgsl-in", "hlsl-out"] }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `naga`
[INFO] [stderr] warning: `fluxel-rhi-dx12` (manifest) generated 2 warnings
[INFO] [stderr] warning: unused dependency `fluxel-rhi-core`
[INFO] [stderr]   --> crates/webgpu/Cargo.toml:25:1
[INFO] [stderr]    |
[INFO] [stderr] 25 | fluxel-rhi-core = { path = "../core", version = "0.1.0" }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `fluxel-rhi-core`
[INFO] [stderr] warning: `fluxel-rhi-webgpu` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.79s
[INFO] running `Command { std: "docker" "inspect" "e22feee19cbf6d63967167b6d7d41b6afbaec82056185611d3f5a8f94c5361ec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e22feee19cbf6d63967167b6d7d41b6afbaec82056185611d3f5a8f94c5361ec", kill_on_drop: false }`
[INFO] [stdout] e22feee19cbf6d63967167b6d7d41b6afbaec82056185611d3f5a8f94c5361ec
