rusticl/device: restrict 1Dbuffer images for RGB and RGBx
authorKarol Herbst <kherbst@redhat.com>
Sun, 15 Oct 2023 14:00:30 +0000 (16:00 +0200)
committerMarge Bot <emma+marge@anholt.net>
Sun, 15 Oct 2023 21:28:15 +0000 (21:28 +0000)
Fixes: 20c90fed5a0 ("rusticl: added")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25739>

src/gallium/frontends/rusticl/core/device.rs

index 36d3af8..2565598 100644 (file)
@@ -252,6 +252,16 @@ impl Device {
         for f in FORMATS {
             let mut fs = HashMap::new();
             for t in CL_IMAGE_TYPES {
+                // the CTS doesn't test them, so let's not advertize them by accident if they are
+                // broken
+                if t == CL_MEM_OBJECT_IMAGE1D_BUFFER
+                    && [CL_RGB, CL_RGBx].contains(&f.cl_image_format.image_channel_order)
+                    && ![CL_UNORM_SHORT_565, CL_UNORM_SHORT_555]
+                        .contains(&f.cl_image_format.image_channel_data_type)
+                {
+                    continue;
+                }
+
                 let mut flags: cl_uint = 0;
                 if self.screen.is_format_supported(
                     f.pipe,