summaryrefslogtreecommitdiffstats
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* configure.ac: supersede --enable-gallium-llvm over --enable-llvmEmil Velikov2017-02-101-19/+30
| | | | | | | | | | | | | | | | | | | Currently we have extra (somewhat questionable) modularity, such that one could build some parts with LLVM while others w/o. That is extremely fragile, error prone and requires quite noticable amount of code throughout. Thus lets deprecate the gallium toggle in faviour of the generic one. The former will throw a warning when set, and it will be overwritten by the latter. This will allow gradual transition w/o breaking people's scripts. v2: Rebase, document in release notes. Cc: Dave Airlie <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tobias Droste <[email protected]> (v1)
* configure.ac: remove dummy radeon_gallium_llvm_check()Emil Velikov2017-02-101-9/+2
| | | | | | | | | | | The extra function brings no added benefit as of earlier commit which made llvm_require_version (as called by radeon_llvm_check) require LLVM (--enable-gallium-llvm). Fixes: 5f966a96af7 "configure.ac: Mandate --enable-gallium-llvm when checking LLVM version" Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tobias Droste <[email protected]>
* configure.ac: correctly manage llvm auto-detectionEmil Velikov2017-02-101-4/+8
| | | | | | | | | | | | | | | | | | | | Earlier refactoring commits changed from one, dare I say it, broken behaviour to another. Namely: Before, as you explicitly --enable-gallium-llvm your selection was ignored when llvm-config was not present/detected. Today, the "auto" heuristics enables gallium llvm regardless if you have llvm/llvm-config available or not. Rework the auto-detection to attribute for llvm's presence. v2: Set enable_gallium_llvm=no when LLVM is not found. Cc: "17.0" <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tobias Droste <[email protected]> Reported-by: Samuel Pitoiset <[email protected]> Tested-by: Samuel Pitoiset <[email protected]>
* configure.ac: disable enable_gallium_llvm in the !x86 caseEmil Velikov2017-02-101-0/+1
| | | | | | | | Already implicitly handled throughout, but keep it clear and disable gallium-llvm. This change should be a no-op. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tobias Droste <[email protected]>
* configure.ac: set LLVM_{C, CXX, LD}FLAGS only as neededEmil Velikov2017-02-101-5/+6
| | | | | | | | | | | | | | | | | | | | Earlier refactoring commits started setting the above regardless if LLVM is used or not. Move them to the respective section to restore the original functionality. Since we require the preprocessor flags (includes in particular) for the header version parsing keep those as-is. They are not used outside of configure.ac thus should not cause any side-effects. As-is adding the C/CXXFLAGS can lead to build issues on when cross-compiling. Cc: Ilia Mirkin <[email protected]> Cc: Tomasz Figa <[email protected]> Cc: "17.0" <[email protected]> Reported-by: Ilia Mirkin <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tobias Droste <[email protected]>
* Revert "configure.ac: Create correct LLVM_VERSION_INT with minor >= 10"Emil Velikov2017-02-101-5/+1
| | | | | | | | | | | As stated in [1] by the LLVM devs, the new versioning scheme will not deploy any minor version (i.e. it will always be zero). As such the patch should not be needed. This reverts commit 0e9a5be7e74fa2a9bd2a634ef60822bd6600ca1d. [1] http://blog.llvm.org/2016/12/llvms-new-versioning-scheme.html Reviewed-by: Tobias Droste <[email protected]>
* configure.ac: don't use == with testEmil Velikov2017-02-101-2/+2
| | | | | | | | | | Although it works, it's not the correct thing to do. v2: Rebase v3: Rebase Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tobias Droste <[email protected]> (v1)
* configure.ac: remove unused LLVM variablesEmil Velikov2017-02-101-5/+0
| | | | | | | | LLVM_BINDIR is completely unused while others such as LLVM_LIBDIR are used only internally. In the latter case there's no need to AC_SUBST it. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tobias Droste <[email protected]>
* configure.ac: Only define HAVE_LLVM if LLVM is usedTobias Droste2017-02-101-8/+11
| | | | | | | | | | | Make sure that HAVE_LLVM compiler define is only set if LLVM is actually used. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99010 Cc: "17.0" <[email protected]> Signed-off-by: Tobias Droste <[email protected]> v2 [Emil] fold within the existing conditional Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Rework MESA_LLVM and LLVM detectionTobias Droste2017-02-101-12/+15
| | | | | | | | | | | | | | | | | | Set FOUND_LLVM only when LLVM is present (checking for exact version/etc is deferred) and use enable-gallium-llvm to indicate the global LLVM status. Renaming the latter is not appropriate for stable patches, so we'll address it with a later commit. Loosely based on work by Tobias. v2: Check FOUND_LLVM if enable_gallium_llvm is set. Cc: Dave Airlie <[email protected]> Cc: "17.0" <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tobias Droste <[email protected]>
* configure.ac: move enable-gallium-llvm dependency with-gallium-driversEmil Velikov2017-02-101-4/+1
| | | | | | | | | | | | | | | | | | | ... to where it's applicable. Since we effectively made --enable-gallium-llvm mean --enable-llvm with earlier commits, we need to move the requirement to guard the compnents added for the LLVM draw. Otherwise we'll error (as below) when building RADV w/o gallium drivers. configure: error: --enable-gallium-llvm is required when building radv v2: Don't remove but move the dependency (Tobias). Cc: Dave Airlie <[email protected]> Cc: "17.0" <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tobias Droste <[email protected]>
* configure.ac: Mandate --enable-gallium-llvm when checking LLVM versionEmil Velikov2017-02-101-6/+6
| | | | | | | | | | | | | | | | | With this change we effectively require --enable-gallium-llvm when building RADV. This should be perfectly safe since the gallium radeonsi driver already explicitly requires it. The "gallium" part in --enable-gallium-llvm is about to be removed soon (not in stable), but until then make sure that things can build. To reflect the requirement (as opposed to check previously) we rename llvm_check_version_for to llvm_require_version Cc: Dave Airlie <[email protected]> Cc: "17.0" <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tobias Droste <[email protected]>
* configure.ac: Rename the gallium_require_llvm helperEmil Velikov2017-02-101-11/+8
| | | | | | | | | | | | | | Drop the gallium prefix since we're about it use it throughout the configure. Note we do want to check for enable_gallium_llvm check since (as explicitly requested) the toggle should mean --enable-llvm. Latter of which to be resolved with later patches. Cc: Dave Airlie <[email protected]> Cc: "17.0" <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tobias Droste <[email protected]>
* configure.ac: Don't check LLVM version in require_llvmTobias Droste2017-02-101-3/+1
| | | | | | | | | | | | | | | | | This is actually not needed because the version is checked later. Around line 2380 if test "x$enable_gallium_llvm" == "xyes"; then llvm_check_version_for $LLVM_REQUIRED_GALLIUM "gallium" llvm_add_default_components "gallium" fi Cc: "17.0" <[email protected]> Cc: Tobias Droste <[email protected]> Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]> (v1) v2: [Emil Velikov: rebase/respin series order] Signed-off-by: Emil Velikov <[email protected]>
* configure.ac: move AC_ARG_ENABLE([gallium-llvm] hunk further upEmil Velikov2017-02-101-18/+18
| | | | | | | | | | | With next commits we'll require --enable-gallium-llvm (en route to a greater good later on) for RADV. The latter is required to ensure that as otherwise we'll fail to build. Cc: Dave Airlie <[email protected]> Cc: "17.0" <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tobias Droste <[email protected]>
* configure.ac: remove unused AC_SUBST([MESA_LLVM])Emil Velikov2017-02-101-1/+0
| | | | | Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Tobias Droste <[email protected]>
* configure: add blurb about what the LIBDRM_*_REQUIRED stuff meansIlia Mirkin2017-02-091-1/+8
| | | | | | Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* configure.ac: remove src/gallium/winsys/intel/drm/Makefile referenceEmil Velikov2017-02-071-1/+0
| | | | | | | | Not wired up (not referenced in any SUBDIR), leading to `make distcheck' failure. Fixes: d77fa310ed8 "ilo: EOL drop unmaintained gallium drv from buildsys" Signed-off-by: Emil Velikov <[email protected]>
* configure.ac: Remove redundant libglvnd stanzaBoyan Ding2017-02-071-49/+32
| | | | | | | | | | | There were two "libglvnd configuration" section in the squashed commit that added libglvnd support, while only one in the original libglvnd branch. A following commit moves one of them downwards. Now remove the upper "older" one and move GL_LIB name decision downwards after the new libglvnd configuration section. Reviewed-by: Emil Velikov <[email protected]> Signed-off-by: Boyan Ding <[email protected]>
* configure.ac: add swr to the gallium drivers list.Emil Velikov2017-02-071-1/+1
| | | | | | | | v2: Rebase on top of ILO removal. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* configure.ac: list all the dri-drivers in the help stringEmil Velikov2017-02-071-1/+1
| | | | | | | | | | | It's unlikely that any of the additions come as a suprise to anyone i915, nouveau, radeon, r200. Regardless, state clearly what's available. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Andres Gomez <[email protected]> Reviewed-by: Chad Versace <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* ilo: EOL drop unmaintained gallium drv from buildsysEdward O'Callaghan2017-02-031-11/+1
| | | | | | | | This is no longer actively maintained and is just accumulating bitrot. Signed-off-by: Edward O'Callaghan <[email protected]> Acked-by: Chia-I Wu <[email protected]>
* configure: libdrm is a single packageIlia Mirkin2017-02-021-16/+16
| | | | | | | | | | | | The intent of the libdrm_$driver version limits has always been to not burden the "other" drivers with updating their libdrm unless really necessary. Unfortunately the configure script erroneously only checked the driver-specific bit and not the generic bit of libdrm as well. Fix this. Signed-off-by: Ilia Mirkin <[email protected]> Reviewed-by: Chad Versace <[email protected]> Reviewed-by: Dave Airlie <[email protected]>
* configure.ac: explicitly require libdrm for dri classic drivers.Dave Airlie2017-02-031-0/+5
| | | | | | | Although this might come from somewhere else require it explicitly. Reviewed-by: Chad Versace <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
* configure: Only require libdrm 2.4.75 for intel.Vinson Lee2017-02-021-2/+2
| | | | | | Fixes: b8acb6b17981 ("configure: Require libdrm >= 2.4.75") Signed-off-by: Vinson Lee <[email protected]> Acked-by: Dave Airlie <[email protected]>
* configure: Require libdrm >= 2.4.75Chad Versace2017-01-271-1/+1
| | | | | | | | | | Required to implement EGL_ANDROID_native_fence_sync on i965. Specifically, i965 needs drm_intel_gem_bo_exec_fence(), I915_PARAM_HAS_EXEC_FENCE, and libsync.h. Reviewed-by: Rafael Antognolli <[email protected]> Tested-by: Rafael Antognolli <[email protected]> Acked-by: Kenneth Graunke <[email protected]>
* configure.ac: list radeon in --with-vulkan-drivers help stringEmil Velikov2017-01-271-1/+1
| | | | | | | | Analogous to what we do for the dri and gallium drivers. Cc: 17.0 13.0 <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]>
* autoconf: set all __STDC_*_MACROSEmil Velikov2017-01-271-1/+1
| | | | | | | | | | | | Analogous to previous commit(s), with a minor detail - here we set the macros when building both C and C++ sources. Resolving that is a more challenging task that we'll sort out another day. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Jose Fonseca <[email protected]>
* configure.ac: Require LLVM for r300 only on x86 and x86_64Andreas Boll2017-01-271-1/+14
| | | | | | | | | | | | | | | | b3119a3 introduced a strict LLVM requirement for r300 on all architectures and thus configure fails on architectures where LLVM is not available or buggy. r300 doesn't strictly require LLVM, but for performance reasons we highly recommend LLVM usage. So require it at least on x86 and x86_64 architectures as we have done before b3119a3. Fixes: b3119a3 ("configure.ac: Check gallium LLVM version in gallium_require_llvm") Cc: 17.0 <[email protected]> Signed-off-by: Andreas Boll <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: move require_dri_shared_libs_and_glapi() before its usersEmil Velikov2017-01-201-16/+16
| | | | | | | | | | | | | Otherwise we'll get a lovely message as below: "require_dri_shared_libs_and_glapi: command not found" Cc: Steven Newbury <[email protected]> Reported-by: Steven Newbury <[email protected]> Fixes: da410e6afad "configure: explicitly require shared glapi for enable-dri" Signed-off-by: Emil Velikov <[email protected]> Tested-by: Steven Newbury <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* utils: build sha1/disk cache only with Android/AutoconfEmil Velikov2017-01-181-0/+1
| | | | | | | | | | Earlier commit imported a SHA1 implementation and relaxed the SHA1 and disk cache handling, broking the Windows builds. Restrict things for now until we get to a proper fix. Fixes: d1efa09d342 "util: import sha1 implementation from OpenBSD" Signed-off-by: Emil Velikov <[email protected]>
* util: import sha1 implementation from OpenBSD17.0-branchpointEmil Velikov2017-01-181-160/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the moment we support 5+ different implementations each with varying amount of bugs - from thread safely problems [1], to outright broken implementation(s) [2] In order to accommodate these we have 150+ lines of configure script and extra two configure toggles. Whist an actual implementation being ~200loc and our current compat wrapping ~250. Let's not forget that different people use different code paths, thus effectively makes it harder to test and debug since the default implementation is automatically detected. To minimise all these lovely experiences, import the "100% Public Domain" OpenBSD sha1 implementation. Clearly document any changes needed to get building correctly, since many/most of those can be upstreamed making future syncs easier. As an added bonus this will avoid all the 'fun' experiences trying to integrate it with the Android and SCons builds. v2: Manually expand __BEGIN_DECLS/__END_DECLS and document (Tapani). Furthermore it seems that some games (or surrounding runtime) static link against OpenSSL resulting in conflicts. For more information see the discussion thread [3] Bugzilla [1]: https://bugs.freedesktop.org/show_bug.cgi?id=94904 Bugzilla [2]: https://bugs.freedesktop.org/show_bug.cgi?id=97967 [3] https://lists.freedesktop.org/archives/mesa-dev/2017-January/140748.html Cc: Mark Janes <[email protected]> Cc: Vinson Lee <[email protected]> Cc: Tapani Pälli <[email protected]> Cc: Jonathan Gray <[email protected]> Tested-by: Jonathan Gray <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Acked-by: Tapani Pälli <[email protected]> (v1) Acked-by: Jason Ekstrand <[email protected]> (v1)
* configure: error out when building static XOR sharedEmil Velikov2017-01-181-4/+2
| | | | | | | | | | | Current code warns out in such cases and falls-back to either static or shared. That can be easily missed amongst the volume produced by our configure script. Replace the warning with an error such that one gets direct feedback when they're doing something wrong. Signed-off-by: Emil Velikov <[email protected]>
* configure: explicitly require shared glapi for enable-driEmil Velikov2017-01-181-3/+1
| | | | | | | We've been using and depending on it for at least a couple of years. Make it obvious and error out, should one opt for it. Signed-off-by: Emil Velikov <[email protected]>
* configure: factor out commom egl/gbm checksEmil Velikov2017-01-181-29/+18
| | | | Signed-off-by: Emil Velikov <[email protected]>
* configure: remove HAVE_EGL_DRIVER_DRI[23]Emil Velikov2017-01-181-11/+3
| | | | | | | | | | We have them for local purposes in configure, where we can use their direct dependency. With the only remaining instance in the makefile(s) being always true, as it can be seen in the configure snippet. Signed-off-by: Emil Velikov <[email protected]>
* configure: forbid static EGL/GBMEmil Velikov2017-01-181-16/+20
| | | | | | | | | Both libraries implicitly require shared GLAPI which in itself mandates shared libraries. Stop pretending that one can use it and error out at configure stage. Signed-off-by: Emil Velikov <[email protected]>
* configure: remove unused AC_SUBST variablesEmil Velikov2017-01-181-10/+0
| | | | | | | v2: Rebase. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]> (v1)
* gallium: correctly manage libsensors link flagsEmil Velikov2017-01-181-3/+3
| | | | | | | | | | We should be using LIBS rather than the LDFLAGS variable. Furthermore try to keep the linking to the final stage, rather than intermetent static library. Cc: Steven Toth <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* mesa: make use of HAVE_FUNC_ATTRIBUTE_ALIAS macroEmil Velikov2017-01-181-8/+1
| | | | | | | | | | | We must make sure that xserver has an equivalent one-line change to its configure.ac as the glx/glapi headers get copied over. Then again, xserver does _not_ seem to set HAVE_ALIAS to begin with so one might want to look into that first. Cc: Adam Jackson <[email protected]> Signed-off-by: Emil Velikov <[email protected]>
* configure: use standard check for attribure aliasEmil Velikov2017-01-181-0/+1
| | | | | | | | | | Currently we have two macros - HAVE_ALIAS and GLX_ALIAS_UNSUPPORTED. To make it even better former of which is explicitly cleared in some cases while not in others. Clear all that up by using a single macro properly set during configure. Signed-off-by: Emil Velikov <[email protected]>
* configure.ac: Revert recent HAVE_LLVM changes.Jose Fonseca2017-01-181-42/+27
| | | | | | | | | | | | | | | | This reverts changes 903eb09b5fb78d47d0f8a4bdf826a113ca2aff40..1a0aa468f354f0ee94dd383cd40ae915584624aa: Tobias Droste (5): configure.ac: Rename MESA_LLVM to FOUND_LLVM configure.ac: Only set LLVM_LIBS if LLVM is used configure.ac: Only define HAVE_LLVM if LLVM is used configure.ac: Set and use HAVE_GALLIUM_LLVM define configure.ac: Don't check LLVM version in gallium_require_llvm They break scons build, and I'm not convinced this is the right fix. In particular changing HAVE_LLVM in the C code is something I'd rather avoid no matter what. So it's better to discuss without the pressure of broken builds.
* configure.ac: Respect LLVM_CFLAGS in LLVM version detectionTomasz Figa2017-01-181-0/+6
| | | | | | | | | | | | | | When compiling LLVM headers, including llvm-config.h, we need to respect LLVM_CFLAGS. This is especially crucial if LLVM is located in a non-standard location and it happens that llvm-config.h includes another header. In such case the detection would fail due to missing header, because the path is provided in LLVM_CFLAGS. Let's add LLVM_CFLAGS to global CFLAGS for the time of detection and then restore the original flags, as done in other places of the script. Signed-off-by: Tomasz Figa <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Don't check LLVM version in gallium_require_llvmTobias Droste2017-01-181-3/+1
| | | | | | | | | | | | | | | | This is actually not needed because the version is checked later. Line 2609: if test "x$enable_gallium_llvm" == "xyes"; then llvm_require_version $LLVM_REQUIRED_GALLIUM "gallium" llvm_add_default_components "gallium" HAVE_GALLIUM_LLVM=xyes DEFINES="${DEFINES} -DHAVE_GALLIUM_LLVM" fi Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Set and use HAVE_GALLIUM_LLVM defineTobias Droste2017-01-181-0/+1
| | | | | | | | | | | | Gallium code used HAVE_LLVM to check if it needs to compile code for LLVM in header and source files. With the new logic HAVE_LLVM is always set. Use extra define to figure out if LLVM is used. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99010 Signed-off-by: Tobias Droste <[email protected]>
* configure.ac: Only define HAVE_LLVM if LLVM is usedTobias Droste2017-01-181-7/+9
| | | | | | | | | Make sure that HAVE_LLVM compiler define is only set if LLVM is actually used. Signed-off-by: Tobias Droste <[email protected]> v2 [Emil] fold within the existing conditional Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Only set LLVM_LIBS if LLVM is usedTobias Droste2017-01-181-9/+24
| | | | | | | | | | | | This renames llvm_check_version_for to llvm_require_version and let it set a variable to mark that LLVM will be used. Use this to make a usefull configure output and to only check if the libs are found in LLVM if it is actually used. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99010 Signed-off-by: Tobias Droste <[email protected]>
* configure.ac: Rename MESA_LLVM to FOUND_LLVMTobias Droste2017-01-181-11/+10
| | | | | | | | | | | | | | | This renames MESA_LLVM to FOUND_LLVM and updates the config.log report to say if LLVM is found or not, to make clear that this does not mean that it is used. There are no MESA_LLVM users so drop the AC_SUBST. v2 [Emil] - Polish test: -a over && test, = over ==, unquiote xyes - other ? Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* vl/dri3: use external texture as back buffers(v4)Nayan Deshmukh2017-01-171-1/+1
| | | | | | | | | | | | | | | | | | | | | dri3 allows us to send handle of a texture directly to X so this patch allows a state tracker to directly send its texture to X to be used as back buffer and avoids extra copying v2: use clip width/height to display a portion of the surface v3: remove redundant variables, fix wrapping, rename variables handle vaapi path v3.1: we need clip_width/height for every frame so we don't need to maintain it for each buffer instead use a global variable v4: In case of single gpu we can cache the buffers as applications use constant number of buffer and we can avoid calls to present extension for every frame Reviewed and Suggested-by: Leo Liu <[email protected]> Acked-by: Christian König <[email protected]> Tested-by: Andy Furniss <[email protected]> Signed-off-by: Nayan Deshmukh <[email protected]>
* egl/wayland: Avoid race conditions when on non-main threadJonas Ådahl2017-01-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | 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. By introducing a wl_display proxy wrapper and using this when performing round trips (via wl_display_sync()) and retrieving the global objects (via wl_display_get_registry()), the mentioned race condition is avoided. Signed-off-by: Jonas Ådahl <[email protected]> Cc: [email protected] Reviewed-by: Daniel Stone <[email protected]>