On Tue, Oct 20, 2015 at 10:19 AM, Marta Lofstedt <marta.lofst...@linux.intel.com> wrote: > From: Marta Lofstedt <marta.lofst...@intel.com> > > From OpenGL 4.4 specification, section 10.4 and > Open GL Es 3.1 section 10.5: > "An INVALID_VALUE error is generated if indirect is not a multiple > of the size, in basic machine units, of uint." > > However, the current code follow the ARB_draw_indirect: > https://www.opengl.org/registry/specs/ARB/draw_indirect.txt > "INVALID_OPERATION is generated by DrawArraysIndirect and > DrawElementsIndirect if commands source data beyond the end > of a buffer object or if <indirect> is not word aligned." > > Signed-off-by: Marta Lofstedt <marta.lofst...@linux.intel.com> > --- > src/mesa/main/api_validate.c | 13 +++++++++++-- > 1 file changed, 11 insertions(+), 2 deletions(-) > > diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c > index 7062cbd..a084362 100644 > --- a/src/mesa/main/api_validate.c > +++ b/src/mesa/main/api_validate.c > @@ -732,10 +732,19 @@ valid_draw_indirect(struct gl_context *ctx, > /* From the ARB_draw_indirect specification: > * "An INVALID_OPERATION error is generated [...] if <indirect> is no > * word aligned." > + * However, from OpenGL version 4.4. section 10.5
4.4, I double-checked and you're right -- it was INVALID_OPERATION in GL 4.3, but INVALID_VALUE in GL 4.4. Weird. Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu> Should probably fix up the piglit test as well, if any. > + * and OpenGL ES 3.1, section 10.6: > + * "An INVALID_VALUE error is generated if indirect is not a multiple > + * of the size, in basic machine units, of uint." > */ > if ((GLsizeiptr)indirect & (sizeof(GLuint) - 1)) { > - _mesa_error(ctx, GL_INVALID_OPERATION, > - "%s(indirect is not aligned)", name); > + if ((_mesa_is_desktop_gl(ctx) && ctx->Version >= 44) || > + _mesa_is_gles31(ctx)) > + _mesa_error(ctx, GL_INVALID_VALUE, > + "%s(indirect is not aligned)", name); > + else > + _mesa_error(ctx, GL_INVALID_OPERATION, > + "%s(indirect is not aligned)", name); > return GL_FALSE; > } > > -- > 2.1.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev