Hi Jonas,

On 4 May 2016 at 09:53, Jonas Ådahl <jad...@gmail.com> wrote:
> When EGL is used on some other thread than the thread that drives the
> main wl_display queue, the Wayland EGL dri2 implementation is
> vulnerable to a race condition related to display round trips and global
> object advertisements.
>
> The race that may happen is that after after a proxy is created, but
> before the queue is set, events meant to be emitted via the yet to be
> set queue may already have been queued on the wrong queue.
>
> In order to make it possible to avoid this race, wayland 1.11
> introduced new API that allows creating a proxy wrapper that may be used
> as the factory proxy when creating new proxies via Wayland requests. The
> queue of a proxy wrapper can be changed without effecting what queue
> events emitted by the actual proxy will be queued on, while still
> effecting what default queue proxies created from it will have.

This looks good to me, but I am worried about the hard dependency,
both at build and run-time. It would be great to make it optional at
build-time (#ifdef wrapper creation and destruction, just doing a
straight assignment otherwise to allow the other code to not be
#ifdefed), but even better if it could also use dlsym() to discover if
the symbol is available at runtime. Maybe the latter is overkill
though.

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

Reply via email to