Patch is: Reviewed-by: Eduardo Lima Mitev <[email protected]>
On 11/26/2015 04:57 PM, Ilia Mirkin wrote: > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93126 > Signed-off-by: Ilia Mirkin <[email protected]> > Cc: "11.0 11.1" <[email protected]> > --- > src/mesa/main/glformats.c | 8 +++++++- > src/mesa/main/glformats.h | 3 ++- > src/mesa/main/readpix.c | 2 +- > src/mesa/main/teximage.c | 2 +- > 4 files changed, 11 insertions(+), 4 deletions(-) > > diff --git a/src/mesa/main/glformats.c b/src/mesa/main/glformats.c > index 2ed42ea..7b264eb 100644 > --- a/src/mesa/main/glformats.c > +++ b/src/mesa/main/glformats.c > @@ -2077,12 +2077,18 @@ _mesa_error_check_format_and_type(const struct > gl_context *ctx, > * \return error code, or GL_NO_ERROR. > */ > GLenum > -_mesa_es_error_check_format_and_type(GLenum format, GLenum type, > +_mesa_es_error_check_format_and_type(const struct gl_context *ctx, > + GLenum format, GLenum type, > unsigned dimensions) > { > GLboolean type_valid = GL_TRUE; > > switch (format) { > + case GL_RED: > + case GL_RG: > + if (!ctx->Extensions.ARB_texture_rg) > + return GL_INVALID_VALUE; > + /* fallthrough */ > case GL_ALPHA: > case GL_LUMINANCE: > case GL_LUMINANCE_ALPHA: > diff --git a/src/mesa/main/glformats.h b/src/mesa/main/glformats.h > index 92f4bc6..b366855 100644 > --- a/src/mesa/main/glformats.h > +++ b/src/mesa/main/glformats.h > @@ -127,7 +127,8 @@ _mesa_error_check_format_and_type(const struct gl_context > *ctx, > GLenum format, GLenum type); > > extern GLenum > -_mesa_es_error_check_format_and_type(GLenum format, GLenum type, > +_mesa_es_error_check_format_and_type(const struct gl_context *ctx, > + GLenum format, GLenum type, > unsigned dimensions); > > extern GLenum > diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c > index 81bb912..8cdc9fe 100644 > --- a/src/mesa/main/readpix.c > +++ b/src/mesa/main/readpix.c > @@ -1043,7 +1043,7 @@ _mesa_ReadnPixelsARB( GLint x, GLint y, GLsizei width, > GLsizei height, > _mesa_get_color_read_type(ctx) == type) { > err = GL_NO_ERROR; > } else if (ctx->Version < 30) { > - err = _mesa_es_error_check_format_and_type(format, type, 2); > + err = _mesa_es_error_check_format_and_type(ctx, format, type, 2); > if (err == GL_NO_ERROR) { > if (type == GL_FLOAT || type == GL_HALF_FLOAT_OES) { > err = GL_INVALID_OPERATION; > diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c > index ac7599f..37dbe26 100644 > --- a/src/mesa/main/teximage.c > +++ b/src/mesa/main/teximage.c > @@ -1699,7 +1699,7 @@ texture_format_error_check_gles(struct gl_context *ctx, > GLenum format, > } > } > else { > - err = _mesa_es_error_check_format_and_type(format, type, dimensions); > + err = _mesa_es_error_check_format_and_type(ctx, format, type, > dimensions); > if (err != GL_NO_ERROR) { > _mesa_error(ctx, err, "%s(format = %s, type = %s)", > callerName, _mesa_enum_to_string(format), > _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
