panfrost/midgard: Handle pure int formats
[mesa.git] / src / gallium / drivers / panfrost / pan_format.c
index cb1c71fca29010bb7f83a36f9c9f30a221174f05..563b381574b012cc52b2c59b3d65c68dd9ee5973 100644 (file)
@@ -53,8 +53,7 @@ panfrost_translate_swizzle(enum pipe_swizzle s)
                 return MALI_CHANNEL_ONE;
 
         default:
-                assert(0);
-                return 0;
+                unreachable("INvalid swizzle");
         }
 }
 
@@ -100,9 +99,7 @@ panfrost_translate_channel_width(unsigned size)
                 case 32:
                         return MALI_CHANNEL_32;
                 default:
-                        fprintf(stderr, "Unknown width %d\n", size);
-                        assert(0);
-                        return 0;
+                        unreachable("Invalid width");
         }
 }
 
@@ -128,8 +125,7 @@ panfrost_translate_channel_type(unsigned type, unsigned size, bool norm) {
                         }
 
                 default:
-                        assert(0);
-                        return 0;
+                        unreachable("Invalid type");
         }
 }
 
@@ -194,6 +190,20 @@ panfrost_find_format(const struct util_format_description *desc)
                         assert(0);
                         break;
 
+                case PIPE_FORMAT_R32_FIXED:
+                        return MALI_R32_FIXED;
+                case PIPE_FORMAT_R32G32_FIXED:
+                        return MALI_RG32_FIXED;
+                case PIPE_FORMAT_R32G32B32_FIXED:
+                        return MALI_RGB32_FIXED;
+                case PIPE_FORMAT_R32G32B32A32_FIXED:
+                        return MALI_RGBA32_FIXED;
+
+                case PIPE_FORMAT_R11G11B10_FLOAT:
+                        return MALI_R11F_G11F_B10F;
+                case PIPE_FORMAT_R9G9B9E5_FLOAT:
+                        return MALI_R9F_G9F_B9F_E5F;
+
                 default:
                         /* Fallthrough to default */
                         break;
@@ -223,9 +233,8 @@ panfrost_find_format(const struct util_format_description *desc)
                         break;
 
                 default:
-                        fprintf(stderr, "Unknown format type in %s\n", desc->name);
-                        assert(0);
-                        break;
+                        printf("%s\n", util_format_name(desc->format));
+                        unreachable("Invalid format type");
         }
 
         return (enum mali_format) format;