From: Jason Ekstrand Date: Fri, 2 Jun 2017 17:36:04 +0000 (-0700) Subject: intel/isl: Properly set SeparateStencilBufferEnable on gen5-6 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=96f9d4de7d7af65570c7d7b33666933bcb95aaa7;p=mesa.git intel/isl: Properly set SeparateStencilBufferEnable on gen5-6 On gen5-6, SeparateStencilBufferEnable and HierarchicalDepthBufferEnable come hand in hand and we have to set either both or neither. Reviewed-by: Samuel Iglesias Gonsálvez --- diff --git a/src/intel/isl/isl_emit_depth_stencil.c b/src/intel/isl/isl_emit_depth_stencil.c index 339da28bb84..0d541fd1ce5 100644 --- a/src/intel/isl/isl_emit_depth_stencil.c +++ b/src/intel/isl/isl_emit_depth_stencil.c @@ -113,6 +113,16 @@ isl_genX(emit_depth_stencil_hiz_s)(const struct isl_device *dev, void *batch, #endif } +#if GEN_GEN == 5 || GEN_GEN == 6 + const bool separate_stencil = + info->stencil_surf && info->stencil_surf->format == ISL_FORMAT_R8_UINT; + if (separate_stencil || info->hiz_usage == ISL_AUX_USAGE_HIZ) { + assert(ISL_DEV_USE_SEPARATE_STENCIL(dev)); + db.SeparateStencilBufferEnable = true; + db.HierarchicalDepthBufferEnable = true; + } +#endif + #if GEN_GEN >= 6 struct GENX(3DSTATE_STENCIL_BUFFER) sb = { GENX(3DSTATE_STENCIL_BUFFER_header), @@ -151,9 +161,6 @@ isl_genX(emit_depth_stencil_hiz_s)(const struct isl_device *dev, void *batch, info->hiz_usage == ISL_AUX_USAGE_HIZ); if (info->hiz_usage == ISL_AUX_USAGE_HIZ) { db.HierarchicalDepthBufferEnable = true; -#if GEN_GEN == 5 || GEN_GEN == 6 - db.SeparateStencilBufferEnable = true; -#endif hiz.SurfaceBaseAddress = info->hiz_address; hiz.HierarchicalDepthBufferMOCS = info->mocs;