diff --git a/.pick_status.json b/.pick_status.json index c717ef51343..81ec445a684 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -409,7 +409,7 @@ "description": "isl: require hiz for depth surface in isl_surf_get_ccs_surf", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "752eefdb3db18389dba56dd7c4f9ca45ebe8fadd" }, diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c index 76a80eb1338..03284896704 100644 --- a/src/intel/isl/isl.c +++ b/src/intel/isl/isl.c @@ -2116,6 +2116,11 @@ isl_surf_get_ccs_surf(const struct isl_device *dev, return false; if (ISL_GFX_VER(dev) >= 12) { + /* With depth surfaces, HIZ is required for CCS. */ + if (surf->usage & ISL_SURF_USAGE_DEPTH_BIT && + aux_surf->tiling != ISL_TILING_HIZ) + return false; + enum isl_format ccs_format; switch (isl_format_get_layout(surf->format)->bpb) { case 8: ccs_format = ISL_FORMAT_GFX12_CCS_8BPP_Y0; break;