From 74cf188985f4556a998570ac97b637c0c553d3c6 Mon Sep 17 00:00:00 2001 From: Nanley Chery Date: Fri, 8 Jun 2018 17:50:39 -0700 Subject: [PATCH] i965/miptree: Init r8stencil_needs_update to false 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 --- 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 820c1d85934..b537e2bf4fd 100644 --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c @@ -668,8 +668,6 @@ make_separate_stencil_surface(struct brw_context *brw, if (!mt->stencil_mt) return false; - mt->stencil_mt->r8stencil_needs_update = true; - return true; } @@ -2933,7 +2931,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); @@ -2957,6 +2955,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.30.2