From e067078fcd2820bf9e1f805f35d9d913acf90f69 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Tue, 29 Sep 2020 10:54:07 +0300 Subject: [PATCH] blorp: identify copy kernels in NIR This was useful in identifying blit vs copy kernels. Signed-off-by: Lionel Landwerlin Reviewed-by: Jason Ekstrand Part-of: --- 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 681c8f1..8d49c2f 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 e783277..af22fbc 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 3395d76..b232678 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 63b0ce9..dc6bd13 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, -- 2.7.4