It seems like a good idea since EXT_framebuffer_blit/multisample are also exposed.
Reviewed-by: Marek Olšák <marek.ol...@amd.com> Marek On Sat, Sep 8, 2018 at 12:20 AM, Timothy Arceri <tarc...@itsqueeze.com> wrote: > Since user defined names are not allowed in core profile > we remove the allow_user_names bool and just check if > we have a core profile like all other buffer/texture > object handling code does. > > This extension is required by "Wolfenstein: The Old Blood" > and is exposed in core in the Nvidia binary driver. > --- > src/mapi/glapi/gen/EXT_framebuffer_object.xml | 4 +-- > src/mesa/main/extensions_table.h | 2 +- > src/mesa/main/fbobject.c | 30 ++++++++----------- > src/mesa/main/tests/dispatch_sanity.cpp | 4 +-- > 4 files changed, 17 insertions(+), 23 deletions(-) > > diff --git a/src/mapi/glapi/gen/EXT_framebuffer_object.xml > b/src/mapi/glapi/gen/EXT_framebuffer_object.xml > index 310e8ee9569..6c0e54af1c9 100644 > --- a/src/mapi/glapi/gen/EXT_framebuffer_object.xml > +++ b/src/mapi/glapi/gen/EXT_framebuffer_object.xml > @@ -75,7 +75,7 @@ > <return type="GLboolean"/> > </function> > > - <function name="BindRenderbufferEXT" deprecated="3.1"> > + <function name="BindRenderbufferEXT"> > <param name="target" type="GLenum"/> > <param name="renderbuffer" type="GLuint"/> > <glx rop="4316"/> > @@ -109,7 +109,7 @@ > <return type="GLboolean"/> > </function> > > - <function name="BindFramebufferEXT" deprecated="3.1"> > + <function name="BindFramebufferEXT"> > <param name="target" type="GLenum"/> > <param name="framebuffer" type="GLuint"/> > <glx rop="4319"/> > diff --git a/src/mesa/main/extensions_table.h > b/src/mesa/main/extensions_table.h > index 486d76a0580..09bf923bd0e 100644 > --- a/src/mesa/main/extensions_table.h > +++ b/src/mesa/main/extensions_table.h > @@ -230,7 +230,7 @@ EXT(EXT_frag_depth , dummy_true > EXT(EXT_framebuffer_blit , dummy_true > , GLL, GLC, x , x , 2005) > EXT(EXT_framebuffer_multisample , EXT_framebuffer_multisample > , GLL, GLC, x , x , 2005) > EXT(EXT_framebuffer_multisample_blit_scaled , > EXT_framebuffer_multisample_blit_scaled, GLL, GLC, x , x , 2011) > -EXT(EXT_framebuffer_object , dummy_true > , GLL, x , x , x , 2000) > +EXT(EXT_framebuffer_object , dummy_true > , GLL, GLC, x , x , 2000) > EXT(EXT_framebuffer_sRGB , EXT_framebuffer_sRGB > , GLL, GLC, x , x , 1998) > EXT(EXT_geometry_point_size , OES_geometry_shader > , x , x , x , 31, 2015) > EXT(EXT_geometry_shader , OES_geometry_shader > , x , x , x , 31, 2015) > diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c > index edb86438e39..6dda4b5e523 100644 > --- a/src/mesa/main/fbobject.c > +++ b/src/mesa/main/fbobject.c > @@ -1410,7 +1410,7 @@ allocate_renderbuffer_locked(struct gl_context *ctx, > GLuint renderbuffer, > > > static void > -bind_renderbuffer(GLenum target, GLuint renderbuffer, bool allow_user_names) > +bind_renderbuffer(GLenum target, GLuint renderbuffer) > { > struct gl_renderbuffer *newRb; > GET_CURRENT_CONTEXT(ctx); > @@ -1430,9 +1430,10 @@ bind_renderbuffer(GLenum target, GLuint renderbuffer, > bool allow_user_names) > /* ID was reserved, but no real renderbuffer object made yet */ > newRb = NULL; > } > - else if (!newRb && !allow_user_names) { > + else if (!newRb && ctx->API == API_OPENGL_CORE) { > /* All RB IDs must be Gen'd */ > - _mesa_error(ctx, GL_INVALID_OPERATION, > "glBindRenderbuffer(buffer)"); > + _mesa_error(ctx, GL_INVALID_OPERATION, > + "glBindRenderbuffer(non-gen name)"); > return; > } > > @@ -1460,17 +1461,13 @@ _mesa_BindRenderbuffer(GLenum target, GLuint > renderbuffer) > /* OpenGL ES glBindRenderbuffer and glBindRenderbufferOES use this same > * entry point, but they allow the use of user-generated names. > */ > - bind_renderbuffer(target, renderbuffer, _mesa_is_gles(ctx)); > + bind_renderbuffer(target, renderbuffer); > } > > void GLAPIENTRY > _mesa_BindRenderbufferEXT(GLenum target, GLuint renderbuffer) > { > - /* This function should not be in the dispatch table for core profile / > - * OpenGL 3.1, so execution should never get here in those cases -- no > - * need for an explicit test. > - */ > - bind_renderbuffer(target, renderbuffer, true); > + bind_renderbuffer(target, renderbuffer); > } > > /** > @@ -2797,7 +2794,7 @@ check_end_texture_render(struct gl_context *ctx, struct > gl_framebuffer *fb) > > > static void > -bind_framebuffer(GLenum target, GLuint framebuffer, bool allow_user_names) > +bind_framebuffer(GLenum target, GLuint framebuffer) > { > struct gl_framebuffer *newDrawFb, *newReadFb; > GLboolean bindReadBuf, bindDrawBuf; > @@ -2828,9 +2825,10 @@ bind_framebuffer(GLenum target, GLuint framebuffer, > bool allow_user_names) > /* ID was reserved, but no real framebuffer object made yet */ > newDrawFb = NULL; > } > - else if (!newDrawFb && !allow_user_names) { > + else if (!newDrawFb && ctx->API == API_OPENGL_CORE) { > /* All FBO IDs must be Gen'd */ > - _mesa_error(ctx, GL_INVALID_OPERATION, "glBindFramebuffer(buffer)"); > + _mesa_error(ctx, GL_INVALID_OPERATION, > + "glBindFramebuffer(non-gen name)"); > return; > } > > @@ -2924,18 +2922,14 @@ _mesa_BindFramebuffer(GLenum target, GLuint > framebuffer) > /* OpenGL ES glBindFramebuffer and glBindFramebufferOES use this same > entry > * point, but they allow the use of user-generated names. > */ > - bind_framebuffer(target, framebuffer, _mesa_is_gles(ctx)); > + bind_framebuffer(target, framebuffer); > } > > > void GLAPIENTRY > _mesa_BindFramebufferEXT(GLenum target, GLuint framebuffer) > { > - /* This function should not be in the dispatch table for core profile / > - * OpenGL 3.1, so execution should never get here in those cases -- no > - * need for an explicit test. > - */ > - bind_framebuffer(target, framebuffer, true); > + bind_framebuffer(target, framebuffer); > } > > > diff --git a/src/mesa/main/tests/dispatch_sanity.cpp > b/src/mesa/main/tests/dispatch_sanity.cpp > index 63c687c46fc..fb2acfbdeea 100644 > --- a/src/mesa/main/tests/dispatch_sanity.cpp > +++ b/src/mesa/main/tests/dispatch_sanity.cpp > @@ -224,6 +224,8 @@ TEST_F(DispatchSanity_test, GLES31) > } > > const struct function common_desktop_functions_possible[] = { > + { "glBindRenderbufferEXT", 10, -1 }, > + { "glBindFramebufferEXT", 10, -1 }, > { "glCullFace", 10, -1 }, > { "glFrontFace", 10, -1 }, > { "glHint", 10, -1 }, > @@ -1200,8 +1202,6 @@ const struct function > common_desktop_functions_possible[] = { > }; > > const struct function gl_compatibility_functions_possible[] = { > - { "glBindRenderbufferEXT", 10, -1 }, > - { "glBindFramebufferEXT", 10, -1 }, > { "glNewList", 10, _gloffset_NewList }, > { "glEndList", 10, _gloffset_EndList }, > { "glCallList", 10, _gloffset_CallList }, > -- > 2.17.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev