<div dir="ltr"><div>This is basically what we do in i965 only we support two SRGB formats.<br></div><div><br></div><div>Acked-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Aug 31, 2018 at 11:37 AM Daniel Stone <<a href="mailto:daniels@collabora.com">daniels@collabora.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Though the SARGB8888 format is used internally through its FourCC value,<br>
it is not a real format as defined by drm_fourcc.h; it cannot be used<br>
with KMS or other interfaces expecting drm_fourcc.h format codes.<br>
<br>
Ensure we don't advertise it through the dmabuf format/modifier query<br>
interfaces, preventing us from tripping over an assert.<br>
<br>
Signed-off-by: Daniel Stone <<a href="mailto:daniels@collabora.com" target="_blank">daniels@collabora.com</a>><br>
Reported-by: Michel Dänzer <<a href="mailto:michel.daenzer@amd.com" target="_blank">michel.daenzer@amd.com</a>><br>
Fixes: 8c1b9882b2e0 ("egl/dri2: Guard against invalid fourcc formats")<br>
Cc: Jason Ekstrand <<a href="mailto:jason.ekstrand@intel.com" target="_blank">jason.ekstrand@intel.com</a>><br>
---<br>
 src/gallium/state_trackers/dri/dri2.c | 6 ++++++<br>
 1 file changed, 6 insertions(+)<br>
<br>
diff --git a/src/gallium/state_trackers/dri/dri2.c b/src/gallium/state_trackers/dri/dri2.c<br>
index 2ac32205d9a..c8a484e3926 100644<br>
--- a/src/gallium/state_trackers/dri/dri2.c<br>
+++ b/src/gallium/state_trackers/dri/dri2.c<br>
@@ -1485,6 +1485,12 @@ dri2_query_dma_buf_formats(__DRIscreen *_screen, int max, int *formats,<br>
<br>
    for (i = 0, j = 0; (i < ARRAY_SIZE(fourcc_formats)) &&<br>
          (j < max || max == 0); i++) {<br>
+      /* The sRGB format is not a real FourCC as defined by drm_fourcc.h, so we<br>
+       * must not leak it out to clients.<br>
+       */<br>
+      if (fourcc_formats[i] == __DRI_IMAGE_FOURCC_SARGB8888)<br>
+         continue;<br>
+<br>
       if (pscreen->is_format_supported(pscreen,<br>
                                        fourcc_to_pipe_format(<br>
                                           fourcc_formats[i]),<br>
-- <br>
2.17.1<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div>