@@ -10,6 +10,7 @@ use context::WgpuContext;
1010use lazy_regex:: regex;
1111use num:: Integer ;
1212use pp:: { SourceMap , WGSLError } ;
13+ use wgpu:: { Maintain , SubmissionIndex } ;
1314use std:: collections:: HashMap ;
1415use std:: mem:: { size_of, take} ;
1516use std:: sync:: atomic:: { AtomicBool , Ordering } ;
@@ -156,7 +157,8 @@ impl WgpuToyRenderer {
156157 SurfaceError :: Timeout => log:: warn!( "Surface Timeout" ) ,
157158 } ,
158159 Ok ( f) => {
159- let staging_buffer = self . render_to ( f) ;
160+ let ( staging_buffer, _) = self . render_to ( & f) ;
161+ f. present ( ) ;
160162 wasm_bindgen_futures:: spawn_local ( Self :: postrender (
161163 staging_buffer,
162164 self . screen_width * self . screen_height ,
@@ -184,7 +186,8 @@ impl WgpuToyRenderer {
184186 SurfaceError :: Timeout => log:: warn!( "Surface Timeout" ) ,
185187 } ,
186188 Ok ( f) => {
187- let staging_buffer = self . render_to ( f) ;
189+ let ( staging_buffer, _) = self . render_to ( & f) ;
190+ f. present ( ) ;
188191 Self :: postrender (
189192 staging_buffer,
190193 self . screen_width * self . screen_height ,
@@ -195,7 +198,7 @@ impl WgpuToyRenderer {
195198 }
196199 }
197200
198- fn render_to ( & mut self , frame : wgpu:: SurfaceTexture ) -> Option < wgpu:: Buffer > {
201+ pub fn render_to ( & mut self , frame : & wgpu:: SurfaceTexture ) -> ( Option < wgpu:: Buffer > , SubmissionIndex ) {
199202 let mut encoder = self . wgpu . device . create_command_encoder ( & Default :: default ( ) ) ;
200203 self . bindings . stage ( & self . wgpu . queue ) ;
201204 if self . bindings . time . host . frame % STATS_PERIOD == 0 {
@@ -305,9 +308,9 @@ impl WgpuToyRenderer {
305308 & mut encoder,
306309 & frame. texture . create_view ( & Default :: default ( ) ) ,
307310 ) ;
308- self . wgpu . queue . submit ( Some ( encoder . finish ( ) ) ) ;
309- frame . present ( ) ;
310- staging_buffer
311+
312+ let i = self . wgpu . queue . submit ( Some ( encoder . finish ( ) ) ) ;
313+ ( staging_buffer, i )
311314 }
312315
313316 async fn postrender (
0 commit comments