From b6c6f04d5ecfc9ba9931f53f0c0e227a49956323 Mon Sep 17 00:00:00 2001 From: Gilles Schintgen Date: Sun, 5 May 2024 19:37:20 +0200 Subject: [PATCH] Linux/x11grab: add frame processing latency This commit populates the img->frame_timestamp field, so that Moonlight is now capable of showing the "Host processing latency" in its statistics overlay. It's a complement to PR #2273 which did miss the codepath for shm_attr_t::snapshot(). --- src/platform/linux/x11grab.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/platform/linux/x11grab.cpp b/src/platform/linux/x11grab.cpp index c3b23a4c97e..3f6cd0c51b4 100644 --- a/src/platform/linux/x11grab.cpp +++ b/src/platform/linux/x11grab.cpp @@ -679,6 +679,7 @@ namespace platf { } else { auto img_cookie = xcb::shm_get_image_unchecked(xcb.get(), display->root, offset_x, offset_y, width, height, ~0, XCB_IMAGE_FORMAT_Z_PIXMAP, seg, 0); + auto frame_timestamp = std::chrono::steady_clock::now(); xcb_img_t img_reply { xcb::shm_get_image_reply(xcb.get(), img_cookie, nullptr) }; if (!img_reply) { @@ -691,6 +692,7 @@ namespace platf { } std::copy_n((std::uint8_t *) data.data, frame_size(), img_out->data); + img_out->frame_timestamp = frame_timestamp; if (cursor) { blend_cursor(shm_xdisplay.get(), *img_out, offset_x, offset_y);