[Mesa-dev] [PATCH 2/3] i965: Add perf debug for depth/stencil alignment workaround.

Eric Anholt eric at anholt.net
Tue Dec 18 15:03:39 PST 2012


Fixing these rendering bugs has been implicated in performance
regressions (which may be unfixable), but at least knowing that it's
happening should help diagnose those regressions.
---
 src/mesa/drivers/dri/i965/brw_misc_state.c |   16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_misc_state.c b/src/mesa/drivers/dri/i965/brw_misc_state.c
index b0a1918..d7724e3 100644
--- a/src/mesa/drivers/dri/i965/brw_misc_state.c
+++ b/src/mesa/drivers/dri/i965/brw_misc_state.c
@@ -370,6 +370,10 @@ brw_workaround_depthstencil_alignment(struct brw_context *brw)
       }
 
       if (rebase_depth) {
+         perf_debug("HW workaround: blitting depth level %d to a temporary "
+                    "to fix alignment (depth tile offset %d,%d)\n",
+                    depth_irb->mt_level, tile_x, tile_y);
+
          intel_renderbuffer_move_to_temp(intel, depth_irb);
          /* In the case of stencil_irb being the same packed depth/stencil
           * texture but not the same rb, make it point at our rebased mt, too.
@@ -427,6 +431,10 @@ brw_workaround_depthstencil_alignment(struct brw_context *brw)
    }
 
    if (rebase_stencil) {
+      perf_debug("HW workaround: blitting stencil level %d to a temporary "
+                 "to fix alignment (stencil tile offset %d,%d)\n",
+                 stencil_irb->mt_level, stencil_tile_x, stencil_tile_y);
+
       intel_renderbuffer_move_to_temp(intel, stencil_irb);
       stencil_mt = get_stencil_miptree(stencil_irb);
 
@@ -443,6 +451,14 @@ brw_workaround_depthstencil_alignment(struct brw_context *brw)
       } else if (depth_irb && !rebase_depth) {
          if (tile_x != stencil_tile_x ||
              tile_y != stencil_tile_y) {
+            perf_debug("HW workaround: blitting depth level %d to a temporary "
+                       "to match stencil level %d alignment (depth tile offset "
+                       "%d,%d, stencil offset %d,%d)\n",
+                       depth_irb->mt_level,
+                       stencil_irb->mt_level,
+                       tile_x, tile_y,
+                       stencil_tile_x, stencil_tile_y);
+
             intel_renderbuffer_move_to_temp(intel, depth_irb);
 
             tile_x = depth_irb->draw_x & tile_mask_x;
-- 
1.7.10.4



More information about the mesa-dev mailing list