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

Author: Eric Anholt <[email protected]>
Date:   Thu Jul 12 12:48:58 2012 -0700

i965: Add INTEL_DEBUG=perf for failure to compile 16-wide shaders.

Reviewed-by: Jordan Justen <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>

---

 src/mesa/drivers/dri/i965/brw_fs.cpp              |    5 ++++-
 src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp |    3 ++-
 src/mesa/drivers/dri/intel/intel_context.h        |    5 +++++
 3 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp 
b/src/mesa/drivers/dri/i965/brw_fs.cpp
index e8ee0cb..334a14c 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -2096,7 +2096,10 @@ brw_wm_fs_emit(struct brw_context *brw, struct 
brw_wm_compile *c,
       c->dispatch_width = 16;
       fs_visitor v2(c, prog, shader);
       v2.import_uniforms(&v);
-      v2.run();
+      if (!v2.run()) {
+         perf_debug("16-wide shader failed to compile, falling back to "
+                    "8-wide at a 10-20%% performance cost: %s", v2.fail_msg);
+      }
    }
 
    c->prog_data.dispatch_width = 8;
diff --git a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp 
b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
index 7618047..e7f11ae 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
@@ -238,7 +238,8 @@ fs_visitor::assign_regs()
       if (reg == -1) {
         fail("no register to spill\n");
       } else if (c->dispatch_width == 16) {
-        fail("no spilling support on 16-wide yet\n");
+        fail("Failure to register allocate.  Reduce number of live scalar "
+              "values to avoid this.");
       } else {
         spill_reg(reg);
       }
diff --git a/src/mesa/drivers/dri/intel/intel_context.h 
b/src/mesa/drivers/dri/intel/intel_context.h
index 49db119..063cc34 100644
--- a/src/mesa/drivers/dri/intel/intel_context.h
+++ b/src/mesa/drivers/dri/intel/intel_context.h
@@ -464,6 +464,11 @@ extern int INTEL_DEBUG;
                printf(__VA_ARGS__);                            \
 } while(0)
 
+#define perf_debug(...) do {                                   \
+       if (unlikely(INTEL_DEBUG & DEBUG_PERF))                 \
+               printf(__VA_ARGS__);                            \
+} while(0)
+
 #define PCI_CHIP_845_G                 0x2562
 #define PCI_CHIP_I830_M                        0x3577
 #define PCI_CHIP_I855_GM               0x3582

_______________________________________________
mesa-commit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to