anv: Use RCS engine for copying stencil resource for gfx125

HSD 14021541470 lists a HW bug on blitter engine where the compression pairing bit is
not programmed correctly for stencil resources.

Use RCS Engine to perform copy instead.

Signed-off-by: Aditya Swarup <aditya.swarup@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31792>
This commit is contained in:
Aditya Swarup 2024-10-22 16:11:37 -07:00 committed by Marge Bot
parent 5fea98c4a1
commit e98759c7f4

View file

@ -513,6 +513,8 @@ static bool
anv_blorp_execute_on_companion(struct anv_cmd_buffer *cmd_buffer,
struct anv_image *dst_image)
{
const struct intel_device_info *devinfo = cmd_buffer->device->info;
/* MSAA images have to be dealt with on the companion RCS command buffer
* for both CCS && BCS engines.
*/
@ -528,6 +530,21 @@ anv_blorp_execute_on_companion(struct anv_cmd_buffer *cmd_buffer,
dst_image->emu_plane_format != VK_FORMAT_UNDEFINED)
return true;
/* HSD 14021541470:
* The compression pairing bit on blitter engine is not programmed correctly
* for stencil resources. Fallback to RCS engine for performing a copy to
* workaround the issue.
*/
if ((devinfo->verx10 == 125) &&
(dst_image->vk.aspects & VK_IMAGE_ASPECT_STENCIL_BIT)) {
const uint32_t plane =
anv_image_aspect_to_plane(dst_image, VK_IMAGE_ASPECT_STENCIL_BIT);
if (isl_aux_usage_has_compression(dst_image->planes[plane].aux_usage))
return true;
}
return false;
}