[Mesa-dev] [PATCH 6/7] i965: Complain about variable index lowering when INTEL_DEBUG=perf.

Kenneth Graunke kenneth at whitecape.org
Wed Sep 19 13:27:59 PDT 2012


Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
 src/mesa/drivers/dri/i965/brw_shader.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

Admittedly most of the other messages from INTEL_DEBUG=perf are hints for
application developers while this is a resounding "sorry, we suck."  But
it's still useful to know when games are hitting this, and can help people
know to yell at us until we fix it.

diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
index 99506d4..f2a691f 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -143,8 +143,14 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg)
       bool temp = stage == MESA_SHADER_FRAGMENT;
       bool uniform = stage == MESA_SHADER_FRAGMENT;
 
-      lower_variable_index_to_cond_assign(shader->ir,
-					  input, output, temp, uniform);
+      bool lowered_variable_indexing =
+         lower_variable_index_to_cond_assign(shader->ir,
+                                             input, output, temp, uniform);
+
+      if (unlikely((INTEL_DEBUG & DEBUG_PERF) && lowered_variable_indexing)) {
+         perf_debug("Unsupported form of variable indexing in FS; falling "
+                    "back to very inefficient code generation\n");
+      }
 
       /* FINISHME: Do this before the variable index lowering. */
       lower_ubo_reference(&shader->base, shader->ir);
-- 
1.7.11.4



More information about the mesa-dev mailing list