From aed9a03e3cc30c68488f6e177e2ea0513e7ffc99 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Wed, 1 May 2024 16:19:08 +0200 Subject: Update `wgpu` to `0.20.1` --- Cargo.toml | 4 ++-- examples/custom_shader/src/scene/pipeline.rs | 8 ++++++++ examples/integration/src/scene.rs | 2 ++ wgpu/src/color.rs | 4 ++++ wgpu/src/image/mod.rs | 4 ++++ wgpu/src/quad/gradient.rs | 4 ++++ wgpu/src/quad/solid.rs | 4 ++++ wgpu/src/triangle.rs | 8 ++++++++ wgpu/src/triangle/msaa.rs | 4 ++++ 9 files changed, 40 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 6de4f4bf..000ca6ba 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -148,7 +148,7 @@ cosmic-text = "0.12" dark-light = "1.0" futures = "0.3" glam = "0.25" -glyphon = { git = "https://github.com/hecrj/glyphon.git", rev = "feef9f5630c2adb3528937e55f7bfad2da561a65" } +glyphon = { git = "https://github.com/hecrj/glyphon.git", rev = "ce412b3954118d2a4ae20de2d6959247d6f7ed76" } guillotiere = "0.6" half = "2.2" image = { version = "0.24", default-features = false } @@ -181,7 +181,7 @@ wasm-bindgen-futures = "0.4" wasm-timer = "0.2" web-sys = "0.3.69" web-time = "1.1" -wgpu = "0.19" +wgpu = "0.20.1" winapi = "0.3" window_clipboard = "0.4.1" winit = { git = "https://github.com/iced-rs/winit.git", rev = "254d6b3420ce4e674f516f7a2bd440665e05484d" } diff --git a/examples/custom_shader/src/scene/pipeline.rs b/examples/custom_shader/src/scene/pipeline.rs index 50b70a98..20ca6a67 100644 --- a/examples/custom_shader/src/scene/pipeline.rs +++ b/examples/custom_shader/src/scene/pipeline.rs @@ -243,6 +243,8 @@ impl Pipeline { module: &shader, entry_point: "vs_main", buffers: &[Vertex::desc(), cube::Raw::desc()], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }, primitive: wgpu::PrimitiveState::default(), depth_stencil: Some(wgpu::DepthStencilState { @@ -276,6 +278,8 @@ impl Pipeline { }), write_mask: wgpu::ColorWrites::ALL, })], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }), multiview: None, }); @@ -490,6 +494,8 @@ impl DepthPipeline { module: &shader, entry_point: "vs_main", buffers: &[], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }, primitive: wgpu::PrimitiveState::default(), depth_stencil: Some(wgpu::DepthStencilState { @@ -508,6 +514,8 @@ impl DepthPipeline { blend: Some(wgpu::BlendState::REPLACE), write_mask: wgpu::ColorWrites::ALL, })], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }), multiview: None, }); diff --git a/examples/integration/src/scene.rs b/examples/integration/src/scene.rs index e29558bf..f3a7a194 100644 --- a/examples/integration/src/scene.rs +++ b/examples/integration/src/scene.rs @@ -74,6 +74,7 @@ fn build_pipeline( module: &vs_module, entry_point: "main", buffers: &[], + compilation_options: wgpu::PipelineCompilationOptions::default(), }, fragment: Some(wgpu::FragmentState { module: &fs_module, @@ -86,6 +87,7 @@ fn build_pipeline( }), write_mask: wgpu::ColorWrites::ALL, })], + compilation_options: wgpu::PipelineCompilationOptions::default(), }), primitive: wgpu::PrimitiveState { topology: wgpu::PrimitiveTopology::TriangleList, diff --git a/wgpu/src/color.rs b/wgpu/src/color.rs index 9d593d9c..f5c4af30 100644 --- a/wgpu/src/color.rs +++ b/wgpu/src/color.rs @@ -110,6 +110,8 @@ pub fn convert( module: &shader, entry_point: "vs_main", buffers: &[], + compilation_options: wgpu::PipelineCompilationOptions::default( + ), }, fragment: Some(wgpu::FragmentState { module: &shader, @@ -130,6 +132,8 @@ pub fn convert( }), write_mask: wgpu::ColorWrites::ALL, })], + compilation_options: wgpu::PipelineCompilationOptions::default( + ), }), primitive: wgpu::PrimitiveState { topology: wgpu::PrimitiveTopology::TriangleList, diff --git a/wgpu/src/image/mod.rs b/wgpu/src/image/mod.rs index 1b16022a..d72303ea 100644 --- a/wgpu/src/image/mod.rs +++ b/wgpu/src/image/mod.rs @@ -153,6 +153,8 @@ impl Pipeline { 8 => Uint32, ), }], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }, fragment: Some(wgpu::FragmentState { module: &shader, @@ -173,6 +175,8 @@ impl Pipeline { }), write_mask: wgpu::ColorWrites::ALL, })], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }), primitive: wgpu::PrimitiveState { topology: wgpu::PrimitiveTopology::TriangleList, diff --git a/wgpu/src/quad/gradient.rs b/wgpu/src/quad/gradient.rs index 13dc10f8..b915a6b7 100644 --- a/wgpu/src/quad/gradient.rs +++ b/wgpu/src/quad/gradient.rs @@ -152,11 +152,15 @@ impl Pipeline { 9 => Float32 ), }], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }, fragment: Some(wgpu::FragmentState { module: &shader, entry_point: "gradient_fs_main", targets: &quad::color_target_state(format), + compilation_options: + wgpu::PipelineCompilationOptions::default(), }), primitive: wgpu::PrimitiveState { topology: wgpu::PrimitiveTopology::TriangleList, diff --git a/wgpu/src/quad/solid.rs b/wgpu/src/quad/solid.rs index 45039a2d..060ef881 100644 --- a/wgpu/src/quad/solid.rs +++ b/wgpu/src/quad/solid.rs @@ -114,11 +114,15 @@ impl Pipeline { 8 => Float32, ), }], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }, fragment: Some(wgpu::FragmentState { module: &shader, entry_point: "solid_fs_main", targets: &quad::color_target_state(format), + compilation_options: + wgpu::PipelineCompilationOptions::default(), }), primitive: wgpu::PrimitiveState { topology: wgpu::PrimitiveTopology::TriangleList, diff --git a/wgpu/src/triangle.rs b/wgpu/src/triangle.rs index b0551f55..0a2a2174 100644 --- a/wgpu/src/triangle.rs +++ b/wgpu/src/triangle.rs @@ -760,11 +760,15 @@ mod solid { 1 => Float32x4, ), }], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }, fragment: Some(wgpu::FragmentState { module: &shader, entry_point: "solid_fs_main", targets: &[Some(triangle::fragment_target(format))], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }), primitive: triangle::primitive_state(), depth_stencil: None, @@ -937,11 +941,15 @@ mod gradient { 6 => Float32x4 ), }], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }, fragment: Some(wgpu::FragmentState { module: &shader, entry_point: "gradient_fs_main", targets: &[Some(triangle::fragment_target(format))], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }), primitive: triangle::primitive_state(), depth_stencil: None, diff --git a/wgpu/src/triangle/msaa.rs b/wgpu/src/triangle/msaa.rs index 71c16925..1f230b71 100644 --- a/wgpu/src/triangle/msaa.rs +++ b/wgpu/src/triangle/msaa.rs @@ -112,6 +112,8 @@ impl Blit { module: &shader, entry_point: "vs_main", buffers: &[], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }, fragment: Some(wgpu::FragmentState { module: &shader, @@ -123,6 +125,8 @@ impl Blit { ), write_mask: wgpu::ColorWrites::ALL, })], + compilation_options: + wgpu::PipelineCompilationOptions::default(), }), primitive: wgpu::PrimitiveState { topology: wgpu::PrimitiveTopology::TriangleList, -- cgit From a5e69cfb5f7856e4d139ef58e5d022b9d408b542 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 19 Jul 2024 19:10:23 +0200 Subject: Update `wgpu` to `22.0` --- Cargo.toml | 4 ++-- benches/wgpu.rs | 1 + examples/custom_shader/src/scene/pipeline.rs | 2 ++ examples/integration/src/main.rs | 2 ++ examples/integration/src/scene.rs | 1 + wgpu/src/color.rs | 1 + wgpu/src/image/mod.rs | 1 + wgpu/src/quad/gradient.rs | 1 + wgpu/src/quad/solid.rs | 1 + wgpu/src/triangle.rs | 2 ++ wgpu/src/triangle/msaa.rs | 1 + wgpu/src/window/compositor.rs | 1 + 12 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 000ca6ba..629b1c9d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -148,7 +148,7 @@ cosmic-text = "0.12" dark-light = "1.0" futures = "0.3" glam = "0.25" -glyphon = { git = "https://github.com/hecrj/glyphon.git", rev = "ce412b3954118d2a4ae20de2d6959247d6f7ed76" } +glyphon = { git = "https://github.com/hecrj/glyphon.git", rev = "0d7ba1bba4dd71eb88d2cface5ce649db2413cb7" } guillotiere = "0.6" half = "2.2" image = { version = "0.24", default-features = false } @@ -181,7 +181,7 @@ wasm-bindgen-futures = "0.4" wasm-timer = "0.2" web-sys = "0.3.69" web-time = "1.1" -wgpu = "0.20.1" +wgpu = "22.0" winapi = "0.3" window_clipboard = "0.4.1" winit = { git = "https://github.com/iced-rs/winit.git", rev = "254d6b3420ce4e674f516f7a2bd440665e05484d" } diff --git a/benches/wgpu.rs b/benches/wgpu.rs index 0e407253..0605294f 100644 --- a/benches/wgpu.rs +++ b/benches/wgpu.rs @@ -66,6 +66,7 @@ fn benchmark<'a>( label: None, required_features: wgpu::Features::empty(), required_limits: wgpu::Limits::default(), + memory_hints: wgpu::MemoryHints::MemoryUsage, }, None, )) diff --git a/examples/custom_shader/src/scene/pipeline.rs b/examples/custom_shader/src/scene/pipeline.rs index 20ca6a67..84a3e5e2 100644 --- a/examples/custom_shader/src/scene/pipeline.rs +++ b/examples/custom_shader/src/scene/pipeline.rs @@ -282,6 +282,7 @@ impl Pipeline { wgpu::PipelineCompilationOptions::default(), }), multiview: None, + cache: None, }); let depth_pipeline = DepthPipeline::new( @@ -518,6 +519,7 @@ impl DepthPipeline { wgpu::PipelineCompilationOptions::default(), }), multiview: None, + cache: None, }); Self { diff --git a/examples/integration/src/main.rs b/examples/integration/src/main.rs index 5b64cbd1..87a5b22b 100644 --- a/examples/integration/src/main.rs +++ b/examples/integration/src/main.rs @@ -102,6 +102,8 @@ pub fn main() -> Result<(), winit::error::EventLoopError> { required_features: adapter_features & wgpu::Features::default(), required_limits: wgpu::Limits::default(), + memory_hints: + wgpu::MemoryHints::MemoryUsage, }, None, ) diff --git a/examples/integration/src/scene.rs b/examples/integration/src/scene.rs index f3a7a194..15f97e08 100644 --- a/examples/integration/src/scene.rs +++ b/examples/integration/src/scene.rs @@ -101,5 +101,6 @@ fn build_pipeline( alpha_to_coverage_enabled: false, }, multiview: None, + cache: None, }) } diff --git a/wgpu/src/color.rs b/wgpu/src/color.rs index f5c4af30..effac8da 100644 --- a/wgpu/src/color.rs +++ b/wgpu/src/color.rs @@ -143,6 +143,7 @@ pub fn convert( depth_stencil: None, multisample: wgpu::MultisampleState::default(), multiview: None, + cache: None, }); let texture = device.create_texture(&wgpu::TextureDescriptor { diff --git a/wgpu/src/image/mod.rs b/wgpu/src/image/mod.rs index d72303ea..cf83c3f2 100644 --- a/wgpu/src/image/mod.rs +++ b/wgpu/src/image/mod.rs @@ -190,6 +190,7 @@ impl Pipeline { alpha_to_coverage_enabled: false, }, multiview: None, + cache: None, }); Pipeline { diff --git a/wgpu/src/quad/gradient.rs b/wgpu/src/quad/gradient.rs index b915a6b7..207b0d73 100644 --- a/wgpu/src/quad/gradient.rs +++ b/wgpu/src/quad/gradient.rs @@ -174,6 +174,7 @@ impl Pipeline { alpha_to_coverage_enabled: false, }, multiview: None, + cache: None, }, ); diff --git a/wgpu/src/quad/solid.rs b/wgpu/src/quad/solid.rs index 060ef881..86f118d6 100644 --- a/wgpu/src/quad/solid.rs +++ b/wgpu/src/quad/solid.rs @@ -136,6 +136,7 @@ impl Pipeline { alpha_to_coverage_enabled: false, }, multiview: None, + cache: None, }); Self { pipeline } diff --git a/wgpu/src/triangle.rs b/wgpu/src/triangle.rs index 0a2a2174..3d0869e7 100644 --- a/wgpu/src/triangle.rs +++ b/wgpu/src/triangle.rs @@ -774,6 +774,7 @@ mod solid { depth_stencil: None, multisample: triangle::multisample_state(antialiasing), multiview: None, + cache: None, }, ); @@ -955,6 +956,7 @@ mod gradient { depth_stencil: None, multisample: triangle::multisample_state(antialiasing), multiview: None, + cache: None, }, ); diff --git a/wgpu/src/triangle/msaa.rs b/wgpu/src/triangle/msaa.rs index 1f230b71..ec06e747 100644 --- a/wgpu/src/triangle/msaa.rs +++ b/wgpu/src/triangle/msaa.rs @@ -140,6 +140,7 @@ impl Blit { alpha_to_coverage_enabled: false, }, multiview: None, + cache: None, }); Blit { diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs index 2e938c77..0cfd49b7 100644 --- a/wgpu/src/window/compositor.rs +++ b/wgpu/src/window/compositor.rs @@ -162,6 +162,7 @@ impl Compositor { ), required_features: wgpu::Features::empty(), required_limits: required_limits.clone(), + memory_hints: wgpu::MemoryHints::MemoryUsage, }, None, ) -- cgit From 84b658dbef0b29c57f67e041a1496c699ce78615 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 20 Sep 2024 00:39:21 +0200 Subject: Introduce `strict-assertions` feature flag For now, this feature flag only enables validation in `iced_wgpu`; which has become quite expensive since its `0.20` release. --- Cargo.toml | 2 ++ renderer/Cargo.toml | 1 + wgpu/Cargo.toml | 1 + wgpu/src/window/compositor.rs | 5 +++++ 4 files changed, 9 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 629b1c9d..bee83d2e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -65,6 +65,8 @@ advanced = ["iced_core/advanced", "iced_widget/advanced"] fira-sans = ["iced_renderer/fira-sans"] # Enables auto-detecting light/dark mode for the built-in theme auto-detect-theme = ["iced_core/auto-detect-theme"] +# Enables strict assertions for debugging purposes at the expense of performance +strict-assertions = ["iced_renderer/strict-assertions"] [dependencies] iced_core.workspace = true diff --git a/renderer/Cargo.toml b/renderer/Cargo.toml index 458681dd..ac223f16 100644 --- a/renderer/Cargo.toml +++ b/renderer/Cargo.toml @@ -22,6 +22,7 @@ geometry = ["iced_graphics/geometry", "iced_tiny_skia?/geometry", "iced_wgpu?/ge web-colors = ["iced_wgpu?/web-colors"] webgl = ["iced_wgpu?/webgl"] fira-sans = ["iced_graphics/fira-sans"] +strict-assertions = ["iced_wgpu?/strict-assertions"] [dependencies] iced_graphics.workspace = true diff --git a/wgpu/Cargo.toml b/wgpu/Cargo.toml index b13ecb36..a8ebf3aa 100644 --- a/wgpu/Cargo.toml +++ b/wgpu/Cargo.toml @@ -23,6 +23,7 @@ image = ["iced_graphics/image"] svg = ["iced_graphics/svg", "resvg/text"] web-colors = ["iced_graphics/web-colors"] webgl = ["wgpu/webgl"] +strict-assertions = [] [dependencies] iced_graphics.workspace = true diff --git a/wgpu/src/window/compositor.rs b/wgpu/src/window/compositor.rs index 0cfd49b7..56f33b50 100644 --- a/wgpu/src/window/compositor.rs +++ b/wgpu/src/window/compositor.rs @@ -56,6 +56,11 @@ impl Compositor { ) -> Result { let instance = wgpu::Instance::new(wgpu::InstanceDescriptor { backends: settings.backends, + flags: if cfg!(feature = "strict-assertions") { + wgpu::InstanceFlags::debugging() + } else { + wgpu::InstanceFlags::empty() + }, ..Default::default() }); -- cgit