summaryrefslogtreecommitdiffstats
path: root/wgpu/src/backend.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2023-11-14 14:47:29 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2023-11-14 14:47:29 +0100
commitfee3bf0df4e3099ea74def738be8743b2b72d78a (patch)
treead1f351c44913d8a91519e5a1fea4093e17932c7 /wgpu/src/backend.rs
parent34b5cb75ef9f97076dd9e306d8afb68058176883 (diff)
downloadiced-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.rs42
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);