radv: emit missing subpass resolve marker for SQTT

RGP now shows CmdEndRenderPassResolve() in the Event timing panel.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9106>
This commit is contained in:
Samuel Pitoiset 2021-02-17 18:00:14 +01:00
parent 491a1949eb
commit e5d8b731e4
3 changed files with 21 additions and 0 deletions

View file

@ -214,6 +214,18 @@ radv_describe_end_render_pass_clear(struct radv_cmd_buffer *cmd_buffer)
cmd_buffer->state.current_event_type = EventInternalUnknown;
}
void
radv_describe_begin_render_pass_resolve(struct radv_cmd_buffer *cmd_buffer)
{
cmd_buffer->state.current_event_type = EventRenderPassResolve;
}
void
radv_describe_end_render_pass_resolve(struct radv_cmd_buffer *cmd_buffer)
{
cmd_buffer->state.current_event_type = EventInternalUnknown;
}
void
radv_describe_barrier_end_delayed(struct radv_cmd_buffer *cmd_buffer)
{

View file

@ -826,6 +826,11 @@ radv_cmd_buffer_resolve_subpass(struct radv_cmd_buffer *cmd_buffer)
const struct radv_subpass *subpass = cmd_buffer->state.subpass;
enum radv_resolve_method resolve_method = RESOLVE_HW;
if (!subpass->has_color_resolve && !subpass->ds_resolve_attachment)
return;
radv_describe_begin_render_pass_resolve(cmd_buffer);
if (subpass->ds_resolve_attachment) {
struct radv_subpass_attachment src_att = *subpass->depth_stencil_attachment;
struct radv_subpass_attachment dst_att = *subpass->ds_resolve_attachment;
@ -935,6 +940,8 @@ radv_cmd_buffer_resolve_subpass(struct radv_cmd_buffer *cmd_buffer)
unreachable("Invalid resolve method");
}
}
radv_describe_end_render_pass_resolve(cmd_buffer);
}
/**

View file

@ -2598,6 +2598,8 @@ void radv_describe_dispatch(struct radv_cmd_buffer *cmd_buffer, int x, int y, in
void radv_describe_begin_render_pass_clear(struct radv_cmd_buffer *cmd_buffer,
VkImageAspectFlagBits aspects);
void radv_describe_end_render_pass_clear(struct radv_cmd_buffer *cmd_buffer);
void radv_describe_begin_render_pass_resolve(struct radv_cmd_buffer *cmd_buffer);
void radv_describe_end_render_pass_resolve(struct radv_cmd_buffer *cmd_buffer);
void radv_describe_barrier_start(struct radv_cmd_buffer *cmd_buffer,
enum rgp_barrier_reason reason);
void radv_describe_barrier_end(struct radv_cmd_buffer *cmd_buffer);