This is basically what we do in i965 only we support two SRGB formats.

Acked-by: Jason Ekstrand <[email protected]>

On Fri, Aug 31, 2018 at 11:37 AM Daniel Stone <[email protected]> wrote:

> Though the SARGB8888 format is used internally through its FourCC value,
> it is not a real format as defined by drm_fourcc.h; it cannot be used
> with KMS or other interfaces expecting drm_fourcc.h format codes.
>
> Ensure we don't advertise it through the dmabuf format/modifier query
> interfaces, preventing us from tripping over an assert.
>
> Signed-off-by: Daniel Stone <[email protected]>
> Reported-by: Michel Dänzer <[email protected]>
> Fixes: 8c1b9882b2e0 ("egl/dri2: Guard against invalid fourcc formats")
> Cc: Jason Ekstrand <[email protected]>
> ---
>  src/gallium/state_trackers/dri/dri2.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/src/gallium/state_trackers/dri/dri2.c
> b/src/gallium/state_trackers/dri/dri2.c
> index 2ac32205d9a..c8a484e3926 100644
> --- a/src/gallium/state_trackers/dri/dri2.c
> +++ b/src/gallium/state_trackers/dri/dri2.c
> @@ -1485,6 +1485,12 @@ dri2_query_dma_buf_formats(__DRIscreen *_screen,
> int max, int *formats,
>
>     for (i = 0, j = 0; (i < ARRAY_SIZE(fourcc_formats)) &&
>           (j < max || max == 0); i++) {
> +      /* The sRGB format is not a real FourCC as defined by drm_fourcc.h,
> so we
> +       * must not leak it out to clients.
> +       */
> +      if (fourcc_formats[i] == __DRI_IMAGE_FOURCC_SARGB8888)
> +         continue;
> +
>        if (pscreen->is_format_supported(pscreen,
>                                         fourcc_to_pipe_format(
>                                            fourcc_formats[i]),
> --
> 2.17.1
>
> _______________________________________________
> mesa-dev mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to