mirror of
https://gitlab.freedesktop.org/monado/monado.git
synced 2025-01-21 06:01:43 +00:00
c/main: Trace markers
This commit is contained in:
parent
fac1ce4a5a
commit
8c724d67d4
|
@ -49,6 +49,7 @@
|
||||||
#include "util/u_misc.h"
|
#include "util/u_misc.h"
|
||||||
#include "util/u_time.h"
|
#include "util/u_time.h"
|
||||||
#include "util/u_debug.h"
|
#include "util/u_debug.h"
|
||||||
|
#include "util/u_trace_marker.h"
|
||||||
#include "util/u_distortion_mesh.h"
|
#include "util/u_distortion_mesh.h"
|
||||||
|
|
||||||
#include "main/comp_compositor.h"
|
#include "main/comp_compositor.h"
|
||||||
|
@ -117,6 +118,8 @@ compositor_wait_frame(struct xrt_compositor *xc,
|
||||||
uint64_t *out_predicted_display_time_ns,
|
uint64_t *out_predicted_display_time_ns,
|
||||||
uint64_t *out_predicted_display_period_ns)
|
uint64_t *out_predicted_display_period_ns)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
struct comp_compositor *c = comp_compositor(xc);
|
struct comp_compositor *c = comp_compositor(xc);
|
||||||
|
|
||||||
// A little bit easier to read.
|
// A little bit easier to read.
|
||||||
|
@ -340,6 +343,8 @@ compositor_layer_equirect2(struct xrt_compositor *xc,
|
||||||
static xrt_result_t
|
static xrt_result_t
|
||||||
compositor_layer_commit(struct xrt_compositor *xc, int64_t frame_id, xrt_graphics_sync_handle_t sync_handle)
|
compositor_layer_commit(struct xrt_compositor *xc, int64_t frame_id, xrt_graphics_sync_handle_t sync_handle)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
struct comp_compositor *c = comp_compositor(xc);
|
struct comp_compositor *c = comp_compositor(xc);
|
||||||
|
|
||||||
COMP_SPEW(c, "LAYER_COMMIT at %8.3fms", ts_ms());
|
COMP_SPEW(c, "LAYER_COMMIT at %8.3fms", ts_ms());
|
||||||
|
@ -444,6 +449,7 @@ compositor_layer_commit(struct xrt_compositor *xc, int64_t frame_id, xrt_graphic
|
||||||
|
|
||||||
// Now is a good point to garbage collect.
|
// Now is a good point to garbage collect.
|
||||||
comp_compositor_garbage_collect(c);
|
comp_compositor_garbage_collect(c);
|
||||||
|
|
||||||
return XRT_SUCCESS;
|
return XRT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -573,6 +573,8 @@ _render_pass_begin(struct vk_bundle *vk,
|
||||||
static void
|
static void
|
||||||
_render_stereo(struct comp_layer_renderer *self, struct vk_bundle *vk, VkCommandBuffer cmd_buffer)
|
_render_stereo(struct comp_layer_renderer *self, struct vk_bundle *vk, VkCommandBuffer cmd_buffer)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
VkViewport viewport = {
|
VkViewport viewport = {
|
||||||
0.0f, 0.0f, self->extent.width, self->extent.height, 0.0f, 1.0f,
|
0.0f, 0.0f, self->extent.width, self->extent.height, 0.0f, 1.0f,
|
||||||
};
|
};
|
||||||
|
@ -596,6 +598,8 @@ _render_stereo(struct comp_layer_renderer *self, struct vk_bundle *vk, VkCommand
|
||||||
void
|
void
|
||||||
comp_layer_renderer_draw(struct comp_layer_renderer *self)
|
comp_layer_renderer_draw(struct comp_layer_renderer *self)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
struct vk_bundle *vk = self->vk;
|
struct vk_bundle *vk = self->vk;
|
||||||
|
|
||||||
VkCommandBuffer cmd_buffer;
|
VkCommandBuffer cmd_buffer;
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include "math/m_space.h"
|
#include "math/m_space.h"
|
||||||
|
|
||||||
#include "util/u_misc.h"
|
#include "util/u_misc.h"
|
||||||
|
#include "util/u_trace_marker.h"
|
||||||
#include "util/u_distortion_mesh.h"
|
#include "util/u_distortion_mesh.h"
|
||||||
|
|
||||||
#include "main/comp_layer_renderer.h"
|
#include "main/comp_layer_renderer.h"
|
||||||
|
@ -148,6 +149,8 @@ renderer_create(struct comp_renderer *r, struct comp_compositor *c)
|
||||||
static void
|
static void
|
||||||
renderer_wait_gpu_idle(struct comp_renderer *r)
|
renderer_wait_gpu_idle(struct comp_renderer *r)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
os_mutex_lock(&r->c->vk.queue_mutex);
|
os_mutex_lock(&r->c->vk.queue_mutex);
|
||||||
r->c->vk.vkDeviceWaitIdle(r->c->vk.device);
|
r->c->vk.vkDeviceWaitIdle(r->c->vk.device);
|
||||||
os_mutex_unlock(&r->c->vk.queue_mutex);
|
os_mutex_unlock(&r->c->vk.queue_mutex);
|
||||||
|
@ -156,6 +159,8 @@ renderer_wait_gpu_idle(struct comp_renderer *r)
|
||||||
static void
|
static void
|
||||||
renderer_submit_queue(struct comp_renderer *r)
|
renderer_submit_queue(struct comp_renderer *r)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
struct vk_bundle *vk = &r->c->vk;
|
struct vk_bundle *vk = &r->c->vk;
|
||||||
VkResult ret;
|
VkResult ret;
|
||||||
|
|
||||||
|
@ -365,6 +370,8 @@ renderer_create_fences(struct comp_renderer *r)
|
||||||
static void
|
static void
|
||||||
renderer_get_view_projection(struct comp_renderer *r)
|
renderer_get_view_projection(struct comp_renderer *r)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
struct xrt_space_relation relation;
|
struct xrt_space_relation relation;
|
||||||
|
|
||||||
xrt_device_get_tracked_pose(r->c->xdev, XRT_INPUT_GENERIC_HEAD_POSE, r->c->last_next_display_time, &relation);
|
xrt_device_get_tracked_pose(r->c->xdev, XRT_INPUT_GENERIC_HEAD_POSE, r->c->last_next_display_time, &relation);
|
||||||
|
@ -624,6 +631,8 @@ comp_renderer_set_equirect2_layer(struct comp_renderer *r,
|
||||||
void
|
void
|
||||||
comp_renderer_draw(struct comp_renderer *r)
|
comp_renderer_draw(struct comp_renderer *r)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
struct comp_target *ct = r->c->target;
|
struct comp_target *ct = r->c->target;
|
||||||
struct comp_compositor *c = r->c;
|
struct comp_compositor *c = r->c;
|
||||||
|
|
||||||
|
@ -751,6 +760,8 @@ renderer_resize(struct comp_renderer *r)
|
||||||
static void
|
static void
|
||||||
renderer_acquire_swapchain_image(struct comp_renderer *r)
|
renderer_acquire_swapchain_image(struct comp_renderer *r)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
VkResult ret;
|
VkResult ret;
|
||||||
|
|
||||||
ret = comp_target_acquire(r->c->target, r->semaphores.present_complete, &r->current_buffer);
|
ret = comp_target_acquire(r->c->target, r->semaphores.present_complete, &r->current_buffer);
|
||||||
|
@ -772,6 +783,8 @@ renderer_acquire_swapchain_image(struct comp_renderer *r)
|
||||||
static void
|
static void
|
||||||
renderer_present_swapchain_image(struct comp_renderer *r, uint64_t desired_present_time_ns, uint64_t present_slop_ns)
|
renderer_present_swapchain_image(struct comp_renderer *r, uint64_t desired_present_time_ns, uint64_t present_slop_ns)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
VkResult ret;
|
VkResult ret;
|
||||||
|
|
||||||
ret = comp_target_present(r->c->target, r->queue, r->current_buffer, r->semaphores.render_complete,
|
ret = comp_target_present(r->c->target, r->queue, r->current_buffer, r->semaphores.render_complete,
|
||||||
|
@ -821,11 +834,15 @@ renderer_destroy(struct comp_renderer *r)
|
||||||
void
|
void
|
||||||
comp_renderer_allocate_layers(struct comp_renderer *self, uint32_t num_layers)
|
comp_renderer_allocate_layers(struct comp_renderer *self, uint32_t num_layers)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
comp_layer_renderer_allocate_layers(self->lr, num_layers);
|
comp_layer_renderer_allocate_layers(self->lr, num_layers);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
comp_renderer_destroy_layers(struct comp_renderer *self)
|
comp_renderer_destroy_layers(struct comp_renderer *self)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
comp_layer_renderer_destroy_layers(self->lr);
|
comp_layer_renderer_destroy_layers(self->lr);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
|
|
||||||
#include "vk/vk_helpers.h"
|
#include "vk/vk_helpers.h"
|
||||||
|
|
||||||
|
#include "util/u_trace_marker.h"
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -181,6 +183,8 @@ struct comp_target
|
||||||
static inline bool
|
static inline bool
|
||||||
comp_target_init_pre_vulkan(struct comp_target *ct)
|
comp_target_init_pre_vulkan(struct comp_target *ct)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
return ct->init_pre_vulkan(ct);
|
return ct->init_pre_vulkan(ct);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -193,6 +197,8 @@ comp_target_init_pre_vulkan(struct comp_target *ct)
|
||||||
static inline bool
|
static inline bool
|
||||||
comp_target_init_post_vulkan(struct comp_target *ct, uint32_t preferred_width, uint32_t preferred_height)
|
comp_target_init_post_vulkan(struct comp_target *ct, uint32_t preferred_width, uint32_t preferred_height)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
return ct->init_post_vulkan(ct, preferred_width, preferred_height);
|
return ct->init_post_vulkan(ct, preferred_width, preferred_height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,6 +216,8 @@ comp_target_create_images(struct comp_target *ct,
|
||||||
VkColorSpaceKHR preferred_color_space,
|
VkColorSpaceKHR preferred_color_space,
|
||||||
VkPresentModeKHR present_mode)
|
VkPresentModeKHR present_mode)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
ct->create_images(ct, preferred_width, preferred_height, preferred_color_format, preferred_color_space,
|
ct->create_images(ct, preferred_width, preferred_height, preferred_color_format, preferred_color_space,
|
||||||
present_mode);
|
present_mode);
|
||||||
}
|
}
|
||||||
|
@ -223,6 +231,8 @@ comp_target_create_images(struct comp_target *ct,
|
||||||
static inline VkResult
|
static inline VkResult
|
||||||
comp_target_acquire(struct comp_target *ct, VkSemaphore semaphore, uint32_t *out_index)
|
comp_target_acquire(struct comp_target *ct, VkSemaphore semaphore, uint32_t *out_index)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
return ct->acquire(ct, semaphore, out_index);
|
return ct->acquire(ct, semaphore, out_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -241,6 +251,8 @@ comp_target_present(struct comp_target *ct,
|
||||||
uint64_t present_slop_ns)
|
uint64_t present_slop_ns)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
return ct->present( //
|
return ct->present( //
|
||||||
ct, //
|
ct, //
|
||||||
queue, //
|
queue, //
|
||||||
|
@ -259,6 +271,8 @@ comp_target_present(struct comp_target *ct,
|
||||||
static inline void
|
static inline void
|
||||||
comp_target_flush(struct comp_target *ct)
|
comp_target_flush(struct comp_target *ct)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
ct->flush(ct);
|
ct->flush(ct);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -276,6 +290,8 @@ comp_target_calc_frame_timings(struct comp_target *ct,
|
||||||
uint64_t *out_present_slop_ns,
|
uint64_t *out_present_slop_ns,
|
||||||
uint64_t *out_predicted_display_time_ns)
|
uint64_t *out_predicted_display_time_ns)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
ct->calc_frame_timings( //
|
ct->calc_frame_timings( //
|
||||||
ct, //
|
ct, //
|
||||||
out_frame_id, //
|
out_frame_id, //
|
||||||
|
@ -295,6 +311,8 @@ comp_target_calc_frame_timings(struct comp_target *ct,
|
||||||
static inline void
|
static inline void
|
||||||
comp_target_mark_wake_up(struct comp_target *ct, int64_t frame_id, uint64_t when_woke_ns)
|
comp_target_mark_wake_up(struct comp_target *ct, int64_t frame_id, uint64_t when_woke_ns)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
ct->mark_timing_point(ct, COMP_TARGET_TIMING_POINT_WAKE_UP, frame_id, when_woke_ns);
|
ct->mark_timing_point(ct, COMP_TARGET_TIMING_POINT_WAKE_UP, frame_id, when_woke_ns);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -308,6 +326,8 @@ comp_target_mark_wake_up(struct comp_target *ct, int64_t frame_id, uint64_t when
|
||||||
static inline void
|
static inline void
|
||||||
comp_target_mark_begin(struct comp_target *ct, int64_t frame_id, uint64_t when_began_ns)
|
comp_target_mark_begin(struct comp_target *ct, int64_t frame_id, uint64_t when_began_ns)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
ct->mark_timing_point(ct, COMP_TARGET_TIMING_POINT_BEGIN, frame_id, when_began_ns);
|
ct->mark_timing_point(ct, COMP_TARGET_TIMING_POINT_BEGIN, frame_id, when_began_ns);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -321,6 +341,8 @@ comp_target_mark_begin(struct comp_target *ct, int64_t frame_id, uint64_t when_b
|
||||||
static inline void
|
static inline void
|
||||||
comp_target_mark_submit(struct comp_target *ct, int64_t frame_id, uint64_t when_submitted_ns)
|
comp_target_mark_submit(struct comp_target *ct, int64_t frame_id, uint64_t when_submitted_ns)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
ct->mark_timing_point(ct, COMP_TARGET_TIMING_POINT_SUBMIT, frame_id, when_submitted_ns);
|
ct->mark_timing_point(ct, COMP_TARGET_TIMING_POINT_SUBMIT, frame_id, when_submitted_ns);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -333,6 +355,8 @@ comp_target_mark_submit(struct comp_target *ct, int64_t frame_id, uint64_t when_
|
||||||
static inline VkResult
|
static inline VkResult
|
||||||
comp_target_update_timings(struct comp_target *ct)
|
comp_target_update_timings(struct comp_target *ct)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
return ct->update_timings(ct);
|
return ct->update_timings(ct);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -345,6 +369,8 @@ comp_target_update_timings(struct comp_target *ct)
|
||||||
static inline void
|
static inline void
|
||||||
comp_target_set_title(struct comp_target *ct, const char *title)
|
comp_target_set_title(struct comp_target *ct, const char *title)
|
||||||
{
|
{
|
||||||
|
COMP_TRACE_MARKER();
|
||||||
|
|
||||||
ct->set_title(ct, title);
|
ct->set_title(ct, title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue