diff --git a/src/gallium/drivers/radeonsi/si_compute.c b/src/gallium/drivers/radeonsi/si_compute.c
index 2dd329d369590b739f608ed5e2fc6e908bb9adbc..4a395b4c859a77c8aa49a49c5a099d213bac555d 100644
--- a/src/gallium/drivers/radeonsi/si_compute.c
+++ b/src/gallium/drivers/radeonsi/si_compute.c
@@ -1237,7 +1237,7 @@ static void si_launch_grid(struct pipe_context *ctx, const struct pipe_grid_info
       }
    }
 
-   if (sctx->perfetto_enabled)
+   if (unlikely(sctx->perfetto_enabled))
       trace_si_begin_compute(&sctx->trace);
 
    if (sctx->bo_list_add_all_compute_resources)
@@ -1310,7 +1310,7 @@ static void si_launch_grid(struct pipe_context *ctx, const struct pipe_grid_info
    sctx->compute_is_busy = true;
    sctx->num_compute_calls++;
 
-   if (sctx->perfetto_enabled)
+   if (unlikely(sctx->perfetto_enabled))
       trace_si_end_compute(&sctx->trace, info->grid[0], info->grid[1], info->grid[2]);
 
    if (cs_regalloc_hang) {
diff --git a/src/gallium/drivers/radeonsi/si_fence.c b/src/gallium/drivers/radeonsi/si_fence.c
index bcb56f23d9696852bb5a19825f2fbba702acaf04..7c9e85aa3b83f289fee87b9ad3b92c867f68de4d 100644
--- a/src/gallium/drivers/radeonsi/si_fence.c
+++ b/src/gallium/drivers/radeonsi/si_fence.c
@@ -473,8 +473,8 @@ static void si_flush_all_queues(struct pipe_context *ctx,
       if (unlikely(sctx->sqtt && (flags & PIPE_FLUSH_END_OF_FRAME))) {
          si_handle_sqtt(sctx, &sctx->gfx_cs);
       }
-      
-      if (sctx->perfetto_enabled)
+
+      if (unlikely(sctx->perfetto_enabled))
          u_trace_context_process(&sctx->ds.trace_context, flags & PIPE_FLUSH_END_OF_FRAME);
    } else {
       /* Instead of flushing, create a deferred fence. Constraints:
diff --git a/src/gallium/drivers/radeonsi/si_gfx_cs.c b/src/gallium/drivers/radeonsi/si_gfx_cs.c
index 85c7c3a02f169d2da1590b6e6678175dd61783fa..825741d7f8228781530a7d436e8adc10e7d79808 100644
--- a/src/gallium/drivers/radeonsi/si_gfx_cs.c
+++ b/src/gallium/drivers/radeonsi/si_gfx_cs.c
@@ -194,7 +194,7 @@ void si_flush_gfx_cs(struct si_context *ctx, unsigned flags, struct pipe_fence_h
    uint64_t start_ts = 0, submission_id = 0;
    const bool perfetto = ctx->perfetto_enabled;
 
-   if (perfetto) {
+   if (unlikely(perfetto)) {
       start_ts = si_ds_begin_submit(&ctx->ds_queue);
       submission_id = ctx->ds_queue.submission_id;
    }
@@ -202,7 +202,7 @@ void si_flush_gfx_cs(struct si_context *ctx, unsigned flags, struct pipe_fence_h
    /* Flush the CS. */
    ws->cs_flush(cs, flags, &ctx->last_gfx_fence);
 
-   if (perfetto)
+   if (unlikely(perfetto))
       si_ds_end_submit(&ctx->ds_queue, start_ts);
 
    tc_driver_internal_flush_notify(ctx->tc);
@@ -228,7 +228,7 @@ void si_flush_gfx_cs(struct si_context *ctx, unsigned flags, struct pipe_fence_h
    if (ctx->current_saved_cs)
       si_saved_cs_reference(&ctx->current_saved_cs, NULL);
 
-   if (perfetto)
+   if (unlikely(perfetto))
       si_utrace_flush(ctx, submission_id);
 
    si_begin_new_gfx_cs(ctx, false);
diff --git a/src/gallium/drivers/radeonsi/si_state_draw.cpp b/src/gallium/drivers/radeonsi/si_state_draw.cpp
index 04f1cbfae098f2db7c3176e8ced02c9898b9e091..8ac628616bc93b647169f9ad48e8cb74e5043f6b 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.cpp
+++ b/src/gallium/drivers/radeonsi/si_state_draw.cpp
@@ -2085,7 +2085,7 @@ static void si_draw(struct pipe_context *ctx,
 
    si_need_gfx_cs_space(sctx, num_draws, ALT_HIZ_LOGIC ? 8 : 0);
 
-   if (sctx->perfetto_enabled)
+   if (unlikely(sctx->perfetto_enabled))
       trace_si_begin_draw(&sctx->trace);
 
    unsigned instance_count = info->instance_count;
@@ -2437,7 +2437,7 @@ static void si_draw(struct pipe_context *ctx,
       zstex->depth_cleared_level_mask &= ~BITFIELD_BIT(sctx->framebuffer.state.zsbuf->u.tex.level);
    }
 
-   if (sctx->perfetto_enabled) {
+   if (unlikely(sctx->perfetto_enabled)) {
       /* Just use the draw[0] vertex count for perfetto. */
       trace_si_end_draw(&sctx->trace, draws[0].count);
    }