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

Author: Rohan Garg <rohan.g...@intel.com>
Date:   Fri Oct 27 11:30:44 2023 +0200

blorp,anv,iris: refactor blorp functions into something more generic

Refactor some of the blorp code into something more generic that we can
reuse for functionality needed post 3DPRIMITIVE emission.

Signed-off-by: Rohan Garg <rohan.g...@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25039>

---

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

diff --git a/src/gallium/drivers/crocus/crocus_blorp.c 
b/src/gallium/drivers/crocus/crocus_blorp.c
index aadb2af4732..3d20eb6eb2f 100644
--- a/src/gallium/drivers/crocus/crocus_blorp.c
+++ b/src/gallium/drivers/crocus/crocus_blorp.c
@@ -417,13 +417,13 @@ blorp_measure_end(struct blorp_batch *blorp_batch,
 }
 
 static void
-blorp_emit_breakpoint_pre_draw(struct blorp_batch *batch)
+blorp_emit_pre_draw(struct blorp_batch *batch, const struct blorp_params 
*params)
 {
    /* "Not implemented" */
 }
 
 static void
-blorp_emit_breakpoint_post_draw(struct blorp_batch *batch)
+blorp_emit_post_draw(struct blorp_batch *batch, const struct blorp_params 
*params)
 {
    /* "Not implemented" */
 }
diff --git a/src/gallium/drivers/iris/iris_blorp.c 
b/src/gallium/drivers/iris/iris_blorp.c
index d911b414501..0612da4826e 100644
--- a/src/gallium/drivers/iris/iris_blorp.c
+++ b/src/gallium/drivers/iris/iris_blorp.c
@@ -504,15 +504,17 @@ genX(init_blorp)(struct iris_context *ice)
 }
 
 static void
-blorp_emit_breakpoint_pre_draw(struct blorp_batch *blorp_batch)
+blorp_emit_pre_draw(struct blorp_batch *blorp_batch, const struct blorp_params 
*params)
 {
    struct iris_batch *batch = blorp_batch->driver_batch;
+   blorp_measure_start(blorp_batch, params);
    genX(maybe_emit_breakpoint)(batch, true);
 }
 
 static void
-blorp_emit_breakpoint_post_draw(struct blorp_batch *blorp_batch)
+blorp_emit_post_draw(struct blorp_batch *blorp_batch, const struct 
blorp_params *params)
 {
    struct iris_batch *batch = blorp_batch->driver_batch;
    genX(maybe_emit_breakpoint)(batch, false);
+   blorp_measure_end(blorp_batch, params);
 }
diff --git a/src/intel/blorp/blorp_genX_exec.h 
b/src/intel/blorp/blorp_genX_exec.h
index 0f70a969f0a..0212abdcbe1 100644
--- a/src/intel/blorp/blorp_genX_exec.h
+++ b/src/intel/blorp/blorp_genX_exec.h
@@ -124,9 +124,11 @@ blorp_emit_pipeline(struct blorp_batch *batch,
                     const struct blorp_params *params);
 
 static void
-blorp_emit_breakpoint_pre_draw(struct blorp_batch *batch);
+blorp_emit_pre_draw(struct blorp_batch *batch,
+                    const struct blorp_params *params);
 static void
-blorp_emit_breakpoint_post_draw(struct blorp_batch *batch);
+blorp_emit_post_draw(struct blorp_batch *batch,
+                     const struct blorp_params *params);
 
 /***** BEGIN blorp_exec implementation ******/
 
@@ -2036,8 +2038,6 @@ 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);
 
@@ -2049,8 +2049,7 @@ blorp_exec_3d(struct blorp_batch *batch, const struct 
blorp_params *params)
       blorp_emit_depth_stencil_config(batch, params);
 
    const UNUSED bool use_tbimr = false;
-
-   blorp_emit_breakpoint_pre_draw(batch);
+   blorp_emit_pre_draw(batch, params);
    blorp_emit(batch, GENX(3DPRIMITIVE), prim) {
       prim.VertexAccessType = SEQUENTIAL;
       prim.PrimitiveTopologyType = _3DPRIM_RECTLIST;
@@ -2063,8 +2062,7 @@ blorp_exec_3d(struct blorp_batch *batch, const struct 
blorp_params *params)
       prim.VertexCountPerInstance = 3;
       prim.InstanceCount = params->num_layers;
    }
-   blorp_emit_breakpoint_post_draw(batch);
-   blorp_measure_end(batch, params);
+   blorp_emit_post_draw(batch, params);
 }
 
 #if GFX_VER >= 7
diff --git a/src/intel/vulkan/genX_blorp_exec.c 
b/src/intel/vulkan/genX_blorp_exec.c
index 465eda2cb15..7bc3488b2ca 100644
--- a/src/intel/vulkan/genX_blorp_exec.c
+++ b/src/intel/vulkan/genX_blorp_exec.c
@@ -458,15 +458,17 @@ genX(blorp_exec)(struct blorp_batch *batch,
 }
 
 static void
-blorp_emit_breakpoint_pre_draw(struct blorp_batch *batch)
+blorp_emit_pre_draw(struct blorp_batch *batch, const struct blorp_params 
*params)
 {
    struct anv_cmd_buffer *cmd_buffer = batch->driver_batch;
+   blorp_measure_start(batch, params);
    genX(emit_breakpoint)(&cmd_buffer->batch, cmd_buffer->device, true);
 }
 
 static void
-blorp_emit_breakpoint_post_draw(struct blorp_batch *batch)
+blorp_emit_post_draw(struct blorp_batch *batch, const struct blorp_params 
*params)
 {
    struct anv_cmd_buffer *cmd_buffer = batch->driver_batch;
    genX(emit_breakpoint)(&cmd_buffer->batch, cmd_buffer->device, false);
+   blorp_measure_end(batch, params);
 }
diff --git a/src/intel/vulkan_hasvk/genX_blorp_exec.c 
b/src/intel/vulkan_hasvk/genX_blorp_exec.c
index 2c4c3e4036e..2215e17d3e8 100644
--- a/src/intel/vulkan_hasvk/genX_blorp_exec.c
+++ b/src/intel/vulkan_hasvk/genX_blorp_exec.c
@@ -373,13 +373,13 @@ genX(blorp_exec)(struct blorp_batch *batch,
 }
 
 static void
-blorp_emit_breakpoint_pre_draw(struct blorp_batch *batch)
+blorp_emit_pre_draw(struct blorp_batch *batch, const struct blorp_params 
*params)
 {
    /* "Not implemented" */
 }
 
 static void
-blorp_emit_breakpoint_post_draw(struct blorp_batch *batch)
+blorp_emit_post_draw(struct blorp_batch *batch, const struct blorp_params 
*params)
 {
    /* "Not implemented" */
 }

Reply via email to