panfrost: Add support for R3G3B2

Tested with texenv from mesa-demos.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4292>
diff --git a/src/gallium/drivers/panfrost/pan_screen.c b/src/gallium/drivers/panfrost/pan_screen.c
index 72156cb..b6f8c64 100644
--- a/src/gallium/drivers/panfrost/pan_screen.c
+++ b/src/gallium/drivers/panfrost/pan_screen.c
@@ -461,7 +461,9 @@
         if (format == PIPE_FORMAT_X8Z24_UNORM)
                 return false;
 
-        if (format == PIPE_FORMAT_A1B5G5R5_UNORM || format == PIPE_FORMAT_X1B5G5R5_UNORM)
+        if (format == PIPE_FORMAT_A1B5G5R5_UNORM ||
+            format == PIPE_FORMAT_X1B5G5R5_UNORM ||
+            format == PIPE_FORMAT_B2G3R3_UNORM)
                 return false;
 
         /* TODO */
diff --git a/src/panfrost/encoder/pan_format.c b/src/panfrost/encoder/pan_format.c
index 26d3f79..89f4695 100644
--- a/src/panfrost/encoder/pan_format.c
+++ b/src/panfrost/encoder/pan_format.c
@@ -124,6 +124,9 @@
                 /* Z32F = R32F to the hardware */
                 return MALI_R32F;
 
+        case PIPE_FORMAT_R3G3B2_UNORM:
+                return MALI_RGB332_UNORM;
+
         case PIPE_FORMAT_B5G6R5_UNORM:
                 return MALI_RGB565;
 
diff --git a/src/panfrost/include/panfrost-job.h b/src/panfrost/include/panfrost-job.h
index 355eca9..a409f15 100644
--- a/src/panfrost/include/panfrost-job.h
+++ b/src/panfrost/include/panfrost-job.h
@@ -294,6 +294,8 @@
 	MALI_RGB10_A2UI     = MALI_FORMAT_SPECIAL | 0x7,
 	MALI_RGB10_A2I      = MALI_FORMAT_SPECIAL | 0x9,
 
+	MALI_RGB332_UNORM   = MALI_FORMAT_SPECIAL | 0xb,
+
 	/* YUV formats */
 	MALI_NV12           = MALI_FORMAT_SPECIAL | 0xc,
 
diff --git a/src/panfrost/pandecode/pan_pretty_print.c b/src/panfrost/pandecode/pan_pretty_print.c
index 9f9852a..96ef7d7 100644
--- a/src/panfrost/pandecode/pan_pretty_print.c
+++ b/src/panfrost/pandecode/pan_pretty_print.c
@@ -52,6 +52,7 @@
                 DEFINE_CASE(RGB10_A2_SNORM);
                 DEFINE_CASE(RGB10_A2UI);
                 DEFINE_CASE(RGB10_A2I);
+                DEFINE_CASE(RGB332_UNORM);
                 DEFINE_CASE(NV12);
                 DEFINE_CASE(Z32_UNORM);
                 DEFINE_CASE(R32_FIXED);