[Mesa-dev] [RFC 1/2] intel/isl: Disable some gen10 CCS_E formats for now
Nanley Chery
nanleychery at gmail.com
Fri Oct 27 22:18:30 UTC 2017
On Fri, Oct 27, 2017 at 12:50:45PM -0700, Jason Ekstrand wrote:
> Thanks for doing this in isl_format_supports_ccs_e instead of changing the
> table!
>
> Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
>
Thank you for the review!
> 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
> >
> >
More information about the mesa-dev
mailing list