diff --git a/src/intel/blorp/blorp.c b/src/intel/blorp/blorp.c index 9307c3d163f..9a6e1dd754e 100644 --- a/src/intel/blorp/blorp.c +++ b/src/intel/blorp/blorp.c @@ -46,6 +46,18 @@ blorp_shader_type_to_name(enum blorp_shader_type type) return shader_name[type]; } +const char * +blorp_shader_pipeline_to_name(enum blorp_shader_pipeline pipe) +{ + static const char *pipeline_name[] = { + [BLORP_SHADER_PIPELINE_RENDER] = "render", + [BLORP_SHADER_PIPELINE_COMPUTE] = "compute", + }; + assert(pipe < ARRAY_SIZE(pipeline_name)); + + return pipeline_name[pipe]; +} + void blorp_init(struct blorp_context *blorp, void *driver_ctx, struct isl_device *isl_dev, const struct blorp_config *config) diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c index ff6cad759b8..533b636b7fb 100644 --- a/src/intel/blorp/blorp_blit.c +++ b/src/intel/blorp/blorp_blit.c @@ -2519,6 +2519,9 @@ blorp_blit(struct blorp_batch *batch, isl_format_has_sint_channel(params.dst.view.format), }; + params.shader_type = key.base.shader_type; + params.shader_pipeline = key.base.shader_pipeline; + /* Scaling factors used for bilinear filtering in multisample scaled * blits. */ @@ -2832,6 +2835,9 @@ blorp_copy(struct blorp_batch *batch, .need_dst_offset = dst_surf->tile_x_sa || dst_surf->tile_y_sa, }; + params.shader_type = key.base.shader_type; + params.shader_pipeline = key.base.shader_pipeline; + const struct isl_format_layout *src_fmtl = isl_format_get_layout(params.src.surf.format); const struct isl_format_layout *dst_fmtl = diff --git a/src/intel/blorp/blorp_clear.c b/src/intel/blorp/blorp_clear.c index 8905903d1c2..a721a0ad7c3 100644 --- a/src/intel/blorp/blorp_clear.c +++ b/src/intel/blorp/blorp_clear.c @@ -61,6 +61,9 @@ blorp_params_get_clear_kernel_fs(struct blorp_batch *batch, .local_y = 0, }; + params->shader_type = blorp_key.base.shader_type; + params->shader_pipeline = blorp_key.base.shader_pipeline; + if (blorp->lookup_shader(batch, &blorp_key, sizeof(blorp_key), ¶ms->wm_prog_kernel, ¶ms->wm_prog_data)) return true; @@ -122,6 +125,9 @@ blorp_params_get_clear_kernel_cs(struct blorp_batch *batch, .local_y = blorp_get_cs_local_y(params), }; + params->shader_type = blorp_key.base.shader_type; + params->shader_pipeline = blorp_key.base.shader_pipeline; + if (blorp->lookup_shader(batch, &blorp_key, sizeof(blorp_key), ¶ms->cs_prog_kernel, ¶ms->cs_prog_data)) return true; diff --git a/src/intel/blorp/blorp_priv.h b/src/intel/blorp/blorp_priv.h index a5e8347f6dc..eea50fc2204 100644 --- a/src/intel/blorp/blorp_priv.h +++ b/src/intel/blorp/blorp_priv.h @@ -204,6 +204,20 @@ brw_blorp_get_urb_length(const struct brw_wm_prog_data *prog_data) return MAX2((prog_data->num_varying_inputs + 1) / 2, 1); } +enum blorp_shader_type { + BLORP_SHADER_TYPE_COPY, + BLORP_SHADER_TYPE_BLIT, + BLORP_SHADER_TYPE_CLEAR, + BLORP_SHADER_TYPE_MCS_PARTIAL_RESOLVE, + BLORP_SHADER_TYPE_LAYER_OFFSET_VS, + BLORP_SHADER_TYPE_GFX4_SF, +}; + +enum blorp_shader_pipeline { + BLORP_SHADER_PIPELINE_RENDER, + BLORP_SHADER_PIPELINE_COMPUTE, +}; + struct blorp_params { uint32_t x0; @@ -239,25 +253,13 @@ struct blorp_params bool use_pre_baked_binding_table; uint32_t pre_baked_binding_table_offset; + enum blorp_shader_type shader_type; + enum blorp_shader_pipeline shader_pipeline; enum intel_measure_snapshot_type snapshot_type; }; 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, - BLORP_SHADER_TYPE_LAYER_OFFSET_VS, - BLORP_SHADER_TYPE_GFX4_SF, -}; - -enum blorp_shader_pipeline { - BLORP_SHADER_PIPELINE_RENDER, - BLORP_SHADER_PIPELINE_COMPUTE, -}; - struct brw_blorp_base_key { char name[8]; @@ -409,6 +411,7 @@ void brw_blorp_init_wm_prog_key(struct brw_wm_prog_key *wm_key); void brw_blorp_init_cs_prog_key(struct brw_cs_prog_key *cs_key); const char *blorp_shader_type_to_name(enum blorp_shader_type type); +const char *blorp_shader_pipeline_to_name(enum blorp_shader_pipeline pipe); const unsigned * blorp_compile_fs(struct blorp_context *blorp, void *mem_ctx,