[Mesa-dev] [PATCH v2 29/32] intel/isl: Disallow CCS on 3D surfaces with miptails
Pohjolainen, Topi
topi.pohjolainen at gmail.com
Mon Nov 19 19:03:15 UTC 2018
On Fri, Oct 12, 2018 at 01:46:59PM -0500, Jason Ekstrand wrote:
> ---
> src/intel/isl/isl.c | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
>
> diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c
> index df4fb94a6fe..2513d2e73d1 100644
> --- a/src/intel/isl/isl.c
> +++ b/src/intel/isl/isl.c
> @@ -2006,6 +2006,25 @@ isl_surf_get_ccs_surf(const struct isl_device *dev,
> if (isl_format_is_compressed(surf->format))
> return false;
>
> + /* From the workarounds section in the SKL PRM:
> + *
> + * "RCC cacheline is composed of X-adjacent 64B fragments instead of
> + * memory adjacent. This causes a single 128B cacheline to straddle
> + * multiple LODs inside the TYF MIPtail for 3D surfaces (beyond a
> + * certain slot number), leading to corruption when CCS is enabled for
> + * these LODs and RT is later bound as texture. WA: If
> + * RENDER_SURFACE_STATE.Surface Type = 3D and
> + * RENDER_SURFACE_STATE.Auxiliary Surface Mode != AUX_NONE and
> + * RENDER_SURFACE_STATE.Tiled ResourceMode is TYF or TYS, Set the value
> + * of RENDER_SURFACE_STATE.Mip Tail Start LOD to a mip that larger than
> + * those present in the surface (i.e. 15)"
> + *
> + * We simply disallow CCS on 3D surfaces with miptails.
> + */
> + if (surf->dim == ISL_SURF_DIM_3D &&
> + surf->miptail_start_level < surf->levels)
> + return false;
> +
> /* TODO: More conditions where it can fail. */
>
> enum isl_format ccs_format;
> --
> 2.19.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list