nvk: Disable statistics around meta ops
authorFaith Ekstrand <faith.ekstrand@collabora.com>
Fri, 22 Sep 2023 18:52:19 +0000 (13:52 -0500)
committerMarge Bot <emma+marge@anholt.net>
Fri, 22 Sep 2023 21:23:11 +0000 (21:23 +0000)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25353>

src/nouveau/vulkan/nvk_cmd_meta.c

index 91c0d4d..39135ae 100644 (file)
@@ -9,6 +9,7 @@
 #include "nvk_image.h"
 #include "nvk_physical_device.h"
 
+#include "nvk_cl9097.h"
 #include "nvk_clb197.h"
 
 static VkResult
@@ -86,6 +87,25 @@ nvk_meta_begin(struct nvk_cmd_buffer *cmd,
    STATIC_ASSERT(sizeof(save->push) ==
                  sizeof(cmd->state.gfx.descriptors.root.push));
    memcpy(save->push, cmd->state.gfx.descriptors.root.push, sizeof(save->push));
+
+   struct nv_push *p = nvk_cmd_buffer_push(cmd, 2);
+   P_IMMD(p, NV9097, SET_STATISTICS_COUNTER, {
+      .da_vertices_generated_enable = false,
+      .da_primitives_generated_enable = false,
+      .vs_invocations_enable = false,
+      .gs_invocations_enable = false,
+      .gs_primitives_generated_enable = false,
+      .streaming_primitives_succeeded_enable = false,
+      .streaming_primitives_needed_enable = false,
+      .clipper_invocations_enable = false,
+      .clipper_primitives_generated_enable = false,
+      .ps_invocations_enable = false,
+      .ti_invocations_enable = false,
+      .ts_invocations_enable = false,
+      .ts_primitives_generated_enable = false,
+      .total_streaming_primitives_needed_succeeded_enable = false,
+      .vtg_primitives_out_enable = false,
+   });
 }
 
 static void
@@ -134,6 +154,25 @@ nvk_meta_end(struct nvk_cmd_buffer *cmd,
    nvk_cmd_bind_vertex_buffer(cmd, 0, save->vb0);
 
    memcpy(cmd->state.gfx.descriptors.root.push, save->push, sizeof(save->push));
+
+   struct nv_push *p = nvk_cmd_buffer_push(cmd, 2);
+   P_IMMD(p, NV9097, SET_STATISTICS_COUNTER, {
+      .da_vertices_generated_enable = true,
+      .da_primitives_generated_enable = true,
+      .vs_invocations_enable = true,
+      .gs_invocations_enable = true,
+      .gs_primitives_generated_enable = true,
+      .streaming_primitives_succeeded_enable = true,
+      .streaming_primitives_needed_enable = true,
+      .clipper_invocations_enable = true,
+      .clipper_primitives_generated_enable = true,
+      .ps_invocations_enable = true,
+      .ti_invocations_enable = true,
+      .ts_invocations_enable = true,
+      .ts_primitives_generated_enable = true,
+      .total_streaming_primitives_needed_succeeded_enable = true,
+      .vtg_primitives_out_enable = true,
+   });
 }
 
 VKAPI_ATTR void VKAPI_CALL