diff options
author | Dave Airlie <airlied@redhat.com> | 2015-03-11 10:08:40 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2015-06-16 12:34:25 +1000 |
commit | d9e2f487b79913365ec4f88eca82b03dfeb8614a (patch) | |
tree | 0fb12a8bf7e692a32d55da6a2c8e3caec4080502 | |
parent | 06127da5cb865034c11b513082f268220eec1b4a (diff) |
virgl: add support for ARB_vertex_type_10f_11f_11f_rev
-rw-r--r-- | src/gallium/drivers/virgl/virgl_screen.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c index 394d026143a..25eec05989a 100644 --- a/src/gallium/drivers/virgl/virgl_screen.c +++ b/src/gallium/drivers/virgl/virgl_screen.c @@ -290,6 +290,7 @@ static boolean virgl_is_vertex_format_supported(struct pipe_screen *screen, enum pipe_format format) { + struct virgl_screen *vscreen = virgl_screen(screen); const struct util_format_description *format_desc; int i; @@ -297,6 +298,15 @@ virgl_is_vertex_format_supported(struct pipe_screen *screen, if (!format_desc) return FALSE; + if (format == PIPE_FORMAT_R11G11B10_FLOAT) { + int vformat = VIRGL_FORMAT_R11G11B10_FLOAT; + int big = vformat / 32; + int small = vformat % 32; + if (!(vscreen->caps.caps.v1.vertexbuffer.bitmask[big] & (1 << small))) + return FALSE; + return TRUE; + } + /* Find the first non-VOID channel. */ for (i = 0; i < 4; i++) { if (format_desc->channel[i].type != UTIL_FORMAT_TYPE_VOID) { |