Add some timing info, update rust-azure to fix crash

This commit is contained in:
Patrick Walton 2012-11-09 19:10:51 -08:00
parent 4303419865
commit b1c59aba61
2 changed files with 74 additions and 71 deletions

@ -1 +1 @@
Subproject commit 385867116d04f5d4aa34976bf9794bcb1913f162
Subproject commit 55457bba7f6a07728518a7a8f33b140bc72a51d7

View file

@ -1,6 +1,7 @@
use gfx::display_list::DisplayList;
use gfx::compositor::{LayerBuffer, LayerBufferSet};
use opts::Opts;
use util::time;
use azure::AzFloat;
use azure::azure_hl::{B8G8R8A8, DrawTarget};
@ -38,6 +39,7 @@ pub fn render_layers(layer_ref: *RenderLayer,
let new_buffer_ports = dvec::DVec();
// Divide up the layer into tiles.
do time::time("rendering: preparing buffers") {
let layer: &RenderLayer = unsafe { cast::transmute(layer_ref) };
let mut y = 0;
while y < layer.size.height {
@ -112,7 +114,6 @@ pub fn render_layers(layer_ref: *RenderLayer,
let (new_buffer_chan, new_buffer_port) = pipes::stream();
// Send the buffer to the child.
// FIXME: Don't copy the RenderLayer.
f(layer_ref, move buffer, move new_buffer_chan);
// Enqueue the port.
@ -122,12 +123,14 @@ pub fn render_layers(layer_ref: *RenderLayer,
}
y += TILE_SIZE;
}
}
debug!("servo::gfx::render_layers: waiting on ports...");
let new_buffers = dvec::DVec();
do time::time("rendering: waiting on subtasks") {
for new_buffer_ports.each |new_buffer_port| {
new_buffers.push(new_buffer_port.recv());
}
}
return LayerBufferSet { buffers: move dvec::unwrap(move new_buffers) };
}