wsi/common: Pass along requested timing feedback as well.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39551>
This commit is contained in:
Hans-Kristian Arntzen 2026-02-19 15:29:36 +01:00 committed by Marge Bot
parent 5cf41d4d47
commit 02337d2b65
2 changed files with 9 additions and 1 deletions

View file

@ -2410,7 +2410,13 @@ wsi_common_queue_present(const struct wsi_device *wsi,
/* All other fields in google_timing_info beyond the following must be zero. */
google_timing_info.targetTime = present_time->desiredPresentTime;
google_timing_info.presentStageQueries = VK_PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT;
/* We don't support PIXEL_VISIBLE_BIT on any backend, so flag the output stage that is relevant.
* Xwl would report in DEQUEUED stage currently, but the backend doesn't change its behavior
* based on what feedback we're requesting, and GOOGLE_display_timing cannot be exposed by
* default on any backend that's not KHR_display anyway. */
google_timing_info.presentStageQueries = VK_PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT |
VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT;
}
} else {
/* VK_EXT_present_timing mode, and present_timings_info->pTimingInfos is valid. */
@ -2452,6 +2458,7 @@ wsi_common_queue_present(const struct wsi_device *wsi,
.serial = swapchain->present_timing.serial,
.time = target_time,
.flags = info->flags,
.feedback = info->presentStageQueries,
});
if (info->presentStageQueries & swapchain->present_timing.supported_query_stages &

View file

@ -214,6 +214,7 @@ struct wsi_image_timing_request {
uint64_t serial;
uint64_t time;
VkPresentTimingInfoFlagsEXT flags;
VkPresentStageFlagsEXT feedback;
};
struct wsi_swapchain {