[Mesa-dev] [RFC 1/2] intel/isl: Disable some gen10 CCS_E formats for now

Jason Ekstrand jason at jlekstrand.net
Fri Oct 27 19:50:45 UTC 2017


Thanks for doing this in isl_format_supports_ccs_e instead of changing the
table!

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>

On Fri, Oct 27, 2017 at 12:24 PM, Nanley Chery <nanleychery at gmail.com>
wrote:

> CannonLake additionally supports R11G11B10_FLOAT and four 10-10-10-2
> formats with CCS_E. None of these formats fit within the current
> blorp_copy framework so disable them until support is added.
>
> Signed-off-by: Nanley Chery <nanley.g.chery at intel.com>
> Cc: Jason Ekstrand <jason at jlekstrand.net>
> ---
>
> Jason, do you think we modify blorp instead of moving forward with this
> patch? In any case, I've sent this to the list to add context to my next
> patch.
>
>  src/intel/isl/isl_format.c | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
>
> diff --git a/src/intel/isl/isl_format.c b/src/intel/isl/isl_format.c
> index fba3ac5e1a..03c591071b 100644
> --- a/src/intel/isl/isl_format.c
> +++ b/src/intel/isl/isl_format.c
> @@ -536,6 +536,30 @@ isl_format_supports_ccs_e(const struct
> gen_device_info *devinfo,
>     if (!format_info[format].exists)
>        return false;
>
> +   /* For simplicity, only report that a format supports CCS_E if blorp
> can
> +    * perform bit-for-bit copies with an image of that format while
> compressed.
> +    * This allows ISL users to avoid having to resolve the image before
> +    * performing such a copy. We may want to change this behavior in the
> +    * future.
> +    *
> +    * R11G11B10_FLOAT has no equivalent UINT format. Given how blorp_copy
> +    * currently works, bit-for-bit copy operations are not possible
> without an
> +    * intermediate resolve.
> +    */
> +   if (format == ISL_FORMAT_R11G11B10_FLOAT)
> +      return false;
> +
> +   /* blorp_copy currently doesn't support formats with different
> bit-widths
> +    * per-channel. Until that support is added, report that these formats
> don't
> +    * support CCS_E. FIXME: Add support for these formats.
> +    */
> +   if (format == ISL_FORMAT_B10G10R10A2_UNORM ||
> +       format == ISL_FORMAT_B10G10R10A2_UNORM_SRGB ||
> +       format == ISL_FORMAT_R10G10B10A2_UNORM ||
> +       format == ISL_FORMAT_R10G10B10A2_UINT) {
> +      return false;
> +   }
> +
>     return format_gen(devinfo) >= format_info[format].ccs_e;
>  }
>
> --
> 2.14.3
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20171027/6e9b1c00/attachment.html>


More information about the mesa-dev mailing list