On 6 October 2016 at 15:13, Martin Peres <martin.pe...@linux.intel.com> wrote: > This allows querying the current active screen from the > loader's common code. > > Signed-off-by: Martin Peres <martin.pe...@linux.intel.com> > --- > src/egl/drivers/dri2/platform_x11_dri3.c | 12 ++++++++++++ > src/glx/dri3_glx.c | 11 +++++++++++ > src/loader/loader_dri3_helper.h | 1 + > 3 files changed, 24 insertions(+) > > diff --git a/src/egl/drivers/dri2/platform_x11_dri3.c > b/src/egl/drivers/dri2/platform_x11_dri3.c > index 31649fe..d93f5bc 100644 > --- a/src/egl/drivers/dri2/platform_x11_dri3.c > +++ b/src/egl/drivers/dri2/platform_x11_dri3.c > @@ -103,6 +103,17 @@ egl_dri3_get_dri_context(struct loader_dri3_drawable > *draw) > return dri2_ctx->dri_context; > } > > +static __DRIscreen * > +egl_dri3_get_dri_screen(struct loader_dri3_drawable *draw) > +{ > + _EGLContext *ctx = _eglGetCurrentContext(); > + struct dri2_egl_context *dri2_ctx; > + if (!ctx) > + return NULL;
<thinking out loud> Only the loader_dri3 code seems to do this NULL check. I'm wondering how likely it is to hit. At the same time, many places could/should check if we have a dummyctx (via _eglIsCurrentThreadDummy) yet they don't bother. We had a similar (bug) hunt on the GLX side recently and we should audit the EGL codepaths one of these days. </thinking out loud> > + dri2_ctx = dri2_egl_context(ctx); > + return dri2_egl_display(dri2_ctx->base.Resource.Display)->dri_screen; > +} > + > static void > egl_dri3_flush_drawable(struct loader_dri3_drawable *draw, unsigned flags) > { > @@ -119,6 +130,7 @@ static struct loader_dri3_vtable egl_dri3_vtable = { > .set_drawable_size = egl_dri3_set_drawable_size, > .in_current_context = egl_dri3_in_current_context, > .get_dri_context = egl_dri3_get_dri_context, > + .get_dri_screen = egl_dri3_get_dri_screen, > .flush_drawable = egl_dri3_flush_drawable, > .show_fps = NULL, > }; > diff --git a/src/glx/dri3_glx.c b/src/glx/dri3_glx.c > index 90d7bba..3bc2e1b 100644 > --- a/src/glx/dri3_glx.c > +++ b/src/glx/dri3_glx.c > @@ -132,6 +132,16 @@ glx_dri3_get_dri_context(struct loader_dri3_drawable > *draw) > return (gc != &dummyContext) ? dri3Ctx->driContext : NULL; > } > > +static __DRIscreen * > +glx_dri3_get_dri_screen(struct loader_dri3_drawable *draw) > +{ > + struct glx_context *gc = __glXGetCurrentContext(); > + struct dri3_context *pcp = (struct dri3_context *) > __glXGetCurrentContext(); s/__glXGetCurrentContext()/gc/ With this small fix the series is: Cc: mesa-sta...@lists.freedesktop.org Reviewed-by: Emil Velikov <emil.veli...@collabora.com> Thanks, Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev