This was useful in identifying blit vs copy kernels.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6909>
#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)
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);
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,
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());
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);
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());
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,
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,