Merge pull request #2965 from zwarich/render-state-less

Move RenderState manipulation out of a loop so that we thrash it less
This commit is contained in:
Patrick Walton 2014-07-30 18:37:26 -07:00
commit 32b442b026

View file

@ -246,6 +246,8 @@ impl<C:RenderListener + Send> RenderTask<C> {
continue; continue;
} }
self.compositor.set_render_state(RenderingRenderState);
let mut replies = Vec::new(); let mut replies = Vec::new();
for ReRenderRequest { buffer_requests, scale, layer_id, epoch } for ReRenderRequest { buffer_requests, scale, layer_id, epoch }
in requests.move_iter() { 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"); debug!("render_task: returning surfaces");
self.compositor.paint(self.id, self.epoch, replies); self.compositor.paint(self.id, self.epoch, replies);
} }
@ -306,8 +310,6 @@ impl<C:RenderListener + Send> RenderTask<C> {
None => return, None => return,
}; };
self.compositor.set_render_state(RenderingRenderState);
// Divide up the layer into tiles. // Divide up the layer into tiles.
for tile in tiles.iter() { for tile in tiles.iter() {
// Optimize the display list for this tile. // 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)); replies.push((render_layer.id, layer_buffer_set));
self.compositor.set_render_state(IdleRenderState);
}) })
} }
} }