On Fri, 2 Nov 2018 at 22:09, Kyle Brenneman <kyle.brenne...@gmail.com> wrote:

> > +    if (vendor == NULL) {
> > +        // XXX: How can we end here with EGL_SUCCESS?
> > +        if (errorCode != EGL_SUCCESS) {
> > +            // Since we have no vendor, the follow-up eglGetError() call 
> > will
> > +            // end up using the GLVND error code. Set it here.
> > +            exports->setEGLError(errorCode);

> The (vendor == NULL) branch should still call _eglError so that it calls the 
> debug callback function. Other than that, this looks right to me.
>
Thanks. v2 coming shortly.

> In answer to the question in the comment, getting an EGL_SUCCESS error code 
> is inherited from the code in libglvnd itself to handle the eglWait* 
> functions. If there's no current context for those functions, then they're a 
> no-op and don't set an error code.
>
> Mesa doesn't have any EGL dispatch stubs that look at the current context, 
> though, so you could just remove __eglDispatchFetchByCurrent and the 
> (errorCode != EGL_SUCCESS) checks.
Having a closer look: things seem pretty strange, within Mesa at least.

WaitGL, WaitClient, WaitNative should use the thread state, while
eglWaitSync* should deduce things from the display.
Of which only eglWaitSyncKHR uses the display and everything else has
no dispatch since it's annotated as "none" .

A step further our eglWaitNative implementation is an empty stub... I
wonder how many apps relied upon that ;-)

-Emil
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to