[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