On Fri, Nov 13, 2015 at 12:07 PM, Ian Romanick <i...@freedesktop.org> wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > Previously GL_FRAMEBUFFER was used. However, if GL_EXT_framebuffer_blit > is supported (note: it is supported by every Mesa driver), this is > *sometimes* an alias for GL_DRAW_FRAMEBUFFER (getters) and *sometimes* > an alias for *both* GL_DRAW_FRAMEBUFFER and GL_READ_FRAMEBUFFER > (setters). As a result, the code saved one binding but modified both. > If the bindings were different, the GL_READ_FRAMEBUFFER would be > incorrect on exit. > > Fixes the piglit fbo-generatemipmap-versus-READ_FRAMEBUFFER test. > > Ideally this function would use DSA functions and not modify the binding > at all. However, that would be a much more intrusive change because > _mesa_meta_bind_fbo_image would also need to be modified. > _mesa_meta_bind_fbo_image has a lot of callers. Much of this code is > about to get a major rework due to bug #92363, so I don't think it > matters too much. In fact, I discovered this bug while working on the > other bug. Le bon temps! > > Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> > Cc: "10.6 11.0" <mesa-sta...@lists.freedesktop.org> > --- > src/mesa/drivers/common/meta_generate_mipmap.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/src/mesa/drivers/common/meta_generate_mipmap.c > b/src/mesa/drivers/common/meta_generate_mipmap.c > index a9da0a2..ffd71b6 100644 > --- a/src/mesa/drivers/common/meta_generate_mipmap.c > +++ b/src/mesa/drivers/common/meta_generate_mipmap.c > @@ -102,13 +102,13 @@ fallback_required(struct gl_context *ctx, GLenum target, > */ > if (!mipmap->FBO) > _mesa_GenFramebuffers(1, &mipmap->FBO); > - _mesa_BindFramebuffer(GL_FRAMEBUFFER_EXT, mipmap->FBO); > + _mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, mipmap->FBO); > > - _mesa_meta_bind_fbo_image(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, > baseImage, 0); > + _mesa_meta_bind_fbo_image(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, > baseImage, 0); > > - status = _mesa_CheckFramebufferStatus(GL_FRAMEBUFFER_EXT); > + status = _mesa_CheckFramebufferStatus(GL_DRAW_FRAMEBUFFER); > > - _mesa_BindFramebuffer(GL_FRAMEBUFFER_EXT, fboSave); > + _mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, fboSave); > > if (status != GL_FRAMEBUFFER_COMPLETE_EXT) { > _mesa_perf_debug(ctx, MESA_DEBUG_SEVERITY_HIGH, > -- > 2.1.0 > > _______________________________________________ > mesa-stable mailing list > mesa-sta...@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-stable
Reviewed-by: Anuj Phogat <anuj.pho...@gmail.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev