mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Plumb selected tracing spans into hitrace (#33324)
* Plumb selected tracing spans into hitrace Signed-off-by: Delan Azabani <dazabani@igalia.com> * Tag the spans in #33189 with the `servo_profiling` field Signed-off-by: Delan Azabani <dazabani@igalia.com> * Add comment about fields vs extensions Signed-off-by: Delan Azabani <dazabani@igalia.com> --------- Signed-off-by: Delan Azabani <dazabani@igalia.com>
This commit is contained in:
parent
d4be678a69
commit
6d6cd0f2dc
7 changed files with 162 additions and 11 deletions
|
@ -682,7 +682,7 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
|
|||
|
||||
/// Accept messages from content processes that need to be relayed to the WebRender
|
||||
/// instance in the parent process.
|
||||
#[tracing::instrument(skip(self))]
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn handle_webrender_message(&mut self, msg: ForwardedToCompositorMsg) {
|
||||
match msg {
|
||||
ForwardedToCompositorMsg::Layout(ScriptToCompositorMsg::SendInitialTransaction(
|
||||
|
@ -770,7 +770,11 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
|
|||
display_list_descriptor,
|
||||
);
|
||||
|
||||
let span = span!(Level::TRACE, "ScriptToCompositorMsg::BuiltDisplayList");
|
||||
let span = span!(
|
||||
Level::TRACE,
|
||||
"ScriptToCompositorMsg::BuiltDisplayList",
|
||||
servo_profiling = true
|
||||
);
|
||||
let _enter = span.enter();
|
||||
let pipeline_id = display_list_info.pipeline_id;
|
||||
let details = self.pipeline_details(pipeline_id.into());
|
||||
|
@ -2058,7 +2062,7 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
|
|||
/// Returns Ok if composition was performed or Err if it was not possible to composite for some
|
||||
/// reason. When the target is [CompositeTarget::SharedMemory], the image is read back from the
|
||||
/// GPU and returned as Ok(Some(png::Image)), otherwise we return Ok(None).
|
||||
#[tracing::instrument(skip(self))]
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn composite_specific_target(
|
||||
&mut self,
|
||||
target: CompositeTarget,
|
||||
|
@ -2271,7 +2275,11 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
|
|||
},
|
||||
};
|
||||
|
||||
let span = span!(Level::TRACE, "ConstellationMsg::ReadyToPresent");
|
||||
let span = span!(
|
||||
Level::TRACE,
|
||||
"ConstellationMsg::ReadyToPresent",
|
||||
servo_profiling = true
|
||||
);
|
||||
let _enter = span.enter();
|
||||
// Notify embedder that servo is ready to present.
|
||||
// Embedder should call `present` to tell compositor to continue rendering.
|
||||
|
@ -2297,9 +2305,13 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
|
|||
.map(|info| info.framebuffer_id())
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self))]
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
pub fn present(&mut self) {
|
||||
let span = span!(Level::TRACE, "Compositor Present Surface");
|
||||
let span = span!(
|
||||
Level::TRACE,
|
||||
"Compositor Present Surface",
|
||||
servo_profiling = true
|
||||
);
|
||||
let _enter = span.enter();
|
||||
if let Err(err) = self.rendering_context.present() {
|
||||
warn!("Failed to present surface: {:?}", err);
|
||||
|
@ -2362,7 +2374,7 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
|
|||
);
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self))]
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
pub fn receive_messages(&mut self) -> bool {
|
||||
// Check for new messages coming from the other threads in the system.
|
||||
let mut compositor_messages = vec![];
|
||||
|
@ -2389,7 +2401,7 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
|
|||
true
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self))]
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
pub fn perform_updates(&mut self) -> bool {
|
||||
if self.shutdown_state == ShutdownState::FinishedShuttingDown {
|
||||
return false;
|
||||
|
|
|
@ -1333,7 +1333,7 @@ where
|
|||
}
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(self))]
|
||||
#[tracing::instrument(skip(self), fields(servo_profiling = true))]
|
||||
fn handle_request_from_compositor(&mut self, message: FromCompositorMsg) {
|
||||
trace_msg_from_compositor!(message, "{message:?}");
|
||||
match message {
|
||||
|
@ -1546,7 +1546,11 @@ where
|
|||
self.set_webview_throttled(webview_id, throttled);
|
||||
},
|
||||
FromCompositorMsg::ReadyToPresent(webview_ids) => {
|
||||
let span = span!(Level::TRACE, "FromCompositorMsg::ReadyToPresent");
|
||||
let span = span!(
|
||||
Level::TRACE,
|
||||
"FromCompositorMsg::ReadyToPresent",
|
||||
servo_profiling = true
|
||||
);
|
||||
let _enter = span.enter();
|
||||
self.embedder_proxy
|
||||
.send((None, EmbedderMsg::ReadyToPresent(webview_ids)));
|
||||
|
|
|
@ -225,7 +225,7 @@ impl<Window> Servo<Window>
|
|||
where
|
||||
Window: WindowMethods + 'static + ?Sized,
|
||||
{
|
||||
#[tracing::instrument(skip(embedder, window))]
|
||||
#[tracing::instrument(skip(embedder, window), fields(servo_profiling = true))]
|
||||
pub fn new(
|
||||
mut embedder: Box<dyn EmbedderMethods>,
|
||||
window: Rc<Window>,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue