diff --git a/Cargo.lock b/Cargo.lock index a5d5375..6304733 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -196,12 +196,6 @@ dependencies = [ "password-hash", ] -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - [[package]] name = "arrayvec" version = "0.7.6" @@ -750,15 +744,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" -[[package]] -name = "cgl" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ced0551234e87afee12411d535648dd89d2e7f34c78b753395567aff3d447ff" -dependencies = [ - "libc", -] - [[package]] name = "chacha20" version = "0.10.0" @@ -1063,9 +1048,6 @@ dependencies = [ "egui-wgpu", "egui-winit", "egui_glow", - "glow 0.14.2", - "glutin", - "glutin-winit", "image", "js-sys", "log", @@ -1074,12 +1056,14 @@ dependencies = [ "objc2-foundation 0.2.2", "parking_lot", "percent-encoding", + "pollster 0.3.0", "raw-window-handle", "static_assertions", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", "web-time", + "wgpu", "winapi", "windows-sys 0.52.0", "winit", @@ -1505,63 +1489,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "glutin" -version = "0.32.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12124de845cacfebedff80e877bb37b5b75c34c5a4c89e47e1cdd67fb6041325" -dependencies = [ - "bitflags 2.11.1", - "cfg_aliases 0.2.1", - "cgl", - "dispatch2", - "glutin_egl_sys", - "glutin_glx_sys", - "glutin_wgl_sys", - "libloading", - "objc2 0.6.4", - "objc2-app-kit 0.3.2", - "objc2-core-foundation", - "objc2-foundation 0.3.2", - "once_cell", - "raw-window-handle", - "wayland-sys", - "windows-sys 0.52.0", - "x11-dl", -] - -[[package]] -name = "glutin-winit" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85edca7075f8fc728f28cb8fbb111a96c3b89e930574369e3e9c27eb75d3788f" -dependencies = [ - "cfg_aliases 0.2.1", - "glutin", - "raw-window-handle", - "winit", -] - -[[package]] -name = "glutin_egl_sys" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4680ba6195f424febdc3ba46e7a42a0e58743f2edb115297b86d7f8ecc02d2" -dependencies = [ - "gl_generator", - "windows-sys 0.52.0", -] - -[[package]] -name = "glutin_glx_sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7bb2938045a88b612499fbcba375a77198e01306f52272e692f8c1f3751185" -dependencies = [ - "gl_generator", - "x11-dl", -] - [[package]] name = "glutin_wgl_sys" version = "0.6.1" @@ -2439,7 +2366,6 @@ dependencies = [ "bitflags 2.11.1", "block2 0.6.2", "objc2 0.6.4", - "objc2-core-foundation", "objc2-core-graphics", "objc2-foundation 0.3.2", ] @@ -2832,6 +2758,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "pollster" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22686f4785f02a4fcc856d3b3bb19bf6c8160d103f7a99cc258bddd0251dc7f2" + [[package]] name = "pollster" version = "0.4.0" @@ -3115,7 +3047,7 @@ dependencies = [ "objc2-app-kit 0.3.2", "objc2-core-foundation", "objc2-foundation 0.3.2", - "pollster", + "pollster 0.4.0", "raw-window-handle", "urlencoding", "wasm-bindgen", @@ -3227,19 +3159,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sctk-adwaita" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" -dependencies = [ - "ab_glyph", - "log", - "memmap2", - "smithay-client-toolkit 0.19.2", - "tiny-skia", -] - [[package]] name = "semver" version = "1.0.28" @@ -3505,12 +3424,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "strict-num" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" - [[package]] name = "subtle" version = "2.6.1" @@ -3649,31 +3562,6 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" -[[package]] -name = "tiny-skia" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" -dependencies = [ - "arrayref", - "arrayvec", - "bytemuck", - "cfg-if", - "log", - "tiny-skia-path", -] - -[[package]] -name = "tiny-skia-path" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" -dependencies = [ - "arrayref", - "bytemuck", - "strict-num", -] - [[package]] name = "tinystr" version = "0.8.3" @@ -4348,6 +4236,7 @@ dependencies = [ "document-features", "js-sys", "log", + "naga", "parking_lot", "profiling", "raw-window-handle", @@ -4396,6 +4285,7 @@ dependencies = [ "arrayvec", "ash", "bitflags 2.11.1", + "block", "cfg_aliases 0.1.1", "core-graphics-types", "glow 0.13.1", @@ -4882,7 +4772,6 @@ dependencies = [ "raw-window-handle", "redox_syscall 0.4.1", "rustix 0.38.44", - "sctk-adwaita", "smithay-client-toolkit 0.19.2", "smol_str", "tracing", diff --git a/Cargo.toml b/Cargo.toml index 33e004b..c80c32e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -10,7 +10,12 @@ authors = ["InannaBeloved "] readme = "README.md" [dependencies] -eframe = "0.29" +# Use the wgpu (Vulkan/Metal/DX) renderer instead of the default glow +# (OpenGL) one. NVIDIA + Wayland crashes the GL surface on window resize +# (Glutin EGL_BAD_ALLOC / OutOfMemory on maximize); wgpu's Vulkan path +# reconfigures the swapchain cleanly. We drop the `glow` default feature +# and keep the rest (accesskit, fonts, wayland, x11). +eframe = { version = "0.29", default-features = false, features = ["accesskit", "default_fonts", "wayland", "x11", "wgpu"] } image = { version = "0.25", default-features = false, features = ["webp", "jpeg", "png"] } toml = "0.8" serde = { version = "1.0", features = ["derive"] } diff --git a/src/main.rs b/src/main.rs index 5e449a5..cffd32a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -78,6 +78,10 @@ fn main() -> eframe::Result<()> { .with_inner_size([1280.0, 820.0]) .with_min_inner_size([800.0, 500.0]) .with_title("yt-offline"), + // Force the wgpu (Vulkan) renderer. The default glow/OpenGL path + // crashes on NVIDIA + Wayland when the window is maximized + // (Glutin EGL_BAD_ALLOC). wgpu reconfigures the swapchain cleanly. + renderer: eframe::Renderer::Wgpu, ..Default::default() }; eframe::run_native(