[Mesa-dev] [PATCH v2] i965/miptree: Init r8stencil_needs_update to false

Nanley Chery nanleychery at gmail.com
Thu Jul 12 04:27:23 UTC 2018


The current behavior masked two bugs where the flag was not set to true
after modifying the stencil texture. One case was a regression
introduced with commit bdbb527a65fc729e7a9319ae67de60d03d06c3fd and
another was a bug in the depthstencil mapping code. These have since
been fixed.

To prevent such bugs from being masked in the future, initialize
r8stencil_needs_update to false.

v2: Keep the delayed allocation.

Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com> (v1)
---
 src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
index 187f310d7d6..31f3182d5a5 100644
--- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
+++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
@@ -672,8 +672,6 @@ make_separate_stencil_surface(struct brw_context *brw,
    if (!mt->stencil_mt)
       return false;
 
-   mt->stencil_mt->r8stencil_needs_update = true;
-
    return true;
 }
 
@@ -2937,7 +2935,7 @@ intel_update_r8stencil(struct brw_context *brw,
    assert(devinfo->gen >= 7);
    struct intel_mipmap_tree *src =
       mt->format == MESA_FORMAT_S_UINT8 ? mt : mt->stencil_mt;
-   if (!src || devinfo->gen >= 8 || !src->r8stencil_needs_update)
+   if (!src || devinfo->gen >= 8)
       return;
 
    assert(src->surf.size > 0);
@@ -2961,6 +2959,9 @@ intel_update_r8stencil(struct brw_context *brw,
       assert(mt->r8stencil_mt);
    }
 
+   if (src->r8stencil_needs_update == false)
+      return;
+
    struct intel_mipmap_tree *dst = mt->r8stencil_mt;
 
    for (int level = src->first_level; level <= src->last_level; level++) {
-- 
2.18.0



More information about the mesa-dev mailing list