From b19494c54e704ce23f5d0523c321fbffc0f70494 Mon Sep 17 00:00:00 2001 From: Danylo Piliaiev Date: Thu, 4 Apr 2019 15:04:50 +0300 Subject: [PATCH] iris: Fix assert when using vertex attrib without buffer binding MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The GL 4.5 spec says: "If any enabled array’s buffer binding is zero when DrawArrays or one of the other drawing commands defined in section 10.4 is called, the result is undefined." The result is undefined but it should not crash. Fixes: gl-3.1-vao-broken-attrib Signed-off-by: Danylo Piliaiev Reviewed-by: Kenneth Graunke --- src/gallium/drivers/iris/iris_state.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index 591c6359315..0035b07caeb 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -2642,7 +2642,8 @@ iris_set_vertex_buffers(struct pipe_context *ctx, continue; } - assert(!buffer->is_user_buffer); + /* We may see user buffers that are NULL bindings. */ + assert(!(buffer->is_user_buffer && buffer->buffer.user != NULL)); pipe_resource_reference(&state->resource, buffer->buffer.resource); struct iris_resource *res = (void *) state->resource; -- 2.30.2