[Mesa-dev] [PATCH 1/5] i965/surface_formats: Don't advertise 8 or 16-bit RGB formats
Jason Ekstrand
jason at jlekstrand.net
Thu Aug 11 23:23:51 UTC 2016
On Thu, Aug 11, 2016 at 11:26 AM, Nanley Chery <nanleychery at gmail.com>
wrote:
> On Tue, Jul 26, 2016 at 10:04:22PM -0700, Jason Ekstrand wrote:
> > We have implicitly been not advertising these formats since we had them
> > turned off in the format capabilities table. We are about to update that
> > table and this prevents a change in behavior. The only change in
> behavior
> > created by this patch is that we no longer advertise support for
> > R16G16B16_FLOAT which means that it's now renderable which seems like a
> > bonus. Maybe someday we'll want to change things to start supporting
>
> I don't understand this sentence. Assuming "renderable" means that we can
> render to a texture with such a format, why does preventing the user from
> creating an R16G16B16_FLOAT texture mean that it's now renderable?
>
Because mesa will fall back to R16G16B16A16_FLOAT and fake RGB. That
format is renderable.
>
> - Nanley
>
> > 16-bit RGB formats natively but, at the moment, there's no need.
> > ---
> > src/mesa/drivers/dri/i965/brw_surface_formats.c | 10 ++++++++++
> > 1 file changed, 10 insertions(+)
> >
> > diff --git a/src/mesa/drivers/dri/i965/brw_surface_formats.c
> b/src/mesa/drivers/dri/i965/brw_surface_formats.c
> > index 2543f4b..69d3bd4 100644
> > --- a/src/mesa/drivers/dri/i965/brw_surface_formats.c
> > +++ b/src/mesa/drivers/dri/i965/brw_surface_formats.c
> > @@ -311,6 +311,16 @@ brw_init_surface_formats(struct brw_context *brw)
> > if (texture == 0 && format != MESA_FORMAT_RGBA_FLOAT32)
> > continue;
> >
> > + /* Don't advertisel 8 and 16-bit RGB formats to core mesa. This
> ensures
> > + * that they are renderable from an API perspective since core
> mesa will
> > + * fall back to RGBA or RGBX (we can't render to non-power-of-two
> > + * formats). For 8-bit, formats, this also keeps us from hitting
> some
> > + * nasty corners in intel_miptree_map_blit if you ever try to map
> one.
> > + */
> > + int format_size = _mesa_get_format_bytes(format);
> > + if (format_size == 3 || format_size == 6)
> > + continue;
> > +
> > if (isl_format_supports_sampling(devinfo, texture) &&
> > (isl_format_supports_filtering(devinfo, texture) ||
> is_integer))
> > ctx->TextureFormatSupported[format] = true;
> > --
> > 2.5.0.400.gff86faf
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160811/bbfd35ae/attachment-0001.html>
More information about the mesa-dev
mailing list