diff --git a/.pick_status.json b/.pick_status.json index 1eb43b0f80f..0f642d3823b 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -274,7 +274,7 @@ "description": "blorp: Ensure aligned HIZ_CCS_WT partial clears", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "5425fcf2cb39dc9df56593d4460b56688506c0cc" }, diff --git a/src/intel/blorp/blorp_clear.c b/src/intel/blorp/blorp_clear.c index 7c7796d0b12..202d3839f73 100644 --- a/src/intel/blorp/blorp_clear.c +++ b/src/intel/blorp/blorp_clear.c @@ -834,11 +834,12 @@ blorp_can_hiz_clear_depth(const struct gen_device_info *devinfo, const bool unaligned = (slice_x0 + x0) % 16 || (slice_y0 + y0) % 8 || (max_x1_y1 ? haligned_x1 % 16 || valigned_y1 % 8 : x1 % 16 || y1 % 8); - const bool alignment_used = surf->levels > 1 || - surf->logical_level0_px.depth > 1 || - surf->logical_level0_px.array_len > 1; + const bool partial_clear = x0 > 0 || y0 > 0 || !max_x1_y1; + const bool multislice_surf = surf->levels > 1 || + surf->logical_level0_px.depth > 1 || + surf->logical_level0_px.array_len > 1; - if (unaligned && alignment_used) + if (unaligned && (partial_clear || multislice_surf)) return false; }