diff options
author | Cameron Zwarich <zwarich@mozilla.com> | 2014-07-30 15:35:28 -0700 |
---|---|---|
committer | Cameron Zwarich <zwarich@mozilla.com> | 2014-07-30 15:38:34 -0700 |
commit | 74e9807e7d410990a58859b6a05178da59ea2f47 (patch) | |
tree | cbf676200c07710fd93beafac3b0e3990fa89945 /src/components/gfx/render_task.rs | |
parent | ea621676f2b2bb1186b46aa0653e6a393269311b (diff) | |
download | servo-74e9807e7d410990a58859b6a05178da59ea2f47.tar.gz servo-74e9807e7d410990a58859b6a05178da59ea2f47.zip |
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.
Diffstat (limited to 'src/components/gfx/render_task.rs')
-rw-r--r-- | src/components/gfx/render_task.rs | 7 |
1 files 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<C:RenderListener + Send> RenderTask<C> { 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<C:RenderListener + Send> RenderTask<C> { } } + self.compositor.set_render_state(IdleRenderState); + debug!("render_task: returning surfaces"); self.compositor.paint(self.id, self.epoch, replies); } @@ -306,8 +310,6 @@ impl<C:RenderListener + Send> RenderTask<C> { 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<C:RenderListener + Send> RenderTask<C> { }; replies.push((render_layer.id, layer_buffer_set)); - self.compositor.set_render_state(IdleRenderState); }) } } |