From: Kenneth Graunke Date: Thu, 20 Mar 2014 18:53:16 +0000 (-0700) Subject: mesa: In core profile, refuse to draw unless a VAO is bound. X-Git-Tag: upstream/10.3~2911 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1afe3359258a9e89b62c8638761f52d78f6d1cbc;p=platform%2Fupstream%2Fmesa.git mesa: In core profile, refuse to draw unless a VAO is bound. Core profile requires a non-default VAO to be bound. Currently, calls to glVertexAttribPointer raise INVALID_OPERATION unless a VAO is bound, and we never actually get any vertex data set. Trying to draw without any vertex data can only cause problems. In i965, it causes a crash. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76400 Signed-off-by: Kenneth Graunke Reviewed-by: Ian Romanick Cc: mesa-stable@lists.freedesktop.org --- diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c index efc3a2b..8f0b199 100644 --- a/src/mesa/main/api_validate.c +++ b/src/mesa/main/api_validate.c @@ -125,8 +125,11 @@ check_valid_to_render(struct gl_context *ctx, const char *function) return GL_FALSE; break; - case API_OPENGL_COMPAT: case API_OPENGL_CORE: + if (ctx->Array.VAO == ctx->Array.DefaultVAO) + return GL_FALSE; + /* fallthrough */ + case API_OPENGL_COMPAT: { const struct gl_shader_program *vsProg = ctx->_Shader->CurrentProgram[MESA_SHADER_VERTEX];