diff options
author | 2023-11-14 14:47:29 +0100 | |
---|---|---|
committer | 2023-11-14 14:47:29 +0100 | |
commit | fee3bf0df4e3099ea74def738be8743b2b72d78a (patch) | |
tree | ad1f351c44913d8a91519e5a1fea4093e17932c7 /wgpu/src/backend.rs | |
parent | 34b5cb75ef9f97076dd9e306d8afb68058176883 (diff) | |
download | iced-fee3bf0df4e3099ea74def738be8743b2b72d78a.tar.gz iced-fee3bf0df4e3099ea74def738be8743b2b72d78a.tar.bz2 iced-fee3bf0df4e3099ea74def738be8743b2b72d78a.zip |
Kill current render pass only when custom pipelines are present in layer
Diffstat (limited to '')
-rw-r--r-- | wgpu/src/backend.rs | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/wgpu/src/backend.rs b/wgpu/src/backend.rs index f89bcee1..91ae777b 100644 --- a/wgpu/src/backend.rs +++ b/wgpu/src/backend.rs @@ -323,10 +323,9 @@ impl Backend { text_layer += 1; } - // kill render pass to let custom shaders get mut access to encoder - let _ = ManuallyDrop::into_inner(render_pass); - if !layer.pipelines.is_empty() { + let _ = ManuallyDrop::into_inner(render_pass); + for pipeline in &layer.pipelines { let bounds = (pipeline.bounds * scale_factor).snap(); @@ -342,27 +341,26 @@ impl Backend { encoder, ); } - } - // recreate and continue processing layers - render_pass = ManuallyDrop::new(encoder.begin_render_pass( - &wgpu::RenderPassDescriptor { - label: Some("iced_wgpu::quad render pass"), - color_attachments: &[Some( - wgpu::RenderPassColorAttachment { - view: target, - resolve_target: None, - ops: wgpu::Operations { - load: wgpu::LoadOp::Load, - store: wgpu::StoreOp::Store, + render_pass = ManuallyDrop::new(encoder.begin_render_pass( + &wgpu::RenderPassDescriptor { + label: Some("iced_wgpu::quad render pass"), + color_attachments: &[Some( + wgpu::RenderPassColorAttachment { + view: target, + resolve_target: None, + ops: wgpu::Operations { + load: wgpu::LoadOp::Load, + store: wgpu::StoreOp::Store, + }, }, - }, - )], - depth_stencil_attachment: None, - timestamp_writes: None, - occlusion_query_set: None, - }, - )); + )], + depth_stencil_attachment: None, + timestamp_writes: None, + occlusion_query_set: None, + }, + )); + } } let _ = ManuallyDrop::into_inner(render_pass); |