Mesa (main): intel/blorp: add measure_end entry point

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jan 14 20:48:02 UTC 2022


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

Author: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Date:   Fri Nov 26 18:22:40 2021 +0200

intel/blorp: add measure_end entry point

Will be useful to figure out when blorp operations end.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Reviewed-by: Rohan Garg <rohan.garg at intel.com>
Acked-by: Antonio Caggiano <antonio.caggiano at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13996>

---

 src/gallium/drivers/crocus/crocus_blorp.c |  6 ++++++
 src/gallium/drivers/iris/iris_blorp.c     |  7 +++++++
 src/intel/blorp/blorp_genX_exec.h         | 20 ++++++++++++++++----
 src/intel/vulkan/genX_blorp_exec.c        |  5 +++++
 4 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/crocus/crocus_blorp.c b/src/gallium/drivers/crocus/crocus_blorp.c
index 7c09ab6cdc5..abbd73edecc 100644
--- a/src/gallium/drivers/crocus/crocus_blorp.c
+++ b/src/gallium/drivers/crocus/crocus_blorp.c
@@ -401,6 +401,12 @@ blorp_measure_start(struct blorp_batch *blorp_batch,
 {
 }
 
+static void
+blorp_measure_end(struct blorp_batch *blorp_batch,
+                  const struct blorp_params *params)
+{
+}
+
 void
 genX(crocus_init_blorp)(struct crocus_context *ice)
 {
diff --git a/src/gallium/drivers/iris/iris_blorp.c b/src/gallium/drivers/iris/iris_blorp.c
index 2abcb0b50e2..7099b9b09b0 100644
--- a/src/gallium/drivers/iris/iris_blorp.c
+++ b/src/gallium/drivers/iris/iris_blorp.c
@@ -409,6 +409,13 @@ blorp_measure_start(struct blorp_batch *blorp_batch,
    iris_measure_snapshot(ice, batch, params->snapshot_type, NULL, NULL, NULL);
 }
 
+
+static void
+blorp_measure_end(struct blorp_batch *blorp_batch,
+                    const struct blorp_params *params)
+{
+}
+
 void
 genX(init_blorp)(struct iris_context *ice)
 {
diff --git a/src/intel/blorp/blorp_genX_exec.h b/src/intel/blorp/blorp_genX_exec.h
index 0ca326eef31..a4516cf87cc 100644
--- a/src/intel/blorp/blorp_genX_exec.h
+++ b/src/intel/blorp/blorp_genX_exec.h
@@ -56,6 +56,10 @@ static void
 blorp_measure_start(struct blorp_batch *batch,
                     const struct blorp_params *params);
 
+static void
+blorp_measure_end(struct blorp_batch *batch,
+                  const struct blorp_params *params);
+
 static void *
 blorp_alloc_dynamic_state(struct blorp_batch *batch,
                           uint32_t size,
@@ -1785,6 +1789,8 @@ blorp_emit_gfx8_hiz_op(struct blorp_batch *batch,
     */
    assert(params->depth.enabled || params->stencil.enabled);
 
+   blorp_measure_start(batch, params);
+
    /* The stencil buffer should only be enabled if a fast clear operation is
     * requested.
     */
@@ -1835,8 +1841,6 @@ blorp_emit_gfx8_hiz_op(struct blorp_batch *batch,
       blorp_emit_depth_stencil_config(batch, params);
    }
 
-   blorp_measure_start(batch, params);
-
    blorp_emit(batch, GENX(3DSTATE_WM_HZ_OP), hzp) {
       switch (params->hiz_op) {
       case ISL_AUX_OP_FAST_CLEAR:
@@ -1882,6 +1886,8 @@ blorp_emit_gfx8_hiz_op(struct blorp_batch *batch,
    }
 
    blorp_emit(batch, GENX(3DSTATE_WM_HZ_OP), hzp);
+
+   blorp_measure_end(batch, params);
 }
 #endif
 
@@ -2022,6 +2028,8 @@ blorp_exec_3d(struct blorp_batch *batch, const struct blorp_params *params)
    }
 #endif
 
+   blorp_measure_start(batch, params);
+
    blorp_emit_vertex_buffers(batch, params);
    blorp_emit_vertex_elements(batch, params);
 
@@ -2032,8 +2040,6 @@ blorp_exec_3d(struct blorp_batch *batch, const struct blorp_params *params)
    if (!(batch->flags & BLORP_BATCH_NO_EMIT_DEPTH_STENCIL))
       blorp_emit_depth_stencil_config(batch, params);
 
-   blorp_measure_start(batch, params);
-
    blorp_emit(batch, GENX(3DPRIMITIVE), prim) {
       prim.VertexAccessType = SEQUENTIAL;
       prim.PrimitiveTopologyType = _3DPRIM_RECTLIST;
@@ -2043,6 +2049,8 @@ blorp_exec_3d(struct blorp_batch *batch, const struct blorp_params *params)
       prim.VertexCountPerInstance = 3;
       prim.InstanceCount = params->num_layers;
    }
+
+   blorp_measure_end(batch, params);
 }
 
 #if GFX_VER >= 7
@@ -2111,6 +2119,8 @@ blorp_exec_compute(struct blorp_batch *batch, const struct blorp_params *params)
    assert(!(batch->flags & BLORP_BATCH_PREDICATE_ENABLE));
    assert(params->hiz_op == ISL_AUX_OP_NONE);
 
+   blorp_measure_start(batch, params);
+
 #if GFX_VER >= 7
 
    const struct brw_cs_prog_data *cs_prog_data = params->cs_prog_data;
@@ -2284,6 +2294,8 @@ blorp_exec_compute(struct blorp_batch *batch, const struct blorp_params *params)
    unreachable("Compute blorp is not supported on SNB and earlier");
 
 #endif /* GFX_VER >= 7 */
+
+   blorp_measure_end(batch, params);
 }
 
 
diff --git a/src/intel/vulkan/genX_blorp_exec.c b/src/intel/vulkan/genX_blorp_exec.c
index b30a749dab0..85ea5f65170 100644
--- a/src/intel/vulkan/genX_blorp_exec.c
+++ b/src/intel/vulkan/genX_blorp_exec.c
@@ -43,6 +43,11 @@ static void blorp_measure_start(struct blorp_batch *_batch,
                         NULL, 0);
 }
 
+static void blorp_measure_end(struct blorp_batch *_batch,
+                              const struct blorp_params *params)
+{
+}
+
 static void *
 blorp_emit_dwords(struct blorp_batch *batch, unsigned n)
 {



More information about the mesa-commit mailing list