From 69b73e807fc4f9a36d586ff7566fcf079cff5438 Mon Sep 17 00:00:00 2001 From: Felix DeGrood Date: Fri, 9 Aug 2024 16:39:26 +0000 Subject: [PATCH] iris: add INTEL_DEBUG=shaders-lineno MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: José Roberto de Souza Part-of: --- src/gallium/drivers/iris/iris_program_cache.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/gallium/drivers/iris/iris_program_cache.c b/src/gallium/drivers/iris/iris_program_cache.c index 9912199b0b1..cc250e23a36 100644 --- a/src/gallium/drivers/iris/iris_program_cache.c +++ b/src/gallium/drivers/iris/iris_program_cache.c @@ -36,6 +36,7 @@ #include "pipe/p_screen.h" #include "util/u_atomic.h" #include "util/u_upload_mgr.h" +#include "compiler/brw_disasm.h" #include "compiler/nir/nir.h" #include "compiler/nir/nir_builder.h" #include "intel/compiler/brw_compiler.h" @@ -217,6 +218,19 @@ iris_upload_shader(struct iris_screen *screen, struct keybox *keybox = make_keybox(shader, cache_id, key, key_size); _mesa_hash_table_insert(driver_shaders, keybox, shader); } + + if (INTEL_DEBUG(DEBUG_SHADERS_LINENO) && screen->brw) { + int start = 0; + /* dump each simd variant of shader */ + while (start < shader->brw_prog_data->program_size) { + brw_disassemble_with_lineno(&screen->brw->isa, shader->stage, -1, + ish ? ish->source_hash : 0, assembly, start, + res->bo->address + shader->assembly.offset, + stderr); + start += align64(brw_disassemble_find_end(&screen->brw->isa, + assembly, start), 64); + } + } } bool