diff --git a/webrender/src/device/gfx.rs b/webrender/src/device/gfx.rs index bdac587485..a29f3fc17d 100644 --- a/webrender/src/device/gfx.rs +++ b/webrender/src/device/gfx.rs @@ -580,7 +580,7 @@ impl Image { layer_index: i32, image_data: &[u8], offset_alignment: usize, - ) -> hal::command::Submit + ) -> hal::command::Submit { //let (image_width, image_height, _, _) = self.kind.dimensions(); let pos = rect.origin; @@ -1275,7 +1275,7 @@ impl Program { depth_test: DepthTest, scissor_rect: Option, next_id: usize, - ) -> hal::command::Submit { + ) -> hal::command::Submit { let mut cmd_buffer = cmd_pool.acquire_command_buffer(false); cmd_buffer.set_viewports(0, &[viewport.clone()]); @@ -1675,7 +1675,7 @@ pub struct Device { pub viewport: hal::pso::Viewport, pub sampler_linear: B::Sampler, pub sampler_nearest: B::Sampler, - pub upload_queue: Vec>, + pub upload_queue: Vec>, pub current_frame_id: usize, current_blend_state: BlendState, blend_color: ColorF, @@ -2927,12 +2927,11 @@ impl Device { self.device.reset_fence(&fence); { let submission = Submission::new() - .submit(&self.upload_queue); + .submit(self.upload_queue.drain(..)); self.queue_group.queues[0].submit(submission, Some(&fence)); } self.device.wait_for_fence(&fence, !0); self.device.destroy_fence(fence); - self.upload_queue.clear(); self.reset_command_pools(); } if let Some(depth_rb) = texture.depth_rb.take() { @@ -3578,7 +3577,7 @@ impl Device { let submission = Submission::new() .wait_on(&[(&self.image_available_semaphore, PipelineStage::BOTTOM_OF_PIPE)]) .signal(Some(&self.render_finished_semaphore)) - .submit(&self.upload_queue); + .submit(self.upload_queue.drain(..)); self.queue_group.queues[0].submit(submission, Some(&mut self.frame_fence[self.next_id].inner)); self.frame_fence[self.next_id].is_submitted = true; @@ -3589,7 +3588,6 @@ impl Device { self.current_frame_id as _, Some(&self.render_finished_semaphore)).unwrap(); } - self.upload_queue.clear(); self.next_id = (self.next_id + 1) % MAX_FRAME_COUNT; self.reset_state(); self.reset_image_buffer_offsets();