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

Author: Lionel Landwerlin <[email protected]>
Date:   Tue Sep 29 10:54:07 2020 +0300

blorp: identify copy kernels in NIR

This was useful in identifying blit vs copy kernels.

Signed-off-by: Lionel Landwerlin <[email protected]>
Reviewed-by: Jason Ekstrand <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6909>

---

 src/intel/blorp/blorp.c       | 16 ++++++++++++++++
 src/intel/blorp/blorp_blit.c  |  4 ++--
 src/intel/blorp/blorp_clear.c |  8 +++++---
 src/intel/blorp/blorp_priv.h  |  3 +++
 4 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/src/intel/blorp/blorp.c b/src/intel/blorp/blorp.c
index 681c8f1cc0c..8d49c2f6b67 100644
--- a/src/intel/blorp/blorp.c
+++ b/src/intel/blorp/blorp.c
@@ -29,6 +29,22 @@
 #include "compiler/brw_compiler.h"
 #include "compiler/brw_nir.h"
 
+const char *
+blorp_shader_type_to_name(enum blorp_shader_type type)
+{
+   static const char *shader_name[] = {
+      [BLORP_SHADER_TYPE_COPY]                = "BLORP-copy",
+      [BLORP_SHADER_TYPE_BLIT]                = "BLORP-blit",
+      [BLORP_SHADER_TYPE_CLEAR]               = "BLORP-clear",
+      [BLORP_SHADER_TYPE_MCS_PARTIAL_RESOLVE] = "BLORP-mcs-partial-resolve",
+      [BLORP_SHADER_TYPE_LAYER_OFFSET_VS]     = "BLORP-layer-offset-vs",
+      [BLORP_SHADER_TYPE_GEN4_SF]             = "BLORP-gen4-sf",
+   };
+   assert(type < ARRAY_SIZE(shader_name));
+
+   return shader_name[type];
+}
+
 void
 blorp_init(struct blorp_context *blorp, void *driver_ctx,
            struct isl_device *isl_dev)
diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c
index e783277bbb1..af22fbc8ae8 100644
--- a/src/intel/blorp/blorp_blit.c
+++ b/src/intel/blorp/blorp_blit.c
@@ -1489,7 +1489,7 @@ brw_blorp_get_blit_kernel(struct blorp_batch *batch,
    struct brw_wm_prog_data prog_data;
 
    nir_shader *nir = brw_blorp_build_nir_shader(blorp, mem_ctx, prog_key);
-   nir->info.name = ralloc_strdup(nir, "BLORP-blit");
+   nir->info.name = ralloc_strdup(nir, 
blorp_shader_type_to_name(prog_key->shader_type));
 
    struct brw_wm_prog_key wm_key;
    brw_blorp_init_wm_prog_key(&wm_key);
@@ -2644,7 +2644,7 @@ blorp_copy(struct blorp_batch *batch,
                                dst_layer, ISL_FORMAT_UNSUPPORTED, true);
 
    struct brw_blorp_blit_prog_key wm_prog_key = {
-      .shader_type = BLORP_SHADER_TYPE_BLIT,
+      .shader_type = BLORP_SHADER_TYPE_COPY,
       .filter = BLORP_FILTER_NONE,
       .need_src_offset = src_surf->tile_x_sa || src_surf->tile_y_sa,
       .need_dst_offset = dst_surf->tile_x_sa || dst_surf->tile_y_sa,
diff --git a/src/intel/blorp/blorp_clear.c b/src/intel/blorp/blorp_clear.c
index 3395d761e96..b232678f9eb 100644
--- a/src/intel/blorp/blorp_clear.c
+++ b/src/intel/blorp/blorp_clear.c
@@ -64,7 +64,8 @@ blorp_params_get_clear_kernel(struct blorp_batch *batch,
    void *mem_ctx = ralloc_context(NULL);
 
    nir_builder b;
-   blorp_nir_init_shader(&b, mem_ctx, MESA_SHADER_FRAGMENT, "BLORP-clear");
+   blorp_nir_init_shader(&b, mem_ctx, MESA_SHADER_FRAGMENT,
+                         blorp_shader_type_to_name(blorp_key.shader_type));
 
    nir_variable *v_color =
       BLORP_CREATE_NIR_INPUT(b.shader, clear_color, glsl_vec4_type());
@@ -143,7 +144,8 @@ blorp_params_get_layer_offset_vs(struct blorp_batch *batch,
    void *mem_ctx = ralloc_context(NULL);
 
    nir_builder b;
-   blorp_nir_init_shader(&b, mem_ctx, MESA_SHADER_VERTEX, 
"BLORP-layer-offset-vs");
+   blorp_nir_init_shader(&b, mem_ctx, MESA_SHADER_VERTEX,
+                         blorp_shader_type_to_name(blorp_key.shader_type));
 
    const struct glsl_type *uvec4_type = glsl_vector_type(GLSL_TYPE_UINT, 4);
 
@@ -1142,7 +1144,7 @@ blorp_params_get_mcs_partial_resolve_kernel(struct 
blorp_batch *batch,
 
    nir_builder b;
    blorp_nir_init_shader(&b, mem_ctx, MESA_SHADER_FRAGMENT,
-                         "BLORP-mcs-partial-resolve");
+                         blorp_shader_type_to_name(blorp_key.shader_type));
 
    nir_variable *v_color =
       BLORP_CREATE_NIR_INPUT(b.shader, clear_color, glsl_vec4_type());
diff --git a/src/intel/blorp/blorp_priv.h b/src/intel/blorp/blorp_priv.h
index 63b0ce9a88d..dc6bd13c1c3 100644
--- a/src/intel/blorp/blorp_priv.h
+++ b/src/intel/blorp/blorp_priv.h
@@ -223,6 +223,7 @@ struct blorp_params
 void blorp_params_init(struct blorp_params *params);
 
 enum blorp_shader_type {
+   BLORP_SHADER_TYPE_COPY,
    BLORP_SHADER_TYPE_BLIT,
    BLORP_SHADER_TYPE_CLEAR,
    BLORP_SHADER_TYPE_MCS_PARTIAL_RESOLVE,
@@ -361,6 +362,8 @@ struct brw_blorp_blit_prog_key
 
 void brw_blorp_init_wm_prog_key(struct brw_wm_prog_key *wm_key);
 
+const char *blorp_shader_type_to_name(enum blorp_shader_type type);
+
 const unsigned *
 blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,
                  struct nir_shader *nir,

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to