From 8a3dac008a3cce68a3bb2436613f056042618ab1 Mon Sep 17 00:00:00 2001 From: mars Date: Mon, 18 Apr 2022 20:12:10 -0600 Subject: [PATCH] Add and record Upload phase --- src/lib.rs | 13 +++++++++++++ src/phase.rs | 2 ++ 2 files changed, 15 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 0bcfe45..25071fd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -86,6 +86,19 @@ impl Renderer { label: Some("Render Encoder"), }); + if let Some(upload) = phase_passes.get_vec(&Phase::Upload) { + upload.iter().for_each(|pass_index| { + let frame_data = IndexedPhaseData { + phase: Phase::Upload, + frame_data: frame_index, + viewport: &viewport, + }; + + let pass = &self.render_passes[*pass_index]; + pass.record_commands(frame_data, &mut encoder); + }); + } + { let mut opaque_cmds = Vec::new(); if let Some(opaque) = phase_passes.get_vec(&Phase::Opaque) { diff --git a/src/phase.rs b/src/phase.rs index 15e028b..a1d8ba8 100644 --- a/src/phase.rs +++ b/src/phase.rs @@ -5,6 +5,7 @@ /// These variants are temporary and for testing purposes. #[derive(Copy, Clone, Debug, Hash, Eq, Ord, PartialEq, PartialOrd, strum::EnumIter)] pub enum Phase { + Upload, Depth, Opaque, Transparent, @@ -14,6 +15,7 @@ impl Phase { pub fn get_kind(&self) -> PhaseKind { use Phase::*; match self { + Upload => PhaseKind::Command, Depth | Opaque | Transparent => PhaseKind::Render, } }