X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fpanfrost%2Fpan_screen.c;h=d53a906838eb67619b8daa8e22107a7b4cba5502;hb=d151319a3d591e7ac157f8e3ea070f2569c73b51;hp=ddb0b7f75fd352e634033f479dc09048a17c1dda;hpb=9de4325b27934f0ad944b78e9200cd09d8d8cd14;p=mesa.git diff --git a/src/gallium/drivers/panfrost/pan_screen.c b/src/gallium/drivers/panfrost/pan_screen.c index ddb0b7f75fd..d53a906838e 100644 --- a/src/gallium/drivers/panfrost/pan_screen.c +++ b/src/gallium/drivers/panfrost/pan_screen.c @@ -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) */