Mesa (main): tu: Don't count 3d blits in QUERY_TYPE_PRIMITIVES_GENERATED

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jun 24 14:33:48 UTC 2022


Module: Mesa
Branch: main
Commit: 5aeefe8d75345ae908e3f254249e06dfebd4b26f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5aeefe8d75345ae908e3f254249e06dfebd4b26f

Author: Danylo Piliaiev <dpiliaiev at igalia.com>
Date:   Tue Jun 21 13:08:54 2022 +0300

tu: Don't count 3d blits in QUERY_TYPE_PRIMITIVES_GENERATED

Signed-off-by: Danylo Piliaiev <dpiliaiev at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17164>

---

 src/freedreno/vulkan/tu_clear_blit.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/freedreno/vulkan/tu_clear_blit.c b/src/freedreno/vulkan/tu_clear_blit.c
index 4d6ec7c8707..69502e310a6 100644
--- a/src/freedreno/vulkan/tu_clear_blit.c
+++ b/src/freedreno/vulkan/tu_clear_blit.c
@@ -1116,6 +1116,10 @@ r3d_setup(struct tu_cmd_buffer *cmd,
    /* Disable sample counting in order to not affect occlusion query. */
    tu_cs_emit_regs(cs, A6XX_RB_SAMPLE_COUNT_CONTROL(.disable = true));
 
+   if (cmd->state.prim_generated_query_running_before_rp) {
+      tu6_emit_event_write(cmd, cs, STOP_PRIMITIVE_CTRS);
+   }
+
    if (cmd->state.predication_active) {
       tu_cs_emit_pkt7(cs, CP_DRAW_PRED_ENABLE_LOCAL, 1);
       tu_cs_emit(cs, 0);
@@ -1154,6 +1158,10 @@ r3d_teardown(struct tu_cmd_buffer *cmd, struct tu_cs *cs)
 
    /* Re-enable sample counting. */
    tu_cs_emit_regs(cs, A6XX_RB_SAMPLE_COUNT_CONTROL(.disable = false));
+
+   if (cmd->state.prim_generated_query_running_before_rp) {
+      tu6_emit_event_write(cmd, cs, START_PRIMITIVE_CTRS);
+   }
 }
 
 /* blit ops - common interface for 2d/shader paths */
@@ -2360,6 +2368,10 @@ tu_clear_sysmem_attachments(struct tu_cmd_buffer *cmd,
    /* Disable sample counting in order to not affect occlusion query. */
    tu_cs_emit_regs(cs, A6XX_RB_SAMPLE_COUNT_CONTROL(.disable = true));
 
+   if (cmd->state.prim_generated_query_running_before_rp) {
+      tu6_emit_event_write(cmd, cs, STOP_PRIMITIVE_CTRS);
+   }
+
    tu_cs_emit_regs(cs,
                    A6XX_SP_FS_RENDER_COMPONENTS(.dword = clear_components));
    tu_cs_emit_regs(cs,
@@ -2435,6 +2447,10 @@ tu_clear_sysmem_attachments(struct tu_cmd_buffer *cmd,
    /* Re-enable sample counting. */
    tu_cs_emit_regs(cs, A6XX_RB_SAMPLE_COUNT_CONTROL(.disable = false));
 
+   if (cmd->state.prim_generated_query_running_before_rp) {
+      tu6_emit_event_write(cmd, cs, START_PRIMITIVE_CTRS);
+   }
+
    trace_end_sysmem_clear_all(&cmd->trace,
                               cs, mrt_count, rect_count);
 }



More information about the mesa-commit mailing list