From 7f716649872eae7b7b17239de3389b3a50cbb0f0 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Sat, 24 Sep 2022 10:01:19 +0200 Subject: [PATCH] backend/drm: add basic tracing instrumentation --- backend/drm/drm.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/backend/drm/drm.c b/backend/drm/drm.c index 15cb181cf..6b2cd517c 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -27,6 +27,7 @@ #include "render/color.h" #include "types/wlr_output.h" #include "util/env.h" +#include "util/trace.h" #include "config.h" #if HAVE_LIBLIFTOFF @@ -615,6 +616,8 @@ static bool drm_commit(struct wlr_drm_backend *drm, // Disallow atomic-only flags assert((flags & ~DRM_MODE_PAGE_FLIP_FLAGS) == 0); + wlr_trace("drm_commit"); + struct wlr_drm_page_flip *page_flip = NULL; if (flags & DRM_MODE_PAGE_FLIP_EVENT) { page_flip = drm_page_flip_create(drm, state); @@ -998,7 +1001,11 @@ static bool drm_connector_test(struct wlr_output *output, static bool drm_connector_commit(struct wlr_output *output, const struct wlr_output_state *state) { struct wlr_drm_connector *conn = get_drm_connector_from_output(output); - return drm_connector_commit_state(conn, state, false); + struct wlr_trace_ctx trace_ctx; + wlr_trace_begin_ctx(&trace_ctx, "drm_connector_commit"); + bool ok = drm_connector_commit_state(conn, state, false); + wlr_trace_end_ctx(&trace_ctx, "drm_connector_commit"); + return ok; } size_t drm_crtc_get_gamma_lut_size(struct wlr_drm_backend *drm, @@ -1985,6 +1992,8 @@ static void handle_page_flip(int fd, unsigned seq, unsigned tv_sec, unsigned tv_usec, unsigned crtc_id, void *data) { struct wlr_drm_page_flip *page_flip = data; + wlr_trace("drm_page_flip_uevent"); + struct wlr_drm_connector *conn = drm_page_flip_pop(page_flip, crtc_id); if (conn != NULL) { conn->pending_page_flip = NULL;