panfrost/midgard: Passthrough nir_lower_framebuffer
[mesa.git] / src / gallium / drivers / panfrost / pan_screen.c
index ddb0b7f75fd352e634033f479dc09048a17c1dda..d53a906838eb67619b8daa8e22107a7b4cba5502 100644 (file)
@@ -64,8 +64,6 @@ DEBUG_GET_ONCE_FLAGS_OPTION(pan_debug, "PAN_MESA_DEBUG", debug_options, 0)
 
 int pan_debug = 0;
 
-struct panfrost_driver *panfrost_create_drm_driver(int fd);
-
 static const char *
 panfrost_get_name(struct pipe_screen *screen)
 {
@@ -118,6 +116,10 @@ panfrost_get_param(struct pipe_screen *screen, enum pipe_cap param)
         case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR:
                 return 1;
 
+        /* TODO: Where does this req come from in practice? */
+        case PIPE_CAP_VERTEX_BUFFER_STRIDE_4BYTE_ALIGNED_ONLY:
+                return 1;
+
         case PIPE_CAP_MAX_TEXTURE_2D_SIZE:
                 return 4096;
         case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
@@ -458,13 +460,20 @@ panfrost_is_format_supported( struct pipe_screen *screen,
         if (format == PIPE_FORMAT_A1B5G5R5_UNORM || format == PIPE_FORMAT_X1B5G5R5_UNORM)
                 return FALSE;
 
+        /* Allow through special formats */
+
+        switch (format) {
+                case PIPE_FORMAT_R11G11B10_FLOAT:
+                case PIPE_FORMAT_B5G6R5_UNORM:
+                        return TRUE;
+                default:
+                        break;
+        }
+
         if (bind & PIPE_BIND_RENDER_TARGET) {
                 if (format_desc->colorspace == UTIL_FORMAT_COLORSPACE_ZS)
                         return FALSE;
 
-                if (format == PIPE_FORMAT_B5G6R5_UNORM)
-                        return TRUE;
-
                 /* Check for vaguely 8UNORM formats. Looser than
                  * util_format_is_rgba8_variant, since it permits R8 (for
                  * instance) */