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" */ }