diff options
author | Jason Ekstrand <jason.ekstrand@intel.com> | 2017-06-17 13:50:30 -0700 |
---|---|---|
committer | Juan A. Suarez Romero <jasuarez@igalia.com> | 2017-09-20 22:54:11 +0200 |
commit | 1fb09613fc8907daaceeb7698d72e972430447a6 (patch) | |
tree | adddbb553e670831c90986347627c9d8baa09d2a | |
parent | a13241d28ba5bf025b7d43813aeacf466c98dd27 (diff) |
i965/blorp: Set r8stencil_needs_update when writing stencil
This fixes a crash on Haswell when we try to upload a stencil texture
with blorp. It would also be a problem if someone tried to texture from
stencil after glBlitFramebuffers.
Cc: "17.2 17.1" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
(cherry picked from commit a43d379000260485fc4b2b03b069aedc46879557)
[Juan A. Suarez: resolve trivial conflicts]
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Conflicts:
src/mesa/drivers/dri/i965/brw_blorp.c
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_blorp.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_blorp.c b/src/mesa/drivers/dri/i965/brw_blorp.c index e550ce5910b..7e6b5ce0a97 100644 --- a/src/mesa/drivers/dri/i965/brw_blorp.c +++ b/src/mesa/drivers/dri/i965/brw_blorp.c @@ -147,6 +147,8 @@ blorp_surf_for_miptree(struct brw_context *brw, unsigned start_layer, unsigned num_layers, struct isl_surf tmp_surfs[2]) { + const struct gen_device_info *devinfo = &brw->screen->devinfo; + if (mt->msaa_layout == INTEL_MSAA_LAYOUT_UMS || mt->msaa_layout == INTEL_MSAA_LAYOUT_CMS) { const unsigned num_samples = MAX2(1, mt->num_samples); @@ -192,6 +194,10 @@ blorp_surf_for_miptree(struct brw_context *brw, struct isl_surf *aux_surf = &tmp_surfs[1]; intel_miptree_get_aux_isl_surf(brw, mt, aux_surf, &surf->aux_usage); + if (mt->format == MESA_FORMAT_S_UINT8 && is_render_target && + devinfo->gen <= 7) + mt->r8stencil_needs_update = true; + if (surf->aux_usage != ISL_AUX_USAGE_NONE) { if (surf->aux_usage == ISL_AUX_USAGE_HIZ) { /* If we're not going to use it as a depth buffer, resolve HiZ */ |