[Mesa-dev] [PATCH 1/3] mesa: Simplify some tests in update_array_format()
Fredrik Höglund
fredrik at kde.org
Mon Mar 9 09:26:20 PDT 2015
On Thursday 05 March 2015, Ian Romanick wrote:
> On 03/05/2015 10:56 AM, Fredrik Höglund wrote:
> > There is no need to check if these extensions are supported here;
> > if the data type is not supported, we will already have returned a
> > GL_INVALID_ENUM error.
>
> From where would GL_INVALID_ENUM have been generated? Is that the
> "(typeBit & legalTypesMask) == 0x0" check?
Yeah.
> Do we have any piglit tests that verify this? We'd have to find some
> driver that doesn't support these extensions to try it...
I've written a new more extensive piglit test for ARB_dsa that verifies it.
The third patch in this series actually fixes a bug uncovered by that test.
> > ---
> > src/mesa/main/varray.c | 20 +++++---------------
> > 1 file changed, 5 insertions(+), 15 deletions(-)
> >
> > diff --git a/src/mesa/main/varray.c b/src/mesa/main/varray.c
> > index 42e7f89..efc1431 100644
> > --- a/src/mesa/main/varray.c
> > +++ b/src/mesa/main/varray.c
> > @@ -301,17 +301,9 @@ update_array_format(struct gl_context *ctx,
> > * ...
> > * • size is BGRA and normalized is FALSE;"
> > */
> > - bool bgra_error = false;
> > -
> > - if (ctx->Extensions.ARB_vertex_type_2_10_10_10_rev) {
> > - if (type != GL_UNSIGNED_INT_2_10_10_10_REV &&
> > - type != GL_INT_2_10_10_10_REV &&
> > - type != GL_UNSIGNED_BYTE)
> > - bgra_error = true;
> > - } else if (type != GL_UNSIGNED_BYTE)
> > - bgra_error = true;
> > -
> > - if (bgra_error) {
> > + if (type != GL_UNSIGNED_INT_2_10_10_10_REV &&
> > + type != GL_INT_2_10_10_10_REV &&
> > + type != GL_UNSIGNED_BYTE) {
> > _mesa_error(ctx, GL_INVALID_OPERATION, "%s(size=GL_BGRA and type=%s)",
> > func, _mesa_lookup_enum_by_nr(type));
> > return false;
> > @@ -331,8 +323,7 @@ update_array_format(struct gl_context *ctx,
> > return false;
> > }
> >
> > - if (ctx->Extensions.ARB_vertex_type_2_10_10_10_rev &&
> > - (type == GL_UNSIGNED_INT_2_10_10_10_REV ||
> > + if ((type == GL_UNSIGNED_INT_2_10_10_10_REV ||
> > type == GL_INT_2_10_10_10_REV) && size != 4) {
> > _mesa_error(ctx, GL_INVALID_OPERATION, "%s(size=%d)", func, size);
> > return false;
> > @@ -351,8 +342,7 @@ update_array_format(struct gl_context *ctx,
> > return false;
> > }
> >
> > - if (ctx->Extensions.ARB_vertex_type_10f_11f_11f_rev &&
> > - type == GL_UNSIGNED_INT_10F_11F_11F_REV && size != 3) {
> > + if (type == GL_UNSIGNED_INT_10F_11F_11F_REV && size != 3) {
> > _mesa_error(ctx, GL_INVALID_OPERATION, "%s(size=%d)", func, size);
> > return false;
> > }
>
>
More information about the mesa-dev
mailing list