From 74e9807e7d410990a58859b6a05178da59ea2f47 Mon Sep 17 00:00:00 2001 From: Cameron Zwarich Date: Wed, 30 Jul 2014 15:35:28 -0700 Subject: [PATCH] Move RenderState manipulation out of a loop so that we thrash it less It doesn't really make sense to say that we're idle when we're potentially still rendering. --- src/components/gfx/render_task.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/gfx/render_task.rs b/src/components/gfx/render_task.rs index e81f36162c0..d286bafe5ec 100644 --- a/src/components/gfx/render_task.rs +++ b/src/components/gfx/render_task.rs @@ -246,6 +246,8 @@ impl RenderTask { continue; } + self.compositor.set_render_state(RenderingRenderState); + let mut replies = Vec::new(); for ReRenderRequest { buffer_requests, scale, layer_id, epoch } in requests.move_iter() { @@ -256,6 +258,8 @@ impl RenderTask { } } + self.compositor.set_render_state(IdleRenderState); + debug!("render_task: returning surfaces"); self.compositor.paint(self.id, self.epoch, replies); } @@ -306,8 +310,6 @@ impl RenderTask { None => return, }; - self.compositor.set_render_state(RenderingRenderState); - // Divide up the layer into tiles. for tile in tiles.iter() { // Optimize the display list for this tile. @@ -444,7 +446,6 @@ impl RenderTask { }; replies.push((render_layer.id, layer_buffer_set)); - self.compositor.set_render_state(IdleRenderState); }) } }