Merge pull request #62869 from ambrop72/vulkan-loader-search-path

vulkan-loader: Always include /run/opengl-driver(-32)/share in search path.
This commit is contained in:
Matthew Bauer 2019-06-26 13:21:10 -04:00 committed by GitHub
commit 525f0b0436
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 48 additions and 1 deletions

View File

@ -21,8 +21,10 @@ stdenv.mkDerivation rec {
buildInputs = [ cmake python3 xlibsWrapper libxcb libXrandr libXext wayland ];
enableParallelBuilding = true;
patches = [ ./system-search-path.patch ];
cmakeFlags = [
"-DFALLBACK_DATA_DIRS=${addOpenGLRunpath.driverLink}/share:/usr/local/share:/usr/share"
"-DSYSTEM_SEARCH_PATH=${addOpenGLRunpath.driverLink}/share"
"-DVULKAN_HEADERS_INSTALL_DIR=${vulkan-headers}"
];

View File

@ -0,0 +1,45 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9ac5ce835..cbdb0ff56 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -88,6 +88,12 @@ if(UNIX)
STRING
"Search path to use when XDG_DATA_DIRS is unset or empty or the current process is SUID/SGID. Default is freedesktop compliant."
)
+ set(
+ SYSTEM_SEARCH_PATH ""
+ CACHE
+ STRING
+ "Search path to always use, after all other search paths."
+ )
endif()
if(UNIX AND NOT APPLE) # i.e.: Linux
@@ -184,6 +190,7 @@ if(UNIX)
add_definitions(-DFALLBACK_CONFIG_DIRS="${FALLBACK_CONFIG_DIRS}")
add_definitions(-DFALLBACK_DATA_DIRS="${FALLBACK_DATA_DIRS}")
add_definitions(-DSYSCONFDIR="${CMAKE_INSTALL_FULL_SYSCONFDIR}")
+ add_definitions(-DSYSTEM_SEARCH_PATH="${SYSTEM_SEARCH_PATH}")
# Make sure /etc is searched by the loader
if(NOT (CMAKE_INSTALL_FULL_SYSCONFDIR STREQUAL "/etc"))
diff --git a/loader/loader.c b/loader/loader.c
index 0d3b5a947..abe357004 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -3688,6 +3688,7 @@ static VkResult ReadDataFilesInSearchPaths(const struct loader_instance *inst, e
search_path_size += DetermineDataFilePathSize(xdgdatahome, rel_size);
search_path_size += DetermineDataFilePathSize(home_root, rel_size);
}
+ search_path_size += DetermineDataFilePathSize(SYSTEM_SEARCH_PATH, rel_size);
#endif
}
}
@@ -3737,6 +3738,7 @@ static VkResult ReadDataFilesInSearchPaths(const struct loader_instance *inst, e
CopyDataFilePath(xdgdatahome, relative_location, rel_size, &cur_path_ptr);
CopyDataFilePath(home_root, relative_location, rel_size, &cur_path_ptr);
}
+ CopyDataFilePath(SYSTEM_SEARCH_PATH, relative_location, rel_size, &cur_path_ptr);
}
// Remove the last path separator