[Mesa-dev] [PATCH mesa] vulkan: EXT_acquire_xlib_display requires libXrandr headers to build

Keith Packard keithp at keithp.com
Tue Jun 19 23:06:14 UTC 2018


When VK_USE_PLATFORM_XLIB_XRANDR_EXT is defined, vulkan.h includes
X11/extensions/Xrandr.h for the RROutput typedef which is used in
the vkGetRandROutputDisplayEXT interface.

Make sure we have the required header by checking during the build,
and also set CFLAGS to point at the right directory.

We don't need to link against the library as we don't use any
functions from there, so don't add the _LIBS value in the autotools
build.

Signed-off-by: Keith Packard <keithp at keithp.com>
---
 configure.ac                 | 2 ++
 meson.build                  | 2 ++
 src/amd/vulkan/Makefile.am   | 3 ++-
 src/amd/vulkan/meson.build   | 2 +-
 src/intel/Makefile.vulkan.am | 3 ++-
 src/intel/vulkan/meson.build | 2 +-
 src/vulkan/Makefile.am       | 2 ++
 src/vulkan/wsi/meson.build   | 2 +-
 8 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/configure.ac b/configure.ac
index 06524107786..e4320e8da7a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1877,6 +1877,8 @@ fi
 if test x"$have_xlease" = xyes; then
     randr_modules="x11-xcb xcb-randr"
     PKG_CHECK_MODULES([XCB_RANDR], [$randr_modules])
+    xlib_randr_modules="xrandr"
+    PKG_CHECK_MODULES([XLIB_RANDR], [$xlib_randr_modules])
 fi
 
 AM_CONDITIONAL(HAVE_PLATFORM_X11, echo "$platforms" | grep -q 'x11')
diff --git a/meson.build b/meson.build
index ce54393fded..82279aad26c 100644
--- a/meson.build
+++ b/meson.build
@@ -1301,6 +1301,7 @@ dep_xcb_sync = null_dep
 dep_xcb_xfixes = null_dep
 dep_xshmfence = null_dep
 dep_xcb_xrandr = null_dep
+dep_xlib_xrandr = null_dep
 if with_platform_x11
   if with_glx == 'xlib' or with_glx == 'gallium-xlib'
     dep_x11 = dependency('x11')
@@ -1349,6 +1350,7 @@ if with_platform_x11
   endif
   if with_xlib_lease
     dep_xcb_xrandr = dependency('xcb-randr', version : '>= 1.12')
+    dep_xlib_xrandr = dependency('xrandr', version : '>= 1.3')
   endif
 endif
 
diff --git a/src/amd/vulkan/Makefile.am b/src/amd/vulkan/Makefile.am
index 8279fe4a81f..f9d3622f744 100644
--- a/src/amd/vulkan/Makefile.am
+++ b/src/amd/vulkan/Makefile.am
@@ -90,7 +90,8 @@ endif
 if HAVE_XLIB_LEASE
 AM_CPPFLAGS += \
 	-DVK_USE_PLATFORM_XLIB_XRANDR_EXT \
-	$(XCB_RANDR_CFLAGS)
+	$(XCB_RANDR_CFLAGS) \
+	$(XLIB_RANDR_CFLAGS)
 
 VULKAN_LIB_DEPS += $(XCB_RANDR_LIBS)
 endif
diff --git a/src/amd/vulkan/meson.build b/src/amd/vulkan/meson.build
index bcdf83e0609..22857926fa1 100644
--- a/src/amd/vulkan/meson.build
+++ b/src/amd/vulkan/meson.build
@@ -121,7 +121,7 @@ if with_platform_drm
 endif
 
 if with_xlib_lease
-  radv_deps += dep_xcb_xrandr
+  radv_deps += [dep_xcb_xrandr, dep_xlib_xrandr]
   radv_flags += '-DVK_USE_PLATFORM_XLIB_XRANDR_EXT'
 endif
 
diff --git a/src/intel/Makefile.vulkan.am b/src/intel/Makefile.vulkan.am
index ae625695814..4a80c3ae412 100644
--- a/src/intel/Makefile.vulkan.am
+++ b/src/intel/Makefile.vulkan.am
@@ -202,7 +202,8 @@ endif
 if HAVE_XLIB_LEASE
 VULKAN_CPPFLAGS += \
 	-DVK_USE_PLATFORM_XLIB_XRANDR_EXT \
-	$(XCB_RANDR_CFLAGS)
+	$(XCB_RANDR_CFLAGS) \
+	$(XLIB_RANDR_CFLAGS)
 VULKAN_LIB_DEPS += $(XCB_RANDR_LIBS)
 endif
 
diff --git a/src/intel/vulkan/meson.build b/src/intel/vulkan/meson.build
index 4b0652f757b..e427c7471f4 100644
--- a/src/intel/vulkan/meson.build
+++ b/src/intel/vulkan/meson.build
@@ -170,7 +170,7 @@ if with_platform_drm
 endif
 
 if with_xlib_lease
-  anv_deps += dep_xcb_xrandr
+  anv_deps += [dep_xcb_xrandr, dep_xlib_xrandr]
   anv_flags += '-DVK_USE_PLATFORM_XLIB_XRANDR_EXT'
 endif
 
diff --git a/src/vulkan/Makefile.am b/src/vulkan/Makefile.am
index 9deb6e18ff0..ce1a79d0c48 100644
--- a/src/vulkan/Makefile.am
+++ b/src/vulkan/Makefile.am
@@ -63,6 +63,8 @@ endif
 
 if HAVE_XLIB_LEASE
 AM_CPPFLAGS += \
+	$(XCB_RANDR_CFLAGS) \
+	$(XLIB_RANDR_CFLAGS) \
 	-DVK_USE_PLATFORM_XLIB_XRANDR_EXT
 endif
 
diff --git a/src/vulkan/wsi/meson.build b/src/vulkan/wsi/meson.build
index 3501a864e18..d073b23dc25 100644
--- a/src/vulkan/wsi/meson.build
+++ b/src/vulkan/wsi/meson.build
@@ -68,7 +68,7 @@ if with_platform_drm
 endif
 
 if with_xlib_lease
-  vulkan_wsi_deps += dep_xcb_xrandr
+  vulkan_wsi_deps += [dep_xcb_xrandr, dep_xlib_xrandr]
   vulkan_wsi_args += '-DVK_USE_PLATFORM_XLIB_XRANDR_EXT'
 endif
 
-- 
2.17.1



More information about the mesa-dev mailing list