mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-07 03:48:02 +02:00
Merge branch 'perfetto_fixups' into 'main'
Some perfetto flow fixups See merge request wayland/weston!2058
This commit is contained in:
commit
79719d681e
4 changed files with 14 additions and 7 deletions
|
|
@ -204,7 +204,7 @@ get_placeholder_color(struct weston_paint_node *pnode,
|
|||
static void
|
||||
paint_node_update_early(struct weston_paint_node *pnode)
|
||||
{
|
||||
WESTON_TRACE_FUNC_FLOW(&pnode->surface->flow_id);
|
||||
WESTON_TRACE_FUNC_FLOW(&pnode->flow_id);
|
||||
struct weston_matrix *mat = &pnode->buffer_to_output_matrix;
|
||||
struct weston_output *output = pnode->output;
|
||||
struct weston_surface *surface = pnode->surface;
|
||||
|
|
@ -326,7 +326,7 @@ paint_node_validate_ready(struct weston_paint_node *pnode)
|
|||
static void
|
||||
paint_node_update_late(struct weston_paint_node *pnode)
|
||||
{
|
||||
WESTON_TRACE_FUNC_FLOW(&pnode->surface->flow_id);
|
||||
WESTON_TRACE_FUNC_FLOW(&pnode->flow_id);
|
||||
struct weston_surface *surf = pnode->surface;
|
||||
struct weston_buffer *buffer = surf->buffer_ref.buffer;
|
||||
struct weston_view *view = pnode->view;
|
||||
|
|
@ -3295,7 +3295,7 @@ weston_output_damage(struct weston_output *output)
|
|||
static void
|
||||
paint_node_add_damage(struct weston_paint_node *node)
|
||||
{
|
||||
WESTON_TRACE_FUNC_FLOW(&node->surface->flow_id);
|
||||
WESTON_TRACE_FUNC_FLOW(&node->flow_id);
|
||||
struct weston_view *view = node->view;
|
||||
pixman_region32_t damage;
|
||||
|
||||
|
|
@ -3324,7 +3324,7 @@ paint_node_add_damage(struct weston_paint_node *node)
|
|||
static void
|
||||
paint_node_flush_surface_damage(struct weston_paint_node *pnode)
|
||||
{
|
||||
WESTON_TRACE_FUNC_FLOW(&pnode->surface->flow_id);
|
||||
WESTON_TRACE_FUNC_FLOW(&pnode->flow_id);
|
||||
struct weston_output *output = pnode->output;
|
||||
struct weston_surface *surface = pnode->surface;
|
||||
struct weston_buffer *buffer = surface->buffer_ref.buffer;
|
||||
|
|
@ -3351,6 +3351,9 @@ paint_node_flush_surface_damage(struct weston_paint_node *pnode)
|
|||
TLP_SURFACE(surface), TLP_OUTPUT(output), TLP_END);
|
||||
|
||||
out:
|
||||
/* We've flushed the surface's damage for *all* of its paint
|
||||
* nodes, so we can reset the surface flow_id here.
|
||||
*/
|
||||
surface->flow_id = 0;
|
||||
}
|
||||
|
||||
|
|
@ -3817,6 +3820,9 @@ weston_output_repaint(struct weston_output *output)
|
|||
z_order_link) {
|
||||
assert(pnode->view->output_mask & (1u << pnode->output->id));
|
||||
assert(pnode->output == output);
|
||||
|
||||
/* Reset paint node perfetto flows at start of repaint */
|
||||
pnode->flow_id = 0;
|
||||
}
|
||||
|
||||
/* Find the highest protection desired for an output */
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@
|
|||
struct weston_fifo {
|
||||
struct weston_surface *surface;
|
||||
struct wl_listener surface_destroy_listener;
|
||||
uint64_t flow_id;
|
||||
};
|
||||
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -678,6 +678,8 @@ enum try_view_on_plane_failure_reasons {
|
|||
* A generic data structure unique for surface-view-output combination.
|
||||
*/
|
||||
struct weston_paint_node {
|
||||
uint64_t flow_id; /* Perfetto flow id */
|
||||
|
||||
/* Immutable members: */
|
||||
|
||||
/* struct weston_surface::paint_node_list */
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ weston_timeline_perfetto(struct weston_log_scope *timeline_scope,
|
|||
break;
|
||||
case TLP_CORE_FLUSH_DAMAGE:
|
||||
WESTON_TRACE_TIMESTAMP_END("Damaged", surface->damage_track_id, CLOCK_MONOTONIC, now_ns);
|
||||
WESTON_TRACE_TIMESTAMP_BEGIN("Clean", surface->damage_track_id, surface->flow_id, CLOCK_MONOTONIC, now_ns);
|
||||
WESTON_TRACE_TIMESTAMP_BEGIN("Clean", surface->damage_track_id, 0, CLOCK_MONOTONIC, now_ns);
|
||||
break;
|
||||
case TLP_CORE_REPAINT_BEGIN:
|
||||
WESTON_TRACE_TIMESTAMP_END("Scheduled", output->paint_track_id, CLOCK_MONOTONIC, now_ns);
|
||||
|
|
@ -162,7 +162,7 @@ weston_timeline_perfetto(struct weston_log_scope *timeline_scope,
|
|||
case TLP_CORE_COMMIT_DAMAGE:
|
||||
WESTON_TRACE_TIMESTAMP_END("Clean", surface->damage_track_id, CLOCK_MONOTONIC, now_ns);
|
||||
WESTON_TRACE_TIMESTAMP_END("Damaged", surface->damage_track_id, CLOCK_MONOTONIC, now_ns);
|
||||
WESTON_TRACE_TIMESTAMP_BEGIN("Damaged", surface->damage_track_id, 0, CLOCK_MONOTONIC, now_ns);
|
||||
WESTON_TRACE_TIMESTAMP_BEGIN("Damaged", surface->damage_track_id, surface->flow_id, CLOCK_MONOTONIC, now_ns);
|
||||
break;
|
||||
case TLP_RENDERER_GPU_BEGIN:
|
||||
WESTON_TRACE_TIMESTAMP_BEGIN("Active", output->gpu_track_id, 0, CLOCK_MONOTONIC, gpu_ns);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue