[Mesa-dev] [PATCH 6/7] i965/screen: Use RGBA non-sRGB formats for images

Lionel Landwerlin lionel.g.landwerlin at intel.com
Thu Jun 7 14:51:16 UTC 2018


Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

On 06/06/18 18:47, Jason Ekstrand wrote:
> Not all of the MESA_FORMAT and ISL_FORMAT helpers we use can properly
> handle RGBX formats.  Also, we don't want to make decisions based on
> those in the first place because we can't render to RGBA and we use the
> non-sRGB version to determine whether or not to allow CCS_E.
>
> Cc: mesa-stable at lists.freedesktop.org
> ---
>   src/mesa/drivers/dri/i965/intel_screen.c | 9 +++++++++
>   1 file changed, 9 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c
> index f681b221e7b..dbf0009cb02 100644
> --- a/src/mesa/drivers/dri/i965/intel_screen.c
> +++ b/src/mesa/drivers/dri/i965/intel_screen.c
> @@ -341,6 +341,10 @@ modifier_is_supported(const struct gen_device_info *devinfo,
>         }
>   
>         mesa_format format = driImageFormatToGLFormat(dri_format);
> +      /* Whether or not we support compression is based on the RGBA non-sRGB
> +       * version of the format.
> +       */
> +      format = _mesa_format_fallback_rgbx_to_rgba(format);
>         format = _mesa_get_srgb_format_linear(format);
>         if (!isl_format_supports_ccs_e(devinfo,
>                                        brw_isl_format_for_mesa_format(format)))
> @@ -1095,6 +1099,11 @@ intel_create_image_from_fds_common(__DRIscreen *dri_screen,
>         image->strides[index] = strides[index];
>   
>         mesa_format format = driImageFormatToGLFormat(f->planes[i].dri_format);
> +      /* The images we will create are actually based on the RGBA non-sRGB
> +       * version of the format.
> +       */
> +      format = _mesa_format_fallback_rgbx_to_rgba(format);
> +      format = _mesa_get_srgb_format_linear(format);
>   
>         ok = isl_surf_init(&screen->isl_dev, &surf,
>                            .dim = ISL_SURF_DIM_2D,




More information about the mesa-dev mailing list