commit
d4f8e19023
11 changed files with 436 additions and 386 deletions
723
Cargo.lock
generated
723
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -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" }
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
||||
|
|
|
|||
|
|
@ -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({
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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()?;
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue