[Mesa-dev] [PATCH 05/11] i965: provide stable message id's for shader_debug_log
Mark Janes
mark.a.janes at intel.com
Fri Dec 7 00:35:46 UTC 2018
KHR_debug indicates that message id's can be used to filter debug
logs. Mesa incorrectly generates incrementing message id's for each
message in shader_debug_log. The ids must be stable if they are to be
used for filtering.
_mesa_gl_vdebug expects the address of a static GLuint, which is
assigned at the first log event and remains stable for subsequent
events.
---
src/intel/compiler/brw_compiler.h | 2 +-
src/intel/compiler/brw_fs_generator.cpp | 3 ++-
src/intel/compiler/brw_vec4_generator.cpp | 3 ++-
src/intel/vulkan/anv_device.c | 2 +-
src/mesa/drivers/dri/i965/intel_screen.c | 5 ++---
5 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/intel/compiler/brw_compiler.h b/src/intel/compiler/brw_compiler.h
index e4f4d83c8e8..ca9d41ca7a8 100644
--- a/src/intel/compiler/brw_compiler.h
+++ b/src/intel/compiler/brw_compiler.h
@@ -89,7 +89,7 @@ struct brw_compiler {
int aligned_pairs_class;
} fs_reg_sets[3];
- void (*shader_debug_log)(void *, const char *str, ...) PRINTFLIKE(2, 3);
+ void (*shader_debug_log)(void *, GLuint *msg_id, const char *str, ...) PRINTFLIKE(3, 4);
void (*shader_perf_log)(void *, const char *str, ...) PRINTFLIKE(2, 3);
bool scalar_stage[MESA_SHADER_STAGES];
diff --git a/src/intel/compiler/brw_fs_generator.cpp b/src/intel/compiler/brw_fs_generator.cpp
index ebf63b07837..a8618912cf4 100644
--- a/src/intel/compiler/brw_fs_generator.cpp
+++ b/src/intel/compiler/brw_fs_generator.cpp
@@ -2476,7 +2476,8 @@ fs_generator::generate_code(const cfg_t *cfg, int dispatch_width)
ralloc_free(disasm_info);
assert(validated);
- compiler->shader_debug_log(log_data,
+ static GLuint msg_id = 0;
+ compiler->shader_debug_log(log_data, &msg_id,
"%s SIMD%d shader: %d inst, %d loops, %u cycles, "
"%d:%d spills:fills, Promoted %u constants, "
"compacted %d to %d bytes.",
diff --git a/src/intel/compiler/brw_vec4_generator.cpp b/src/intel/compiler/brw_vec4_generator.cpp
index ee232cbf96e..00c89b21daf 100644
--- a/src/intel/compiler/brw_vec4_generator.cpp
+++ b/src/intel/compiler/brw_vec4_generator.cpp
@@ -2211,7 +2211,8 @@ generate_code(struct brw_codegen *p,
ralloc_free(disasm_info);
assert(validated);
- compiler->shader_debug_log(log_data,
+ static GLuint msg_id = 0;
+ compiler->shader_debug_log(log_data, &msg_id,
"%s vec4 shader: %d inst, %d loops, %u cycles, "
"%d:%d spills:fills, compacted %d to %d bytes.",
stage_abbrev, before_size / 16,
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index 6b5ba25c6bc..e60f7327ec1 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -45,7 +45,7 @@
#include "genxml/gen7_pack.h"
static void
-compiler_debug_log(void *data, const char *fmt, ...)
+compiler_debug_log(void *data, GLuint *id, const char *fmt, ...)
{ }
static void
diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c
index c0201357869..6b54767f8dd 100644
--- a/src/mesa/drivers/dri/i965/intel_screen.c
+++ b/src/mesa/drivers/dri/i965/intel_screen.c
@@ -2389,14 +2389,13 @@ intel_device_get_revision(int fd)
}
static void
-shader_debug_log_mesa(void *data, const char *fmt, ...)
+shader_debug_log_mesa(void *data, GLuint *msg_id, const char *fmt, ...)
{
struct brw_context *brw = (struct brw_context *)data;
va_list args;
va_start(args, fmt);
- GLuint msg_id = 0;
- _mesa_gl_vdebugf(&brw->ctx, &msg_id,
+ _mesa_gl_vdebugf(&brw->ctx, msg_id,
MESA_DEBUG_SOURCE_SHADER_COMPILER,
MESA_DEBUG_TYPE_OTHER,
MESA_DEBUG_SEVERITY_NOTIFICATION, fmt, args);
--
2.19.2
More information about the mesa-dev
mailing list