From: Lionel Landwerlin Date: Sun, 20 Feb 2022 18:46:17 +0000 (+0200) Subject: isl: don't set inconsistent fields for depth when using stencil only X-Git-Tag: upstream/23.3.3~9901 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3ca1fdc8b56c0cb6d3c8687d4d13ec594f5041f1;p=platform%2Fupstream%2Fmesa.git isl: don't set inconsistent fields for depth when using stencil only Since Gfx12+ 3DSTATE_STENCIL_BUFFER gained its own Width/Depth/Format/etc... fields. So don't set those fields but leave the address/pitch to 0. Issue found on simulation. Signed-off-by: Lionel Landwerlin Reviewed-by: Caio Oliveira Reviewed-by: Emma Anholt Cc: mesa-stable Part-of: --- diff --git a/src/intel/isl/isl_emit_depth_stencil.c b/src/intel/isl/isl_emit_depth_stencil.c index f1863fe..aaa2a8e 100644 --- a/src/intel/isl/isl_emit_depth_stencil.c +++ b/src/intel/isl/isl_emit_depth_stencil.c @@ -114,12 +114,20 @@ isl_genX(emit_depth_stencil_hiz_s)(const struct isl_device *dev, void *batch, if (db.SurfaceType == SURFTYPE_3D) db.Depth = info->depth_surf->logical_level0_px.depth - 1; } else if (info->stencil_surf) { + /* On Gfx12+ 3DSTATE_STENCIL_BUFFER has its own fields for all of + * this. No need to replicate it here. + */ +#if GFX_VER < 12 db.SurfaceType = isl_encode_ds_surftype[info->stencil_surf->dim]; db.SurfaceFormat = D32_FLOAT; db.Width = info->stencil_surf->logical_level0_px.width - 1; db.Height = info->stencil_surf->logical_level0_px.height - 1; if (db.SurfaceType == SURFTYPE_3D) db.Depth = info->stencil_surf->logical_level0_px.depth - 1; +#else + db.SurfaceType = SURFTYPE_NULL; + db.SurfaceFormat = D32_FLOAT; +#endif } else { db.SurfaceType = SURFTYPE_NULL; db.SurfaceFormat = D32_FLOAT;