Merge pull request #3019 from iced-rs/wgpu-26

Update `wgpu` to `26`
This commit is contained in:
Héctor 2025-07-22 03:14:19 +02:00 committed by GitHub
commit d4f8e19023
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 436 additions and 386 deletions

723
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -174,7 +174,7 @@ cosmic-text = "0.14"
dark-light = "2.0"
futures = { version = "0.3", default-features = false }
glam = "0.25"
cryoglyph = { git = "https://github.com/iced-rs/cryoglyph.git", rev = "a456d1c17bbcf33afcca41d9e5e299f9f1193819" }
cryoglyph = { git = "https://github.com/iced-rs/cryoglyph.git", rev = "453cedec0d2ec563bd7fa87e84a2319bcebb1ba3" }
guillotiere = "0.6"
half = "2.2"
image = { version = "0.25", default-features = false }
@ -211,7 +211,7 @@ wasm-bindgen-futures = "0.4"
wasmtimer = "0.4.1"
web-sys = "0.3.69"
web-time = "1.1"
wgpu = "24.0"
wgpu = "26.0"
window_clipboard = "0.4.1"
winit = { git = "https://github.com/iced-rs/winit.git", rev = "11414b6aa45699f038114e61b4ddf5102b2d3b4b" }

View file

@ -32,16 +32,15 @@ pub fn wgpu_benchmark(c: &mut Criterion) {
))
.expect("request adapter");
let (device, queue) = executor::block_on(adapter.request_device(
&wgpu::DeviceDescriptor {
let (device, queue) =
executor::block_on(adapter.request_device(&wgpu::DeviceDescriptor {
label: None,
required_features: wgpu::Features::empty(),
required_limits: wgpu::Limits::default(),
memory_hints: wgpu::MemoryHints::MemoryUsage,
},
None,
))
.expect("request device");
trace: wgpu::Trace::Off,
}))
.expect("request device");
c.bench_function("wgpu — canvas (light)", |b| {
benchmark(b, &adapter, &device, &queue, |_| scene(10));
@ -140,7 +139,7 @@ fn benchmark<'a>(
&viewport,
);
let _ = device.poll(wgpu::Maintain::WaitForSubmissionIndex(submission));
let _ = device.poll(wgpu::PollType::WaitForSubmissionIndex(submission));
i += 1;
});

View file

@ -369,6 +369,7 @@ impl Pipeline {
color_attachments: &[Some(
wgpu::RenderPassColorAttachment {
view: target,
depth_slice: None,
resolve_target: None,
ops: wgpu::Operations {
load: wgpu::LoadOp::Load,
@ -568,6 +569,7 @@ impl DepthPipeline {
label: Some("cubes.pipeline.depth_pass"),
color_attachments: &[Some(wgpu::RenderPassColorAttachment {
view: target,
depth_slice: None,
resolve_target: None,
ops: wgpu::Operations {
load: wgpu::LoadOp::Load,

View file

@ -96,17 +96,14 @@ pub fn main() -> Result<(), winit::error::EventLoopError> {
let capabilities = surface.get_capabilities(&adapter);
let (device, queue) = adapter
.request_device(
&wgpu::DeviceDescriptor {
label: None,
required_features: adapter_features
& wgpu::Features::default(),
required_limits: wgpu::Limits::default(),
memory_hints:
wgpu::MemoryHints::MemoryUsage,
},
None,
)
.request_device(&wgpu::DeviceDescriptor {
label: None,
required_features: adapter_features
& wgpu::Features::default(),
required_limits: wgpu::Limits::default(),
memory_hints: wgpu::MemoryHints::MemoryUsage,
trace: wgpu::Trace::Off,
})
.await
.expect("Request device");

View file

@ -24,6 +24,7 @@ impl Scene {
label: None,
color_attachments: &[Some(wgpu::RenderPassColorAttachment {
view: target,
depth_slice: None,
resolve_target: None,
ops: wgpu::Operations {
load: wgpu::LoadOp::Clear({

View file

@ -184,6 +184,7 @@ pub fn convert(
label: Some("iced_wgpu.offscreen.blit.render_pass"),
color_attachments: &[Some(wgpu::RenderPassColorAttachment {
view,
depth_slice: None,
resolve_target: None,
ops: wgpu::Operations {
load: wgpu::LoadOp::Load,

View file

@ -284,7 +284,7 @@ impl Renderer {
let _ = self
.engine
.device
.poll(wgpu::Maintain::WaitForSubmissionIndex(index));
.poll(wgpu::PollType::WaitForSubmissionIndex(index));
let mapped_buffer = slice.get_mapped_range();
@ -426,6 +426,7 @@ impl Renderer {
label: Some("iced_wgpu render pass"),
color_attachments: &[Some(wgpu::RenderPassColorAttachment {
view: frame,
depth_slice: None,
resolve_target: None,
ops: wgpu::Operations {
load: match clear_color {
@ -514,6 +515,7 @@ impl Renderer {
color_attachments: &[Some(
wgpu::RenderPassColorAttachment {
view: frame,
depth_slice: None,
resolve_target: None,
ops: wgpu::Operations {
load: wgpu::LoadOp::Load,
@ -560,6 +562,7 @@ impl Renderer {
color_attachments: &[Some(
wgpu::RenderPassColorAttachment {
view: frame,
depth_slice: None,
resolve_target: None,
ops: wgpu::Operations {
load: wgpu::LoadOp::Load,
@ -831,21 +834,20 @@ impl renderer::Headless for Renderer {
force_fallback_adapter: false,
compatible_surface: None,
})
.await?;
.await
.ok()?;
let (device, queue) = adapter
.request_device(
&wgpu::DeviceDescriptor {
label: Some("iced_wgpu [headless]"),
required_features: wgpu::Features::empty(),
required_limits: wgpu::Limits {
max_bind_groups: 2,
..wgpu::Limits::default()
},
memory_hints: wgpu::MemoryHints::MemoryUsage,
.request_device(&wgpu::DeviceDescriptor {
label: Some("iced_wgpu [headless]"),
required_features: wgpu::Features::empty(),
required_limits: wgpu::Limits {
max_bind_groups: 2,
..wgpu::Limits::default()
},
None,
)
memory_hints: wgpu::MemoryHints::MemoryUsage,
trace: wgpu::Trace::Off,
})
.await
.ok()?;

View file

@ -335,6 +335,7 @@ fn render<'a>(
label: Some("iced_wgpu.triangle.render_pass"),
color_attachments: &[Some(wgpu::RenderPassColorAttachment {
view: target,
depth_slice: None,
resolve_target: None,
ops: wgpu::Operations {
load: wgpu::LoadOp::Load,

View file

@ -167,6 +167,7 @@ impl Pipeline {
label: Some("iced_wgpu.triangle.render_pass"),
color_attachments: &[Some(wgpu::RenderPassColorAttachment {
view: &targets.attachment,
depth_slice: None,
resolve_target: Some(&targets.resolve),
ops: wgpu::Operations {
load: wgpu::LoadOp::Clear(wgpu::Color::TRANSPARENT),
@ -340,6 +341,7 @@ impl State {
label: Some("iced_wgpu::triangle::msaa render pass"),
color_attachments: &[Some(wgpu::RenderPassColorAttachment {
view: target,
depth_slice: None,
resolve_target: None,
ops: wgpu::Operations {
load: wgpu::LoadOp::Load,

View file

@ -93,10 +93,10 @@ impl Compositor {
force_fallback_adapter: false,
};
let adapter = instance
.request_adapter(&adapter_options)
.await
.ok_or(Error::NoAdapterFound(format!("{adapter_options:?}")))?;
let adapter =
instance.request_adapter(&adapter_options).await.map_err(
|_error| Error::NoAdapterFound(format!("{adapter_options:?}")),
)?;
log::info!("Selected: {:#?}", adapter.get_info());
@ -162,17 +162,15 @@ impl Compositor {
for required_limits in limits {
let result = adapter
.request_device(
&wgpu::DeviceDescriptor {
label: Some(
"iced_wgpu::window::compositor device descriptor",
),
required_features: wgpu::Features::empty(),
required_limits: required_limits.clone(),
memory_hints: wgpu::MemoryHints::MemoryUsage,
},
None,
)
.request_device(&wgpu::DeviceDescriptor {
label: Some(
"iced_wgpu::window::compositor device descriptor",
),
required_features: wgpu::Features::empty(),
required_limits: required_limits.clone(),
memory_hints: wgpu::MemoryHints::MemoryUsage,
trace: wgpu::Trace::Off,
})
.await;
match result {