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:
@@ -513,6 +513,8 @@ static bool
|
|||||||
anv_blorp_execute_on_companion(struct anv_cmd_buffer *cmd_buffer,
|
anv_blorp_execute_on_companion(struct anv_cmd_buffer *cmd_buffer,
|
||||||
struct anv_image *dst_image)
|
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
|
/* MSAA images have to be dealt with on the companion RCS command buffer
|
||||||
* for both CCS && BCS engines.
|
* 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)
|
dst_image->emu_plane_format != VK_FORMAT_UNDEFINED)
|
||||||
return true;
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user