Reviewed-by: Marek Olšák <[email protected]> Marek
On Tue, Jan 3, 2017 at 12:41 AM, Fredrik Höglund <[email protected]> wrote: > In OpenGL 3.0 and later it is legal to make a context current without > a default framebuffer. > > This has been broken since DRI3 support was introduced. > > Cc: "13.0 12.0" <[email protected]> > --- > src/glx/dri3_glx.c | 14 ++++++++++---- > 1 file changed, 10 insertions(+), 4 deletions(-) > > diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c > index 358bd5f..4472a0b 100644 > --- a/src/glx/dri3_glx.c > +++ b/src/glx/dri3_glx.c > @@ -209,18 +209,24 @@ dri3_bind_context(struct glx_context *context, struct > glx_context *old, > struct dri3_context *pcp = (struct dri3_context *) context; > struct dri3_screen *psc = (struct dri3_screen *) pcp->base.psc; > struct dri3_drawable *pdraw, *pread; > + __DRIdrawable *dri_draw = NULL, *dri_read = NULL; > > pdraw = (struct dri3_drawable *) driFetchDrawable(context, draw); > pread = (struct dri3_drawable *) driFetchDrawable(context, read); > > driReleaseDrawables(&pcp->base); > > - if (pdraw == NULL || pread == NULL) > + if (pdraw) > + dri_draw = pdraw->loader_drawable.dri_drawable; > + else if (draw != None) > return GLXBadDrawable; > > - if (!(*psc->core->bindContext) (pcp->driContext, > - pdraw->loader_drawable.dri_drawable, > - pread->loader_drawable.dri_drawable)) > + if (pread) > + dri_read = pread->loader_drawable.dri_drawable; > + else if (read != None) > + return GLXBadDrawable; > + > + if (!(*psc->core->bindContext) (pcp->driContext, dri_draw, dri_read)) > return GLXBadContext; > > return Success; > -- > 2.1.4 > > _______________________________________________ > mesa-stable mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/mesa-stable _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
