panfrost: Fix clear color packing for 12-byte formats
authorIcecream95 <ixn@disroot.org>
Wed, 3 Feb 2021 09:33:12 +0000 (22:33 +1300)
committerMarge Bot <eric+marge@anholt.net>
Mon, 8 Feb 2021 18:41:57 +0000 (18:41 +0000)
Make the case for 6 bytes the same as for 8 while we're at it.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8886>

src/gallium/drivers/panfrost/pan_job.c

index ae3f78b..f4ca59f 100644 (file)
@@ -1317,11 +1317,9 @@ pan_pack_color(uint32_t *packed, const union pipe_color_union *color, enum pipe_
                         pan_pack_color_32(packed, out.ui[0] | (out.ui[0] << 16));
                 else if (size == 3 || size == 4)
                         pan_pack_color_32(packed, out.ui[0]);
-                else if (size == 6)
-                        pan_pack_color_64(packed, out.ui[0], out.ui[1] | (out.ui[1] << 16)); /* RGB16F -- RGBB */
-                else if (size == 8)
+                else if (size == 6 || size == 8)
                         pan_pack_color_64(packed, out.ui[0], out.ui[1]);
-                else if (size == 16)
+                else if (size == 12 || size == 16)
                         memcpy(packed, out.ui, 16);
                 else
                         unreachable("Unknown generic format size packing clear colour");