}
break;
case PIPE_BIND_VERTEX_BUFFER:
+ if (dev->gen >= ILO_GEN(7.5))
+ return ilo_translate_color_format(dev, format);
+
/*
* Some 3-component formats are not supported as vertex element formats.
* But since we move between vertices using vb->stride, we should be
static struct pipe_resource *
buf_create(struct pipe_screen *screen, const struct pipe_resource *templ)
{
+ const struct ilo_screen *is = ilo_screen(screen);
struct ilo_buffer *buf;
buf = CALLOC_STRUCT(ilo_buffer);
if (templ->bind & PIPE_BIND_SAMPLER_VIEW)
buf->bo_size = align(buf->bo_size, 256) + 16;
- if (templ->bind & PIPE_BIND_VERTEX_BUFFER) {
+ if ((templ->bind & PIPE_BIND_VERTEX_BUFFER) &&
+ is->dev.gen < ILO_GEN(7.5)) {
/*
* As noted in ilo_translate_format(), we treat some 3-component formats
* as 4-component formats to work around hardware limitations. Imagine