chore: update to wgpu 28 and cosmic-text 0.19

This commit is contained in:
Hojjat 2026-04-22 14:36:39 -06:00 committed by Michael Murphy
parent aa2a870c35
commit 90d2c418a7
17 changed files with 113 additions and 185 deletions

179
Cargo.lock generated
View file

@ -157,6 +157,12 @@ dependencies = [
"equator", "equator",
] ]
[[package]]
name = "allocator-api2"
version = "0.2.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
[[package]] [[package]]
name = "android-activity" name = "android-activity"
version = "0.6.1" version = "0.6.1"
@ -1314,8 +1320,9 @@ dependencies = [
[[package]] [[package]]
name = "cosmic-text" name = "cosmic-text"
version = "0.18.2" version = "0.19.0"
source = "git+https://github.com/pop-os/cosmic-text.git#4d74f795cc771fdcc7ea0f9cacba63fcf036fad6" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be17b688510d934ce13f48a2beba700e11583e281e0fda99c22bb256a14eda73"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"fontdb", "fontdb",
@ -1439,7 +1446,7 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
[[package]] [[package]]
name = "cryoglyph" name = "cryoglyph"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/pop-os/glyphon.git?tag=cosmic-0.14#c49de15bce4d8254ac136d1be9911960cc85ce12" source = "git+https://github.com/iced-rs/cryoglyph.git?rev=e429a025df36ab8145708acb309080ae3deec17a#e429a025df36ab8145708acb309080ae3deec17a"
dependencies = [ dependencies = [
"cosmic-text", "cosmic-text",
"etagere", "etagere",
@ -1561,7 +1568,7 @@ dependencies = [
"libc", "libc",
"option-ext", "option-ext",
"redox_users 0.5.2", "redox_users 0.5.2",
"windows-sys 0.60.2", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -1789,7 +1796,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [ dependencies = [
"libc", "libc",
"windows-sys 0.52.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -2292,7 +2299,7 @@ dependencies = [
"gobject-sys", "gobject-sys",
"libc", "libc",
"system-deps", "system-deps",
"windows-sys 0.52.0", "windows-sys 0.59.0",
] ]
[[package]] [[package]]
@ -2403,35 +2410,18 @@ dependencies = [
"system-deps", "system-deps",
] ]
[[package]]
name = "gpu-alloc"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
dependencies = [
"bitflags 2.11.0",
"gpu-alloc-types",
]
[[package]]
name = "gpu-alloc-types"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
dependencies = [
"bitflags 2.11.0",
]
[[package]] [[package]]
name = "gpu-allocator" name = "gpu-allocator"
version = "0.27.0" version = "0.28.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c151a2a5ef800297b4e79efa4f4bec035c5f51d5ae587287c9b952bdf734cacd" checksum = "51255ea7cfaadb6c5f1528d43e92a82acb2b96c43365989a28b2d44ee38f8795"
dependencies = [ dependencies = [
"ash",
"hashbrown 0.16.1",
"log", "log",
"presser", "presser",
"thiserror 1.0.69", "thiserror 2.0.18",
"windows 0.58.0", "windows 0.57.0",
] ]
[[package]] [[package]]
@ -2699,6 +2689,8 @@ version = "0.16.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
dependencies = [ dependencies = [
"allocator-api2",
"equivalent",
"foldhash 0.2.0", "foldhash 0.2.0",
] ]
@ -3478,7 +3470,7 @@ checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46"
dependencies = [ dependencies = [
"hermit-abi", "hermit-abi",
"libc", "libc",
"windows-sys 0.52.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -3536,7 +3528,7 @@ dependencies = [
"portable-atomic", "portable-atomic",
"portable-atomic-util", "portable-atomic-util",
"serde_core", "serde_core",
"windows-sys 0.52.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -4045,9 +4037,9 @@ dependencies = [
[[package]] [[package]]
name = "metal" name = "metal"
version = "0.32.0" version = "0.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00c15a6f673ff72ddcc22394663290f870fb224c1bfce55734a75c414150e605" checksum = "c7047791b5bc903b8cd963014b355f71dc9864a9a0b727057676c1dcae5cbc15"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"block", "block",
@ -4193,9 +4185,9 @@ checksum = "13d2233c9842d08cfe13f9eac96e207ca6a2ea10b80259ebe8ad0268be27d2af"
[[package]] [[package]]
name = "naga" name = "naga"
version = "27.0.3" version = "28.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "066cf25f0e8b11ee0df221219010f213ad429855f57c494f995590c861a9a7d8" checksum = "618f667225063219ddfc61251087db8a9aec3c3f0950c916b614e403486f1135"
dependencies = [ dependencies = [
"arrayvec", "arrayvec",
"bit-set", "bit-set",
@ -4300,7 +4292,7 @@ version = "0.50.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5"
dependencies = [ dependencies = [
"windows-sys 0.60.2", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -5706,7 +5698,7 @@ dependencies = [
"errno", "errno",
"libc", "libc",
"linux-raw-sys 0.4.15", "linux-raw-sys 0.4.15",
"windows-sys 0.52.0", "windows-sys 0.59.0",
] ]
[[package]] [[package]]
@ -5719,7 +5711,7 @@ dependencies = [
"errno", "errno",
"libc", "libc",
"linux-raw-sys 0.12.1", "linux-raw-sys 0.12.1",
"windows-sys 0.52.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -6334,7 +6326,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e"
dependencies = [ dependencies = [
"libc", "libc",
"windows-sys 0.60.2", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -6628,7 +6620,7 @@ dependencies = [
"getrandom 0.4.2", "getrandom 0.4.2",
"once_cell", "once_cell",
"rustix 1.1.4", "rustix 1.1.4",
"windows-sys 0.52.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -7167,7 +7159,7 @@ checksum = "f2f6fb2847f6742cd76af783a2a2c49e9375d0a111c7bef6f71cd9e738c72d6e"
dependencies = [ dependencies = [
"memoffset", "memoffset",
"tempfile", "tempfile",
"windows-sys 0.60.2", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -7823,12 +7815,13 @@ checksum = "a28ac98ddc8b9274cb41bb4d9d4d5c425b6020c50c46f25559911905610b4a88"
[[package]] [[package]]
name = "wgpu" name = "wgpu"
version = "27.0.1" version = "28.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfe68bac7cde125de7a731c3400723cadaaf1703795ad3f4805f187459cd7a77" checksum = "f9cb534d5ffd109c7d1135f34cdae29e60eab94855a625dcfe1705f8bc7ad79f"
dependencies = [ dependencies = [
"arrayvec", "arrayvec",
"bitflags 2.11.0", "bitflags 2.11.0",
"bytemuck",
"cfg-if", "cfg-if",
"cfg_aliases", "cfg_aliases",
"document-features", "document-features",
@ -7852,9 +7845,9 @@ dependencies = [
[[package]] [[package]]
name = "wgpu-core" name = "wgpu-core"
version = "27.0.3" version = "28.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27a75de515543b1897b26119f93731b385a19aea165a1ec5f0e3acecc229cae7" checksum = "d23f4642f53f666adcfd2d3218ab174d1e6681101aef18696b90cbe64d1c10f9"
dependencies = [ dependencies = [
"arrayvec", "arrayvec",
"bit-set", "bit-set",
@ -7885,45 +7878,45 @@ dependencies = [
[[package]] [[package]]
name = "wgpu-core-deps-apple" name = "wgpu-core-deps-apple"
version = "27.0.0" version = "28.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0772ae958e9be0c729561d5e3fd9a19679bcdfb945b8b1a1969d9bfe8056d233" checksum = "87b7b696b918f337c486bf93142454080a32a37832ba8a31e4f48221890047da"
dependencies = [ dependencies = [
"wgpu-hal", "wgpu-hal",
] ]
[[package]] [[package]]
name = "wgpu-core-deps-emscripten" name = "wgpu-core-deps-emscripten"
version = "27.0.0" version = "28.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b06ac3444a95b0813ecfd81ddb2774b66220b264b3e2031152a4a29fda4da6b5" checksum = "34b251c331f84feac147de3c4aa3aa45112622a95dd7ee1b74384fa0458dbd79"
dependencies = [ dependencies = [
"wgpu-hal", "wgpu-hal",
] ]
[[package]] [[package]]
name = "wgpu-core-deps-wasm" name = "wgpu-core-deps-wasm"
version = "27.0.0" version = "28.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b1027dcf3b027a877e44819df7ceb0e2e98578830f8cd34cd6c3c7c2a7a50b7" checksum = "12a2cf578ce8d7d50d0e63ddc2345c7dcb599f6eb90b888813406ea78b9b7010"
dependencies = [ dependencies = [
"wgpu-hal", "wgpu-hal",
] ]
[[package]] [[package]]
name = "wgpu-core-deps-windows-linux-android" name = "wgpu-core-deps-windows-linux-android"
version = "27.0.0" version = "28.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "71197027d61a71748e4120f05a9242b2ad142e3c01f8c1b47707945a879a03c3" checksum = "68ca976e72b2c9964eb243e281f6ce7f14a514e409920920dcda12ae40febaae"
dependencies = [ dependencies = [
"wgpu-hal", "wgpu-hal",
] ]
[[package]] [[package]]
name = "wgpu-hal" name = "wgpu-hal"
version = "27.0.4" version = "28.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b21cb61c57ee198bc4aff71aeadff4cbb80b927beb912506af9c780d64313ce" checksum = "44d6cb474beb218824dcc9e1ce679d973f719262789bfb27407da560cac20eeb"
dependencies = [ dependencies = [
"android_system_properties", "android_system_properties",
"arrayvec", "arrayvec",
@ -7937,7 +7930,6 @@ dependencies = [
"core-graphics-types 0.2.0", "core-graphics-types 0.2.0",
"glow", "glow",
"glutin_wgl_sys", "glutin_wgl_sys",
"gpu-alloc",
"gpu-allocator", "gpu-allocator",
"gpu-descriptor", "gpu-descriptor",
"hashbrown 0.16.1", "hashbrown 0.16.1",
@ -7964,21 +7956,20 @@ dependencies = [
"wasm-bindgen", "wasm-bindgen",
"web-sys", "web-sys",
"wgpu-types", "wgpu-types",
"windows 0.58.0", "windows 0.62.2",
"windows-core 0.58.0", "windows-core 0.62.2",
] ]
[[package]] [[package]]
name = "wgpu-types" name = "wgpu-types"
version = "27.0.1" version = "28.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "afdcf84c395990db737f2dd91628706cb31e86d72e53482320d368e52b5da5eb" checksum = "e18308757e594ed2cd27dddbb16a139c42a683819d32a2e0b1b0167552f5840c"
dependencies = [ dependencies = [
"bitflags 2.11.0", "bitflags 2.11.0",
"bytemuck", "bytemuck",
"js-sys", "js-sys",
"log", "log",
"thiserror 2.0.18",
"web-sys", "web-sys",
] ]
@ -8004,7 +7995,7 @@ version = "0.1.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
dependencies = [ dependencies = [
"windows-sys 0.52.0", "windows-sys 0.61.2",
] ]
[[package]] [[package]]
@ -8038,16 +8029,6 @@ dependencies = [
"windows-targets 0.52.6", "windows-targets 0.52.6",
] ]
[[package]]
name = "windows"
version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6"
dependencies = [
"windows-core 0.58.0",
"windows-targets 0.52.6",
]
[[package]] [[package]]
name = "windows" name = "windows"
version = "0.61.3" version = "0.61.3"
@ -8103,19 +8084,6 @@ dependencies = [
"windows-targets 0.52.6", "windows-targets 0.52.6",
] ]
[[package]]
name = "windows-core"
version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99"
dependencies = [
"windows-implement 0.58.0",
"windows-interface 0.58.0",
"windows-result 0.2.0",
"windows-strings 0.1.0",
"windows-targets 0.52.6",
]
[[package]] [[package]]
name = "windows-core" name = "windows-core"
version = "0.61.2" version = "0.61.2"
@ -8175,17 +8143,6 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "windows-implement"
version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "windows-implement" name = "windows-implement"
version = "0.60.2" version = "0.60.2"
@ -8208,17 +8165,6 @@ dependencies = [
"syn", "syn",
] ]
[[package]]
name = "windows-interface"
version = "0.58.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]] [[package]]
name = "windows-interface" name = "windows-interface"
version = "0.59.3" version = "0.59.3"
@ -8282,15 +8228,6 @@ dependencies = [
"windows-targets 0.52.6", "windows-targets 0.52.6",
] ]
[[package]]
name = "windows-result"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e"
dependencies = [
"windows-targets 0.52.6",
]
[[package]] [[package]]
name = "windows-result" name = "windows-result"
version = "0.3.4" version = "0.3.4"
@ -8309,16 +8246,6 @@ dependencies = [
"windows-link 0.2.1", "windows-link 0.2.1",
] ]
[[package]]
name = "windows-strings"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10"
dependencies = [
"windows-result 0.2.0",
"windows-targets 0.52.6",
]
[[package]] [[package]]
name = "windows-strings" name = "windows-strings"
version = "0.4.2" version = "0.4.2"

View file

@ -202,7 +202,7 @@ repository = "https://github.com/iced-rs/iced"
homepage = "https://iced.rs" homepage = "https://iced.rs"
categories = ["gui"] categories = ["gui"]
keywords = ["gui", "ui", "graphics", "interface", "widgets"] keywords = ["gui", "ui", "graphics", "interface", "widgets"]
rust-version = "1.89" rust-version = "1.92"
[workspace.dependencies] [workspace.dependencies]
iced = { version = "0.14.0", path = "." } iced = { version = "0.14.0", path = "." }
@ -238,10 +238,9 @@ async-std = "1.0"
bitflags = "2.5" bitflags = "2.5"
bytemuck = { version = "1.0", features = ["derive"] } bytemuck = { version = "1.0", features = ["derive"] }
bytes = "1.6" bytes = "1.6"
cosmic-text = { git = "https://github.com/pop-os/cosmic-text.git" } cosmic-text = "0.19"
# cosmic-text = "0.10" cryoglyph = { git = "https://github.com/iced-rs/cryoglyph.git", rev = "e429a025df36ab8145708acb309080ae3deec17a" }
dark-light = "1.0" dark-light = "1.0"
cryoglyph = { package = "cryoglyph", git = "https://github.com/pop-os/glyphon.git", tag = "cosmic-0.14" }
resvg = "0.45" resvg = "0.45"
web-sys = "0.3.69" web-sys = "0.3.69"
guillotiere = "0.6" guillotiere = "0.6"
@ -288,7 +287,7 @@ url = "2.5"
wasm-bindgen-futures = "0.4" wasm-bindgen-futures = "0.4"
wasmtimer = "0.4.2" wasmtimer = "0.4.2"
web-time = "1.1" web-time = "1.1"
wgpu = { version = "27.0", default-features = false, features = [ wgpu = { version = "28.0", default-features = false, features = [
"std", "std",
"wgsl", "wgsl",
] } ] }

View file

@ -140,7 +140,7 @@ impl Pipeline {
address_mode_w: wgpu::AddressMode::ClampToEdge, address_mode_w: wgpu::AddressMode::ClampToEdge,
mag_filter: wgpu::FilterMode::Linear, mag_filter: wgpu::FilterMode::Linear,
min_filter: wgpu::FilterMode::Linear, min_filter: wgpu::FilterMode::Linear,
mipmap_filter: wgpu::FilterMode::Linear, mipmap_filter: wgpu::MipmapFilterMode::Linear,
..Default::default() ..Default::default()
}); });
@ -223,7 +223,7 @@ impl Pipeline {
device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor {
label: Some("cubes pipeline layout"), label: Some("cubes pipeline layout"),
bind_group_layouts: &[&uniform_bind_group_layout], bind_group_layouts: &[&uniform_bind_group_layout],
push_constant_ranges: &[], immediate_size: 0,
}); });
let shader = let shader =
@ -280,7 +280,7 @@ impl Pipeline {
compilation_options: compilation_options:
wgpu::PipelineCompilationOptions::default(), wgpu::PipelineCompilationOptions::default(),
}), }),
multiview: None, multiview_mask: None,
cache: None, cache: None,
}); });
@ -388,6 +388,7 @@ impl Pipeline {
), ),
timestamp_writes: None, timestamp_writes: None,
occlusion_query_set: None, occlusion_query_set: None,
multiview_mask: None,
}); });
pass.set_viewport( pass.set_viewport(
@ -478,7 +479,7 @@ impl DepthPipeline {
device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor {
label: Some("cubes.depth_pipeline.layout"), label: Some("cubes.depth_pipeline.layout"),
bind_group_layouts: &[&bind_group_layout], bind_group_layouts: &[&bind_group_layout],
push_constant_ranges: &[], immediate_size: 0,
}); });
let shader = let shader =
@ -520,7 +521,7 @@ impl DepthPipeline {
compilation_options: compilation_options:
wgpu::PipelineCompilationOptions::default(), wgpu::PipelineCompilationOptions::default(),
}), }),
multiview: None, multiview_mask: None,
cache: None, cache: None,
}); });
@ -586,6 +587,7 @@ impl DepthPipeline {
), ),
timestamp_writes: None, timestamp_writes: None,
occlusion_query_set: None, occlusion_query_set: None,
multiview_mask: None,
}); });
pass.set_viewport( pass.set_viewport(

View file

@ -43,6 +43,7 @@ impl Scene {
depth_stencil_attachment: None, depth_stencil_attachment: None,
timestamp_writes: None, timestamp_writes: None,
occlusion_query_set: None, occlusion_query_set: None,
multiview_mask: None,
}) })
} }
@ -64,8 +65,8 @@ fn build_pipeline(
let pipeline_layout = let pipeline_layout =
device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor {
label: None, label: None,
push_constant_ranges: &[],
bind_group_layouts: &[], bind_group_layouts: &[],
immediate_size: 0,
}); });
device.create_render_pipeline(&wgpu::RenderPipelineDescriptor { device.create_render_pipeline(&wgpu::RenderPipelineDescriptor {
@ -101,7 +102,7 @@ fn build_pipeline(
mask: !0, mask: !0,
alpha_to_coverage_enabled: false, alpha_to_coverage_enabled: false,
}, },
multiview: None, multiview_mask: None,
cache: None, cache: None,
}) })
} }

View file

@ -63,7 +63,6 @@ impl<T: bytemuck::Pod> Buffer<T> {
/// Returns the size of the written bytes. /// Returns the size of the written bytes.
pub fn write( pub fn write(
&mut self, &mut self,
device: &wgpu::Device,
encoder: &mut wgpu::CommandEncoder, encoder: &mut wgpu::CommandEncoder,
belt: &mut wgpu::util::StagingBelt, belt: &mut wgpu::util::StagingBelt,
offset: usize, offset: usize,
@ -79,7 +78,6 @@ impl<T: bytemuck::Pod> Buffer<T> {
&self.raw, &self.raw,
(offset + bytes_written) as u64, (offset + bytes_written) as u64,
MAX_WRITE_SIZE_U64, MAX_WRITE_SIZE_U64,
device,
) )
.copy_from_slice( .copy_from_slice(
&bytes[bytes_written..bytes_written + MAX_WRITE_SIZE], &bytes[bytes_written..bytes_written + MAX_WRITE_SIZE],
@ -100,7 +98,6 @@ impl<T: bytemuck::Pod> Buffer<T> {
&self.raw, &self.raw,
(offset + bytes_written) as u64, (offset + bytes_written) as u64,
bytes_left, bytes_left,
device,
) )
.copy_from_slice(&bytes[bytes_written..]); .copy_from_slice(&bytes[bytes_written..]);

View file

@ -99,7 +99,7 @@ pub fn convert(
device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor {
label: Some("iced_wgpu.offscreen.blit.pipeline_layout"), label: Some("iced_wgpu.offscreen.blit.pipeline_layout"),
bind_group_layouts: &[&constant_layout, &texture_layout], bind_group_layouts: &[&constant_layout, &texture_layout],
push_constant_ranges: &[], immediate_size: 0,
}); });
let shader = device.create_shader_module(wgpu::ShaderModuleDescriptor { let shader = device.create_shader_module(wgpu::ShaderModuleDescriptor {
@ -149,7 +149,7 @@ pub fn convert(
}, },
depth_stencil: None, depth_stencil: None,
multisample: wgpu::MultisampleState::default(), multisample: wgpu::MultisampleState::default(),
multiview: None, multiview_mask: None,
cache: None, cache: None,
}); });
@ -194,6 +194,7 @@ pub fn convert(
depth_stencil_attachment: None, depth_stencil_attachment: None,
timestamp_writes: None, timestamp_writes: None,
occlusion_query_set: None, occlusion_query_set: None,
multiview_mask: None,
}); });
pass.set_pipeline(&pipeline); pass.set_pipeline(&pipeline);

View file

@ -132,7 +132,7 @@ impl Atlas {
match &entry { match &entry {
Entry::Contiguous(allocation) => { Entry::Contiguous(allocation) => {
self.upload_allocation( self.upload_allocation(
pixels, width, 0, allocation, device, encoder, belt, pixels, width, 0, allocation, encoder, belt,
); );
} }
Entry::Fragmented { fragments, .. } => { Entry::Fragmented { fragments, .. } => {
@ -145,7 +145,6 @@ impl Atlas {
width, width,
offset, offset,
&fragment.allocation, &fragment.allocation,
device,
encoder, encoder,
belt, belt,
); );
@ -312,7 +311,6 @@ impl Atlas {
image_width: u32, image_width: u32,
offset: usize, offset: usize,
allocation: &Allocation, allocation: &Allocation,
device: &wgpu::Device,
encoder: &mut wgpu::CommandEncoder, encoder: &mut wgpu::CommandEncoder,
belt: &mut wgpu::util::StagingBelt, belt: &mut wgpu::util::StagingBelt,
) { ) {
@ -334,7 +332,6 @@ impl Atlas {
let buffer_slice = belt.allocate( let buffer_slice = belt.allocate(
wgpu::BufferSize::new(total_bytes as u64).unwrap(), wgpu::BufferSize::new(total_bytes as u64).unwrap(),
wgpu::BufferSize::new(8 * 4).unwrap(), wgpu::BufferSize::new(8 * 4).unwrap(),
device,
); );
const PIXEL: usize = 4; const PIXEL: usize = 4;

View file

@ -38,7 +38,10 @@ impl Cache {
raster: Raster { raster: Raster {
cache: crate::image::raster::Cache::default(), cache: crate::image::raster::Cache::default(),
pending: HashMap::new(), pending: HashMap::new(),
belt: wgpu::util::StagingBelt::new(2 * 1024 * 1024), belt: wgpu::util::StagingBelt::new(
device.clone(),
2 * 1024 * 1024,
),
}, },
#[cfg(feature = "svg")] #[cfg(feature = "svg")]
vector: crate::image::vector::Cache::default(), vector: crate::image::vector::Cache::default(),
@ -451,7 +454,10 @@ mod worker {
backend, backend,
texture_layout, texture_layout,
shell: shell.clone(), shell: shell.clone(),
belt: wgpu::util::StagingBelt::new(4 * 1024 * 1024), belt: wgpu::util::StagingBelt::new(
device.clone(),
4 * 1024 * 1024,
),
jobs: jobs_receiver, jobs: jobs_receiver,
output: work_sender, output: work_sender,
quit: quit_receiver, quit: quit_receiver,

View file

@ -45,7 +45,7 @@ impl Pipeline {
address_mode_w: wgpu::AddressMode::ClampToEdge, address_mode_w: wgpu::AddressMode::ClampToEdge,
min_filter: wgpu::FilterMode::Nearest, min_filter: wgpu::FilterMode::Nearest,
mag_filter: wgpu::FilterMode::Nearest, mag_filter: wgpu::FilterMode::Nearest,
mipmap_filter: wgpu::FilterMode::Nearest, mipmap_filter: wgpu::MipmapFilterMode::Nearest,
..Default::default() ..Default::default()
}); });
@ -55,7 +55,7 @@ impl Pipeline {
address_mode_w: wgpu::AddressMode::ClampToEdge, address_mode_w: wgpu::AddressMode::ClampToEdge,
min_filter: wgpu::FilterMode::Linear, min_filter: wgpu::FilterMode::Linear,
mag_filter: wgpu::FilterMode::Linear, mag_filter: wgpu::FilterMode::Linear,
mipmap_filter: wgpu::FilterMode::Linear, mipmap_filter: wgpu::MipmapFilterMode::Linear,
..Default::default() ..Default::default()
}); });
@ -106,8 +106,8 @@ impl Pipeline {
let layout = let layout =
device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor {
label: Some("iced_wgpu::image pipeline layout"), label: Some("iced_wgpu::image pipeline layout"),
push_constant_ranges: &[],
bind_group_layouts: &[&constant_layout, &texture_layout], bind_group_layouts: &[&constant_layout, &texture_layout],
immediate_size: 0,
}); });
let shader = let shader =
@ -191,7 +191,7 @@ impl Pipeline {
mask: !0, mask: !0,
alpha_to_coverage_enabled: false, alpha_to_coverage_enabled: false,
}, },
multiview: None, multiview_mask: None,
cache: None, cache: None,
}); });
@ -528,7 +528,6 @@ impl Layer {
&self.uniforms, &self.uniforms,
0, 0,
(bytes.len() as u64).try_into().expect("Sized uniforms"), (bytes.len() as u64).try_into().expect("Sized uniforms"),
device,
) )
.copy_from_slice(bytes); .copy_from_slice(bytes);
@ -539,11 +538,11 @@ impl Layer {
let mut offset = 0; let mut offset = 0;
if !nearest.is_empty() { if !nearest.is_empty() {
offset += self.instances.write(device, encoder, belt, 0, nearest); offset += self.instances.write(encoder, belt, 0, nearest);
} }
if !linear.is_empty() { if !linear.is_empty() {
let _ = self.instances.write(device, encoder, belt, offset, linear); let _ = self.instances.write(encoder, belt, offset, linear);
} }
} }

View file

@ -126,6 +126,7 @@ impl Renderer {
// It would be great if the `StagingBelt` API exposed methods // It would be great if the `StagingBelt` API exposed methods
// for introspection to detect when a resize may be worth it. // for introspection to detect when a resize may be worth it.
staging_belt: wgpu::util::StagingBelt::new( staging_belt: wgpu::util::StagingBelt::new(
engine.device.clone(),
buffer::MAX_WRITE_SIZE as u64, buffer::MAX_WRITE_SIZE as u64,
), ),
@ -454,6 +455,7 @@ impl Renderer {
depth_stencil_attachment: None, depth_stencil_attachment: None,
timestamp_writes: None, timestamp_writes: None,
occlusion_query_set: None, occlusion_query_set: None,
multiview_mask: None,
}, },
)); ));
@ -528,6 +530,7 @@ impl Renderer {
depth_stencil_attachment: None, depth_stencil_attachment: None,
timestamp_writes: None, timestamp_writes: None,
occlusion_query_set: None, occlusion_query_set: None,
multiview_mask: None,
}, },
)); ));
} }
@ -621,6 +624,7 @@ impl Renderer {
depth_stencil_attachment: None, depth_stencil_attachment: None,
timestamp_writes: None, timestamp_writes: None,
occlusion_query_set: None, occlusion_query_set: None,
multiview_mask: None,
}, },
)); ));
} }

View file

@ -209,7 +209,7 @@ impl Layer {
transformation: Transformation, transformation: Transformation,
scale: f32, scale: f32,
) { ) {
self.update(device, encoder, belt, transformation, scale); self.update(encoder, belt, transformation, scale);
if !quads.solids.is_empty() { if !quads.solids.is_empty() {
self.solid.prepare(device, encoder, belt, &quads.solids); self.solid.prepare(device, encoder, belt, &quads.solids);
@ -223,7 +223,6 @@ impl Layer {
pub fn update( pub fn update(
&mut self, &mut self,
device: &wgpu::Device,
encoder: &mut wgpu::CommandEncoder, encoder: &mut wgpu::CommandEncoder,
belt: &mut wgpu::util::StagingBelt, belt: &mut wgpu::util::StagingBelt,
transformation: Transformation, transformation: Transformation,
@ -237,7 +236,6 @@ impl Layer {
&self.constants_buffer, &self.constants_buffer,
0, 0,
(bytes.len() as u64).try_into().expect("Sized uniforms"), (bytes.len() as u64).try_into().expect("Sized uniforms"),
device,
) )
.copy_from_slice(bytes); .copy_from_slice(bytes);
} }

View file

@ -51,7 +51,7 @@ impl Layer {
instances: &[Gradient], instances: &[Gradient],
) { ) {
let _ = self.instances.resize(device, instances.len()); let _ = self.instances.resize(device, instances.len());
let _ = self.instances.write(device, encoder, belt, 0, instances); let _ = self.instances.write(encoder, belt, 0, instances);
self.instance_count = instances.len(); self.instance_count = instances.len();
} }
@ -75,8 +75,8 @@ impl Pipeline {
let layout = device.create_pipeline_layout( let layout = device.create_pipeline_layout(
&wgpu::PipelineLayoutDescriptor { &wgpu::PipelineLayoutDescriptor {
label: Some("iced_wgpu.quad.gradient.pipeline"), label: Some("iced_wgpu.quad.gradient.pipeline"),
push_constant_ranges: &[],
bind_group_layouts: &[constants_layout], bind_group_layouts: &[constants_layout],
immediate_size: 0,
}, },
); );
@ -155,7 +155,7 @@ impl Pipeline {
mask: !0, mask: !0,
alpha_to_coverage_enabled: false, alpha_to_coverage_enabled: false,
}, },
multiview: None, multiview_mask: None,
cache: None, cache: None,
}, },
); );

View file

@ -45,7 +45,7 @@ impl Layer {
instances: &[Solid], instances: &[Solid],
) { ) {
let _ = self.instances.resize(device, instances.len()); let _ = self.instances.resize(device, instances.len());
let _ = self.instances.write(device, encoder, belt, 0, instances); let _ = self.instances.write(encoder, belt, 0, instances);
self.instance_count = instances.len(); self.instance_count = instances.len();
} }
@ -65,8 +65,8 @@ impl Pipeline {
let layout = let layout =
device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor {
label: Some("iced_wgpu.quad.solid.pipeline"), label: Some("iced_wgpu.quad.solid.pipeline"),
push_constant_ranges: &[],
bind_group_layouts: &[constants_layout], bind_group_layouts: &[constants_layout],
immediate_size: 0,
}); });
let shader = let shader =
@ -139,7 +139,7 @@ impl Pipeline {
mask: !0, mask: !0,
alpha_to_coverage_enabled: false, alpha_to_coverage_enabled: false,
}, },
multiview: None, multiview_mask: None,
cache: None, cache: None,
}); });

View file

@ -619,7 +619,7 @@ fn prepare(
)?; )?;
Some(cryoglyph::TextArea { Some(cryoglyph::TextArea {
buffer, text: buffer.layout_runs(),
left: position.x, left: position.x,
top: position.y, top: position.y,
scale: transformation.scale_factor() scale: transformation.scale_factor()

View file

@ -313,6 +313,7 @@ fn render<'a>(
depth_stencil_attachment: None, depth_stencil_attachment: None,
timestamp_writes: None, timestamp_writes: None,
occlusion_query_set: None, occlusion_query_set: None,
multiview_mask: None,
}) })
}; };
@ -425,18 +426,13 @@ impl Layer {
let indices = mesh.indices(); let indices = mesh.indices();
index_offset += self.index_buffer.write( index_offset +=
device, self.index_buffer
encoder, .write(encoder, belt, index_offset, indices);
belt,
index_offset,
indices,
);
match mesh { match mesh {
Mesh::Solid { buffers, .. } => { Mesh::Solid { buffers, .. } => {
solid_vertex_offset += self.solid.vertices.write( solid_vertex_offset += self.solid.vertices.write(
device,
encoder, encoder,
belt, belt,
solid_vertex_offset, solid_vertex_offset,
@ -444,16 +440,14 @@ impl Layer {
); );
solid_uniform_offset += self.solid.uniforms.write( solid_uniform_offset += self.solid.uniforms.write(
device,
encoder, encoder,
belt, belt,
solid_uniform_offset, solid_uniform_offset,
&[uniforms], &[uniforms],
); )
} }
Mesh::Gradient { buffers, .. } => { Mesh::Gradient { buffers, .. } => {
gradient_vertex_offset += self.gradient.vertices.write( gradient_vertex_offset += self.gradient.vertices.write(
device,
encoder, encoder,
belt, belt,
gradient_vertex_offset, gradient_vertex_offset,
@ -461,7 +455,6 @@ impl Layer {
); );
gradient_uniform_offset += self.gradient.uniforms.write( gradient_uniform_offset += self.gradient.uniforms.write(
device,
encoder, encoder,
belt, belt,
gradient_uniform_offset, gradient_uniform_offset,
@ -731,7 +724,7 @@ mod solid {
&wgpu::PipelineLayoutDescriptor { &wgpu::PipelineLayoutDescriptor {
label: Some("iced_wgpu.triangle.solid.pipeline_layout"), label: Some("iced_wgpu.triangle.solid.pipeline_layout"),
bind_group_layouts: &[&constants_layout], bind_group_layouts: &[&constants_layout],
push_constant_ranges: &[], immediate_size: 0,
}, },
); );
@ -784,7 +777,7 @@ mod solid {
primitive: triangle::primitive_state(), primitive: triangle::primitive_state(),
depth_stencil: None, depth_stencil: None,
multisample: triangle::multisample_state(antialiasing), multisample: triangle::multisample_state(antialiasing),
multiview: None, multiview_mask: None,
cache: None, cache: None,
}, },
); );
@ -886,7 +879,7 @@ mod gradient {
&wgpu::PipelineLayoutDescriptor { &wgpu::PipelineLayoutDescriptor {
label: Some("iced_wgpu.triangle.gradient.pipeline_layout"), label: Some("iced_wgpu.triangle.gradient.pipeline_layout"),
bind_group_layouts: &[&constants_layout], bind_group_layouts: &[&constants_layout],
push_constant_ranges: &[], immediate_size: 0,
}, },
); );
@ -949,7 +942,7 @@ mod gradient {
primitive: triangle::primitive_state(), primitive: triangle::primitive_state(),
depth_stencil: None, depth_stencil: None,
multisample: triangle::multisample_state(antialiasing), multisample: triangle::multisample_state(antialiasing),
multiview: None, multiview_mask: None,
cache: None, cache: None,
}, },
); );

View file

@ -69,8 +69,8 @@ impl Pipeline {
let layout = let layout =
device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor {
label: Some("iced_wgpu::triangle::msaa pipeline layout"), label: Some("iced_wgpu::triangle::msaa pipeline layout"),
push_constant_ranges: &[],
bind_group_layouts: &[&constant_layout, &texture_layout], bind_group_layouts: &[&constant_layout, &texture_layout],
immediate_size: 0,
}); });
let shader = let shader =
@ -116,7 +116,7 @@ impl Pipeline {
mask: !0, mask: !0,
alpha_to_coverage_enabled: false, alpha_to_coverage_enabled: false,
}, },
multiview: None, multiview_mask: None,
cache: None, cache: None,
}); });
@ -177,6 +177,7 @@ impl Pipeline {
depth_stencil_attachment: None, depth_stencil_attachment: None,
timestamp_writes: None, timestamp_writes: None,
occlusion_query_set: None, occlusion_query_set: None,
multiview_mask: None,
}) })
} }
} }
@ -320,7 +321,6 @@ impl State {
0, 0,
NonZeroU64::new(std::mem::size_of::<Ratio>() as u64) NonZeroU64::new(std::mem::size_of::<Ratio>() as u64)
.expect("non-empty ratio"), .expect("non-empty ratio"),
device,
) )
.copy_from_slice(bytemuck::bytes_of(&ratio)); .copy_from_slice(bytemuck::bytes_of(&ratio));
@ -351,6 +351,7 @@ impl State {
depth_stencil_attachment: None, depth_stencil_attachment: None,
timestamp_writes: None, timestamp_writes: None,
occlusion_query_set: None, occlusion_query_set: None,
multiview_mask: None,
}); });
render_pass.set_pipeline(&pipeline.raw); render_pass.set_pipeline(&pipeline.raw);

View file

@ -126,6 +126,7 @@ impl Compositor {
// if log::max_level() >= log::LevelFilter::Info { // if log::max_level() >= log::LevelFilter::Info {
// let available_adapters: Vec<_> = instance // let available_adapters: Vec<_> = instance
// .enumerate_adapters(settings.backends) // .enumerate_adapters(settings.backends)
// .await
// .iter() // .iter()
// .map(wgpu::Adapter::get_info) // .map(wgpu::Adapter::get_info)
// .collect(); // .collect();
@ -155,6 +156,7 @@ impl Compositor {
if let Some((vendor_id, device_id)) = ids { if let Some((vendor_id, device_id)) = ids {
adapter = instance adapter = instance
.enumerate_adapters(settings.backends) .enumerate_adapters(settings.backends)
.await
.into_iter() .into_iter()
.filter(|adapter| { .filter(|adapter| {
let info = adapter.get_info(); let info = adapter.get_info();
@ -172,6 +174,7 @@ impl Compositor {
} else if let Ok(name) = std::env::var("WGPU_ADAPTER_NAME") { } else if let Ok(name) = std::env::var("WGPU_ADAPTER_NAME") {
adapter = instance adapter = instance
.enumerate_adapters(settings.backends) .enumerate_adapters(settings.backends)
.await
.into_iter() .into_iter()
.filter(|adapter| { .filter(|adapter| {
let info = adapter.get_info(); let info = adapter.get_info();