diff --git a/CMakeLists.txt b/CMakeLists.txt
index 70cd52bf568debd9d7b8d66057c9d9a35b330301..bb92c8a7e10364cf578fdb87ac207049989e4b5d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -84,6 +84,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
 	find_package(udev REQUIRED)
 	set(XRT_HAVE_V4L2 TRUE)
 	if(PKGCONFIG_FOUND)
+		pkg_check_modules(XRANDR xrandr)
+
 		pkg_check_modules(XCB xcb xcb-randr x11-xcb)
 
 		pkg_search_module(WAYLAND wayland-client)
@@ -116,6 +118,7 @@ option(BUILD_TESTING "Enable building of the test suite?" ON)
 cmake_dependent_option(CMAKE_INTERPROCEDURAL_OPTIMIZATION "Enable inter-procedural (link-time) optimization" OFF "HAS_IPO" OFF)
 cmake_dependent_option(XRT_HAVE_WAYLAND "Enable Wayland support" ON "WAYLAND_FOUND AND WAYLAND_SCANNER_FOUND AND WAYLAND_PROTOCOLS_FOUND" OFF)
 cmake_dependent_option(XRT_HAVE_XLIB "Enable xlib support" ON "X11_FOUND" OFF)
+cmake_dependent_option(XRT_HAVE_XRANDR "Enable xlib-xrandr support" ON "XRANDR_FOUND" OFF)
 cmake_dependent_option(XRT_HAVE_XCB "Enable xcb support" ON "XCB_FOUND" OFF)
 
 cmake_dependent_option(XRT_HAVE_VULKAN "Enable Vulkan Graphics API support (also needed for compositor)" ON "VULKAN_FOUND" OFF)
@@ -207,6 +210,10 @@ endif()
 # Flags
 ###
 
+if(XRT_HAVE_XLIB AND NOT XRT_HAVE_XRANDR)
+	message(FATAL_ERROR "XRT_HAVE_XLIB requires XRT_HAVE_XRANDR but XRT_HAVE_XRANDR is disabled")
+endif()
+
 if(XRT_HAVE_OPENGLES AND NOT XRT_HAVE_EGL)
 	message(FATAL_ERROR "XRT_HAVE_OPENGLES requires XRT_HAVE_EGL but XRT_HAVE_EGL is disabled")
 endif()
@@ -225,7 +232,7 @@ endif()
 if(XRT_HAVE_XCB)
 	set(VK_USE_PLATFORM_XCB_KHR TRUE)
 endif()
-if(XRT_HAVE_XCB AND XRT_HAVE_XLIB)
+if(XRT_HAVE_XCB AND XRT_HAVE_XLIB AND XRT_HAVE_XRANDR)
 	set(VK_USE_PLATFORM_XLIB_XRANDR_EXT TRUE)
 endif()
 if(XRT_HAVE_WAYLAND)
@@ -274,6 +281,7 @@ message(STATUS "#    GIT_DESC:     ${GIT_DESC}")
 message(STATUS "#")
 message(STATUS "#    WAYLAND:      ${XRT_HAVE_WAYLAND}")
 message(STATUS "#    XLIB:         ${XRT_HAVE_XLIB}")
+message(STATUS "#    XRANDR:       ${XRT_HAVE_XRANDR}")
 message(STATUS "#    XCB:          ${XRT_HAVE_XCB}")
 message(STATUS "#    OPENGL:       ${XRT_HAVE_OPENGL}")
 message(STATUS "#    OPENGLES:     ${XRT_HAVE_OPENGLES}")