Module: Mesa
Branch: master
Commit: 4f8d1af0f6f45e4f62c9456b018e9945df1e6054
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4f8d1af0f6f45e4f62c9456b018e9945df1e6054

Author: Kenneth Graunke <kenn...@whitecape.org>
Date:   Fri Sep 15 17:47:07 2017 -0700

i965: Add an INTEL_DEBUG=reemit option.

Jason and I use this for debugging all the time.  Recompiling the driver
to enable it is kind of annoying.  It's a great thing to try along with
always_flush_batch=true and always_flush_cache=true to detect a class of
problems - namely, atoms listening to an insufficient set of dirty bits.

Reviewed-by: Matt Turner <matts...@gmail.com>

---

 docs/envvars.html                            | 1 +
 src/intel/common/gen_debug.c                 | 1 +
 src/intel/common/gen_debug.h                 | 1 +
 src/mesa/drivers/dri/i965/brw_state_upload.c | 2 +-
 4 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/docs/envvars.html b/docs/envvars.html
index 6c2bdab155..ea42a50779 100644
--- a/docs/envvars.html
+++ b/docs/envvars.html
@@ -192,6 +192,7 @@ See the <a href="xlibdriver.html">Xlib software driver 
page</a> for details.
    <li>perfmon - emit messages about AMD_performance_monitor</li>
    <li>pix - emit messages about pixel operations</li>
    <li>prim - emit messages about drawing primitives</li>
+   <li>reemit - mark all state dirty on each draw call</li>
    <li>sf - emit messages about the strips &amp; fans unit (for old gens, 
includes the SF program)</li>
    <li>shader_time - record how much GPU time is spent in each shader</li>
    <li>spill_fs - force spilling of all registers in the scalar backend 
(useful to debug spilling code)</li>
diff --git a/src/intel/common/gen_debug.c b/src/intel/common/gen_debug.c
index 4677bfd582..f58c593c44 100644
--- a/src/intel/common/gen_debug.c
+++ b/src/intel/common/gen_debug.c
@@ -83,6 +83,7 @@ static const struct debug_control debug_control[] = {
    { "norbc",       DEBUG_NO_RBC },
    { "nohiz",       DEBUG_NO_HIZ },
    { "color",       DEBUG_COLOR },
+   { "reemit",      DEBUG_REEMIT },
    { NULL,    0 }
 };
 
diff --git a/src/intel/common/gen_debug.h b/src/intel/common/gen_debug.h
index da98f852a4..e418e3fb16 100644
--- a/src/intel/common/gen_debug.h
+++ b/src/intel/common/gen_debug.h
@@ -82,6 +82,7 @@ extern uint64_t INTEL_DEBUG;
 #define DEBUG_NO_RBC              (1ull << 38)
 #define DEBUG_NO_HIZ              (1ull << 39)
 #define DEBUG_COLOR               (1ull << 40)
+#define DEBUG_REEMIT              (1ull << 41)
 
 #ifdef HAVE_ANDROID_PLATFORM
 #define LOG_TAG "INTEL-MESA"
diff --git a/src/mesa/drivers/dri/i965/brw_state_upload.c 
b/src/mesa/drivers/dri/i965/brw_state_upload.c
index 7b31aad170..2834cca639 100644
--- a/src/mesa/drivers/dri/i965/brw_state_upload.c
+++ b/src/mesa/drivers/dri/i965/brw_state_upload.c
@@ -480,7 +480,7 @@ brw_upload_pipeline_state(struct brw_context *brw,
 
    brw_select_pipeline(brw, pipeline);
 
-   if (0) {
+   if (unlikely(INTEL_DEBUG & DEBUG_REEMIT)) {
       /* Always re-emit all state. */
       brw->NewGLState = ~0;
       ctx->NewDriverState = ~0ull;

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to