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

2017-10-27 Thread Nanley Chery
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 
> 

Thank you for the review!

> On Fri, Oct 27, 2017 at 12:24 PM, Nanley Chery 
> 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 
> > Cc: Jason Ekstrand 
> > ---
> >
> > 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
> >
> >
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


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

2017-10-27 Thread Jason Ekstrand
Thanks for doing this in isl_format_supports_ccs_e instead of changing the
table!

Reviewed-by: Jason Ekstrand 

On Fri, Oct 27, 2017 at 12:24 PM, Nanley Chery 
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 
> Cc: Jason Ekstrand 
> ---
>
> 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
>
>
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


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

2017-10-27 Thread Nanley Chery
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 
Cc: Jason Ekstrand 
---

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

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev