Reviewed-by: Ian Romanick <ian.d.roman...@intel.com> On 03/07/2016 04:55 PM, Kenneth Graunke wrote: > The ES 3.0+ specifications contain the exact same text as the OpenGL > specification, which says that we should return GL_INVALID_OPERATION. > > ES 2.0 contains different text saying we should return GL_INVALID_ENUM. > > Previously, Mesa chose the error code based on API (GL vs. ES). > This patch makes ES 3.0+ follow the GL behavior. ES 2 remains as is. > > Fixes dEQP-GLES3.functional.fbo.api.attachment_query_empty_fbo. > However, breaks the dEQP-GLES2 variant of the same test for drivers > which silently promote to ES 3.0. This can be worked around by > exporting MESA_GLES_VERSION_OVERRIDE=2.0, but is a bug in dEQP-GLES2. > > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/mesa/main/fbobject.c | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) > > diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c > index feab86c..d490918 100644 > --- a/src/mesa/main/fbobject.c > +++ b/src/mesa/main/fbobject.c > @@ -3580,8 +3580,22 @@ _mesa_get_framebuffer_attachment_parameter(struct > gl_context *ctx, > const struct gl_renderbuffer_attachment *att; > GLenum err; > > - /* The error differs in GL and GLES. */ > - err = _mesa_is_desktop_gl(ctx) ? GL_INVALID_OPERATION : GL_INVALID_ENUM; > + /* The error code for an attachment type of GL_NONE differs between APIs. > + * > + * From the ES 2.0.25 specification, page 127: > + * "If the value of FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE is NONE, then > + * querying any other pname will generate INVALID_ENUM." > + * > + * From the OpenGL 3.0 specification, page 337, or identically, > + * the OpenGL ES 3.0.4 specification, page 240: > + * > + * "If the value of FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE is NONE, no > + * framebuffer is bound to target. In this case querying pname > + * FRAMEBUFFER_ATTACHMENT_OBJECT_NAME will return zero, and all other > + * queries will generate an INVALID_OPERATION error." > + */ > + err = ctx->API == API_OPENGLES2 && ctx->Version < 30 ? > + GL_INVALID_ENUM : GL_INVALID_OPERATION; > > if (_mesa_is_winsys_fbo(buffer)) { > /* Page 126 (page 136 of the PDF) of the OpenGL ES 2.0.25 spec >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev