[Mesa-dev] [PATCH 1/5] i965/surface_formats: Don't advertise 8 or 16-bit RGB formats

Ilia Mirkin imirkin at alum.mit.edu
Wed Jul 27 05:09:30 UTC 2016


On Wed, Jul 27, 2016 at 1:04 AM, Jason Ekstrand <jason at jlekstrand.net> 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
> 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

advertise

You might also want to exclude RGB32. It's required for texture
buffers (GL 4.0+), but not for renderable surfaces.

> +       * 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


More information about the mesa-dev mailing list