diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2014-03-20 11:53:16 -0700 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2014-03-25 15:13:49 -0700 |
commit | 1afe3359258a9e89b62c8638761f52d78f6d1cbc (patch) | |
tree | 21397d4cbd87f963e5757205ef230ba2f2b96aae /src/mesa/main/api_validate.c | |
parent | 29bcc73d4db639681f679b43075798c78f268ebf (diff) | |
download | external_mesa3d-1afe3359258a9e89b62c8638761f52d78f6d1cbc.zip external_mesa3d-1afe3359258a9e89b62c8638761f52d78f6d1cbc.tar.gz external_mesa3d-1afe3359258a9e89b62c8638761f52d78f6d1cbc.tar.bz2 |
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 <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: mesa-stable@lists.freedesktop.org
Diffstat (limited to 'src/mesa/main/api_validate.c')
-rw-r--r-- | src/mesa/main/api_validate.c | 5 |
1 files changed, 4 insertions, 1 deletions
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]; |