[Mesa-dev] [PATCH 02/43] i965: Use blorp_copy for doing r8 stencil updates on HSW

Jason Ekstrand jason at jlekstrand.net
Tue May 16 22:44:56 UTC 2017


The blorp_copy entrypoint is designed for doing memcpy like operations
which is what we need to do here while blorp_blit is for handling format
conversion and scaling.  Using blorp_copy is much simpler and prevents
us from getting formats wrong.  While we're here, we get rid of the
layers_per_blit thing since stencil always uses interleaved MSAA.
---
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 19 ++++---------------
 1 file changed, 4 insertions(+), 15 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index db0a397..24d01aa 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -2397,25 +2397,14 @@ intel_update_r8stencil(struct brw_context *brw,
 
    for (int level = src->first_level; level <= src->last_level; level++) {
       const unsigned depth = src->level[level].depth;
-      const int layers_per_blit =
-         (dst->msaa_layout == INTEL_MSAA_LAYOUT_UMS ||
-          dst->msaa_layout == INTEL_MSAA_LAYOUT_CMS) ?
-         dst->num_samples : 1;
 
       for (unsigned layer = 0; layer < depth; layer++) {
-         brw_blorp_blit_miptrees(brw,
+         brw_blorp_copy_miptrees(brw,
                                  src, level, layer,
-                                 src->format, SWIZZLE_X,
-                                 dst, level, layers_per_blit * layer,
-                                 MESA_FORMAT_R_UNORM8,
-                                 0, 0,
+                                 dst, level, layer,
+                                 0, 0, 0, 0,
                                  minify(src->logical_width0, level),
-                                 minify(src->logical_height0, level),
-                                 0, 0,
-                                 minify(dst->logical_width0, level),
-                                 minify(dst->logical_height0, level),
-                                 GL_NEAREST, false, false /*mirror x, y*/,
-                                 false, false /* decode/encode srgb */);
+                                 minify(src->logical_height0, level));
       }
    }
 
-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list