vulkan-loader: 1.0.26.0 -> 1.0.39.1
This commit is contained in:
parent
8d379ddfef
commit
dbd4a35060
|
@ -2,15 +2,15 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "glslang-git-${version}";
|
||||
version = "2016-08-26";
|
||||
version = "2016-12-21";
|
||||
|
||||
# `vulkan-loader` requires a specific version of `glslang` as specified in
|
||||
# `<vulkan-loader-repo>/glslang_revision`.
|
||||
src = fetchFromGitHub {
|
||||
owner = "KhronosGroup";
|
||||
repo = "glslang";
|
||||
rev = "81cd764b5ffc475bc73f1fb35f75fd1171bb2343";
|
||||
sha256 = "1vfwl6lzkjh9nh29q32b7zca4q1abf3q4nqkahskijgznw5lr59g";
|
||||
rev = "807a0d9e2f4e176f75d62ac3c179c81800ec2608";
|
||||
sha256 = "02jckgihqhagm73glipb4c6ri5fr3pnbxb5vrznn2vppyfdfghbj";
|
||||
};
|
||||
|
||||
patches = [ ./install-headers.patch ];
|
||||
|
|
|
@ -1,21 +1,30 @@
|
|||
diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt
|
||||
index 48a6c46..593d941 100755
|
||||
index c538e84..6ece1ab 100755
|
||||
--- a/SPIRV/CMakeLists.txt
|
||||
+++ b/SPIRV/CMakeLists.txt
|
||||
@@ -42,3 +42,8 @@ endif(WIN32)
|
||||
@@ -34,8 +34,9 @@ if(ENABLE_AMD_EXTENSIONS)
|
||||
endif(ENABLE_AMD_EXTENSIONS)
|
||||
|
||||
if(ENABLE_NV_EXTENSIONS)
|
||||
- set(HEADERS
|
||||
- GLSL.ext.NV.h)
|
||||
+ list(APPEND
|
||||
+ HEADERS
|
||||
+ GLSL.ext.NV.h)
|
||||
endif(ENABLE_NV_EXTENSIONS)
|
||||
|
||||
add_library(SPIRV STATIC ${SOURCES} ${HEADERS})
|
||||
@@ -51,3 +52,5 @@ endif(WIN32)
|
||||
|
||||
install(TARGETS SPIRV SPVRemapper
|
||||
ARCHIVE DESTINATION lib)
|
||||
+
|
||||
+foreach(file ${HEADERS} ${SPVREMAP_HEADERS})
|
||||
+ get_filename_component(dir ${file} DIRECTORY)
|
||||
+ install(FILES ${file} DESTINATION include/SPIRV/${dir})
|
||||
+endforeach()
|
||||
+install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION include/SPIRV/)
|
||||
diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
|
||||
index ff91135..4318279 100644
|
||||
index 95d4bdd..e7fda90 100644
|
||||
--- a/glslang/CMakeLists.txt
|
||||
+++ b/glslang/CMakeLists.txt
|
||||
@@ -90,3 +90,8 @@ endif(WIN32)
|
||||
@@ -93,3 +93,8 @@ endif(WIN32)
|
||||
|
||||
install(TARGETS glslang
|
||||
ARCHIVE DESTINATION lib)
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
{ stdenv, fetchgit, fetchFromGitHub, cmake, pkgconfig, git, python3,
|
||||
python3Packages, glslang, spirv-tools, x11, libxcb, wayland }:
|
||||
python3Packages, glslang, spirv-tools, x11, libxcb, libXrandr,
|
||||
libXext, wayland }:
|
||||
|
||||
let
|
||||
version = "1.0.26.0";
|
||||
version = "1.0.39.1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "KhronosGroup";
|
||||
repo = "Vulkan-LoaderAndValidationLayers";
|
||||
rev = "sdk-${version}";
|
||||
sha256 = "157m746hc76xrxd3qq0f44f5dy7pjbz8cx74ykqrlbc7rmpjpk58";
|
||||
sha256 = "0y9zzrnjjjza2kkf5jfsdqhn98md6rsq0hb7jg62z2dipzky7zdp";
|
||||
};
|
||||
in
|
||||
|
||||
|
@ -15,23 +16,13 @@ stdenv.mkDerivation rec {
|
|||
name = "vulkan-loader-${version}";
|
||||
inherit version src;
|
||||
|
||||
prePatch = ''
|
||||
if [ "$(cat '${src}/spirv-tools_revision')" != '${spirv-tools.src.rev}' ] \
|
||||
|| [ "$(cat '${src}/spirv-headers_revision')" != '${spirv-tools.headers.rev}' ] \
|
||||
|| [ "$(cat '${src}/glslang_revision')" != '${glslang.src.rev}' ]
|
||||
then
|
||||
echo "Version mismatch, aborting!"
|
||||
false
|
||||
fi
|
||||
'';
|
||||
|
||||
buildInputs = [ cmake pkgconfig git python3 python3Packages.lxml
|
||||
glslang spirv-tools x11 libxcb wayland
|
||||
glslang spirv-tools x11 libxcb libXrandr libXext wayland
|
||||
];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
cmakeFlags = [
|
||||
"-DBUILD_WSI_WAYLAND_SUPPORT=ON" # XLIB/XCB supported by default
|
||||
"-DBUILD_WSI_MIR_SUPPORT=OFF"
|
||||
];
|
||||
|
||||
patches = [ ./use-xdg-paths.patch ];
|
||||
|
@ -40,7 +31,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
preConfigure = ''
|
||||
checkRev() {
|
||||
[ "$2" = $(cat "$1_revision") ] || (echo "ERROR: dependency $1 is revision $2 but should be revision" $(cat "$1_revision") && exit 1)
|
||||
[ "$2" = $(cat "external_revisions/$1_revision") ] || (echo "ERROR: dependency $1 is revision $2 but should be revision" $(cat "external_revisions/$1_revision") && exit 1)
|
||||
}
|
||||
checkRev spirv-tools "${spirv-tools.src.rev}"
|
||||
checkRev spirv-headers "${spirv-tools.headers.rev}"
|
||||
|
@ -58,7 +49,8 @@ stdenv.mkDerivation rec {
|
|||
mkdir -p $dev/include
|
||||
cp -rv ../include $dev/
|
||||
mkdir -p $demos/bin
|
||||
cp demos/smoketest demos/tri demos/cube demos/*.spv demos/*.ppm $demos/bin
|
||||
cp demos/*.spv demos/*.ppm $demos/bin
|
||||
find demos -type f -executable -not -name vulkaninfo -exec cp {} $demos/bin \;
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
|
|
|
@ -1,142 +1,322 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 27ab6e5..e59256e 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -256,17 +256,10 @@ if(NOT WIN32)
|
||||
include(GNUInstallDirs)
|
||||
|
||||
add_definitions(-DSYSCONFDIR="${CMAKE_INSTALL_FULL_SYSCONFDIR}")
|
||||
- add_definitions(-DDATADIR="${CMAKE_INSTALL_FULL_DATADIR}")
|
||||
-
|
||||
# Make sure /etc is searched by the loader
|
||||
- if (NOT (CMAKE_INSTALL_FULL_SYSCONFDIR STREQUAL "/etc"))
|
||||
+ if(NOT (CMAKE_INSTALL_FULL_SYSCONFDIR STREQUAL "/etc"))
|
||||
add_definitions(-DEXTRASYSCONFDIR="/etc")
|
||||
endif()
|
||||
-
|
||||
- # Make sure /usr/share is searched by the loader
|
||||
- if (NOT (CMAKE_INSTALL_FULL_DATADIR STREQUAL "/usr/share"))
|
||||
- add_definitions(-DEXTRADATADIR="/usr/share")
|
||||
- endif()
|
||||
endif()
|
||||
|
||||
if(UNIX)
|
||||
diff --git a/loader/loader.c b/loader/loader.c
|
||||
index a950ea1..9462d05 100644
|
||||
index 24758f4..af7cc85 100644
|
||||
--- a/loader/loader.c
|
||||
+++ b/loader/loader.c
|
||||
@@ -2671,6 +2671,94 @@ static VkResult loader_get_manifest_files(
|
||||
}
|
||||
@@ -2909,7 +2909,7 @@ static VkResult
|
||||
loader_get_manifest_files(const struct loader_instance *inst,
|
||||
const char *env_override, const char *source_override,
|
||||
bool is_layer, bool warn_if_not_present,
|
||||
- const char *location, const char *home_location,
|
||||
+ const char *location, const char *relative_location,
|
||||
struct loader_manifest_files *out_files) {
|
||||
const char * override = NULL;
|
||||
char *override_getenv = NULL;
|
||||
@@ -2941,9 +2941,9 @@ loader_get_manifest_files(const struct loader_instance *inst,
|
||||
}
|
||||
|
||||
#if !defined(_WIN32)
|
||||
- if (location == NULL && home_location == NULL) {
|
||||
+ if (location == NULL && relative_location == NULL) {
|
||||
#else
|
||||
- home_location = NULL;
|
||||
+ relative_location = NULL;
|
||||
if (location == NULL) {
|
||||
#endif
|
||||
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
@@ -2962,16 +2962,89 @@ loader_get_manifest_files(const struct loader_instance *inst,
|
||||
// Make a copy of the input we are using so it is not modified
|
||||
// Also handle getting the location(s) from registry on Windows
|
||||
if (override == NULL) {
|
||||
- loc = loader_stack_alloc(strlen(location) + 1);
|
||||
+ size_t loc_size = strlen(location) + 1;
|
||||
+#if !defined(_WIN32)
|
||||
+ if (home_location && override == NULL) {
|
||||
+ char *xdgconfdirs = secure_getenv("XDG_CONFIG_DIRS");
|
||||
+ char *xdgdatadirs = secure_getenv("XDG_DATA_DIRS");
|
||||
+ char *cur, *src = loc;
|
||||
+ size_t src_size = strlen(src), rel_size = strlen(home_location);
|
||||
+ size_t size = 0;
|
||||
+
|
||||
+ if (src_size > 0)
|
||||
+ size += src_size + 1;
|
||||
+
|
||||
+ if (xdgconfdirs == NULL)
|
||||
+ const char *xdgconfdirs = secure_getenv("XDG_CONFIG_DIRS");
|
||||
+ const char *xdgdatadirs = secure_getenv("XDG_DATA_DIRS");
|
||||
+ if (xdgconfdirs == NULL || xdgconfdirs[0] == '\0')
|
||||
+ xdgconfdirs = "/etc/xdg";
|
||||
+ if (xdgdatadirs == NULL)
|
||||
+ if (xdgdatadirs == NULL || xdgdatadirs[0] == '\0')
|
||||
+ xdgdatadirs = "/usr/local/share:/usr/share";
|
||||
+
|
||||
+ for (char *x = xdgconfdirs; *x; ++x)
|
||||
+ if (*x == PATH_SEPERATOR) size += rel_size;
|
||||
+ size += strlen(xdgconfdirs) + rel_size + 1;
|
||||
+ for (char *x = xdgdatadirs; *x; ++x)
|
||||
+ if (*x == PATH_SEPERATOR) size += rel_size;
|
||||
+ size += strlen(xdgdatadirs) + rel_size + 1;
|
||||
+
|
||||
+#if defined(LOCALPREFIX)
|
||||
+ size += strlen(LOCALPREFIX "/" SYSCONFDIR) + rel_size + 1;
|
||||
+ size += strlen(LOCALPREFIX "/" DATADIR) + rel_size + 1;
|
||||
+ const size_t rel_size = strlen(relative_location);
|
||||
+ // Leave space for trailing separators
|
||||
+ loc_size += strlen(xdgconfdirs) + strlen(xdgdatadirs) + 2*rel_size + 2;
|
||||
+ for (const char *x = xdgconfdirs; *x; ++x)
|
||||
+ if (*x == PATH_SEPARATOR) loc_size += rel_size;
|
||||
+ for (const char *x = xdgdatadirs; *x; ++x)
|
||||
+ if (*x == PATH_SEPARATOR) loc_size += rel_size;
|
||||
+ loc_size += strlen(SYSCONFDIR) + rel_size + 1;
|
||||
+#ifdef EXTRASYSCONFDIR
|
||||
+ loc_size += strlen(EXTRASYSCONFDIR) + rel_size + 1;
|
||||
+#endif
|
||||
+#endif
|
||||
+ loc = loader_stack_alloc(loc_size);
|
||||
if (loc == NULL) {
|
||||
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"loader_get_manifest_files: Failed to allocate "
|
||||
"%d bytes for manifest file location.",
|
||||
- strlen(location));
|
||||
+ loc_size);
|
||||
res = VK_ERROR_OUT_OF_HOST_MEMORY;
|
||||
goto out;
|
||||
}
|
||||
- strcpy(loc, location);
|
||||
+ char *loc_write = loc;
|
||||
+#if !defined(_WIN32)
|
||||
+ const char *loc_read;
|
||||
+
|
||||
+ loc = cur = loader_stack_alloc(size);
|
||||
+ if (cur == NULL) {
|
||||
+ loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
+ "Out of memory can't get manifest files");
|
||||
+ res = VK_ERROR_OUT_OF_HOST_MEMORY;
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ if (src_size > 0) {
|
||||
+ memcpy(cur, src, src_size);
|
||||
+ cur += src_size;
|
||||
+ *cur++ = PATH_SEPERATOR;
|
||||
+ }
|
||||
+
|
||||
+ src = xdgconfdirs;
|
||||
+ for (char *x = src;; ++x) {
|
||||
+ if (*x == PATH_SEPERATOR || *x == 0) {
|
||||
+ size_t s = x - src;
|
||||
+ memcpy(cur, src, s); cur += s;
|
||||
+ memcpy(cur, home_location, rel_size); cur += rel_size;
|
||||
+ *cur++ = PATH_SEPERATOR;
|
||||
+ loc_read = &xdgconfdirs[0];
|
||||
+ for (const char *x = loc_read;; ++x) {
|
||||
+ if (*x == PATH_SEPARATOR || *x == '\0') {
|
||||
+ const size_t s = x - loc_read;
|
||||
+ memcpy(loc_write, loc_read, s);
|
||||
+ loc_write += s;
|
||||
+ memcpy(loc_write, relative_location, rel_size);
|
||||
+ loc_write += rel_size;
|
||||
+ *loc_write++ = PATH_SEPARATOR;
|
||||
+ if (*x == 0)
|
||||
+ break;
|
||||
+ src = ++x;
|
||||
+ loc_read = ++x;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+#if defined(LOCALPREFIX)
|
||||
+ strcpy(cur, LOCALPREFIX "/" SYSCONFDIR);
|
||||
+ cur += strlen(cur);
|
||||
+ memcpy(cur, home_location, rel_size); cur += rel_size;
|
||||
+ *cur++ = PATH_SEPERATOR;
|
||||
+ memcpy(loc_write, SYSCONFDIR, strlen(SYSCONFDIR));
|
||||
+ loc_write += strlen(SYSCONFDIR);
|
||||
+ memcpy(loc_write, relative_location, rel_size);
|
||||
+ loc_write += rel_size;
|
||||
+ *loc_write++ = PATH_SEPARATOR;
|
||||
+
|
||||
+#ifdef EXTRASYSCONFDIR
|
||||
+ memcpy(loc_write, EXTRASYSCONFDIR, strlen(EXTRASYSCONFDIR));
|
||||
+ loc_write += strlen(EXTRASYSCONFDIR);
|
||||
+ memcpy(loc_write, relative_location, rel_size);
|
||||
+ loc_write += rel_size;
|
||||
+ *loc_write++ = PATH_SEPARATOR;
|
||||
+#endif
|
||||
+
|
||||
+ src = xdgdatadirs;
|
||||
+ for (char *x = src;; ++x) {
|
||||
+ if (*x == PATH_SEPERATOR || *x == 0) {
|
||||
+ size_t s = x - src;
|
||||
+ memcpy(cur, src, s); cur += s;
|
||||
+ memcpy(cur, home_location, rel_size); cur += rel_size;
|
||||
+ *cur++ = PATH_SEPERATOR;
|
||||
+ loc_read = &xdgdatadirs[0];
|
||||
+ for (const char *x = loc_read;; ++x) {
|
||||
+ if (*x == PATH_SEPARATOR || *x == '\0') {
|
||||
+ const size_t s = x - loc_read;
|
||||
+ memcpy(loc_write, loc_read, s);
|
||||
+ loc_write += s;
|
||||
+ memcpy(loc_write, relative_location, rel_size);
|
||||
+ loc_write += rel_size;
|
||||
+ *loc_write++ = PATH_SEPARATOR;
|
||||
+ if (*x == 0)
|
||||
+ break;
|
||||
+ src = ++x;
|
||||
+ loc_read = ++x;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+#if defined(LOCALPREFIX)
|
||||
+ strcpy(cur, LOCALPREFIX "/" DATADIR);
|
||||
+ cur += strlen(cur);
|
||||
+ memcpy(cur, home_location, rel_size); cur += rel_size;
|
||||
+ *cur++ = PATH_SEPERATOR;
|
||||
+ --loc_write;
|
||||
+ *loc_write = '\0';
|
||||
+#else
|
||||
+ memcpy(loc_write, location, loc_size);
|
||||
+ loc[loc_size-1] = '\0';
|
||||
+#endif
|
||||
+
|
||||
+ loc[size - 1] = 0;
|
||||
+ assert(cur == loc + size);
|
||||
+ list_is_dirs = true;
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
// Print out the paths being searched if debugging is enabled
|
||||
loader_log(inst, VK_DEBUG_REPORT_DEBUG_BIT_EXT, 0,
|
||||
"Searching the following paths for manifest files: %s\n", loc);
|
||||
#if defined(_WIN32)
|
||||
VkResult reg_result = loaderGetRegistryFiles(inst, loc, ®);
|
||||
if (VK_SUCCESS != reg_result || NULL == reg) {
|
||||
@@ -3122,14 +3195,14 @@ loader_get_manifest_files(const struct loader_instance *inst,
|
||||
}
|
||||
file = next_file;
|
||||
#if !defined(_WIN32)
|
||||
- if (home_location != NULL &&
|
||||
+ if (relative_location != NULL &&
|
||||
(next_file == NULL || *next_file == '\0') && override == NULL) {
|
||||
char *xdgdatahome = secure_getenv("XDG_DATA_HOME");
|
||||
size_t len;
|
||||
if (xdgdatahome != NULL) {
|
||||
|
||||
char *home_loc = loader_stack_alloc(strlen(xdgdatahome) + 2 +
|
||||
- strlen(home_location));
|
||||
+ strlen(relative_location));
|
||||
if (home_loc == NULL) {
|
||||
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
"loader_get_manifest_files: Failed to allocate "
|
||||
@@ -3139,15 +3212,15 @@ loader_get_manifest_files(const struct loader_instance *inst,
|
||||
}
|
||||
strcpy(home_loc, xdgdatahome);
|
||||
// Add directory separator if needed
|
||||
- if (home_location[0] != DIRECTORY_SYMBOL) {
|
||||
+ if (relative_location[0] != DIRECTORY_SYMBOL) {
|
||||
len = strlen(home_loc);
|
||||
home_loc[len] = DIRECTORY_SYMBOL;
|
||||
home_loc[len + 1] = '\0';
|
||||
}
|
||||
- strcat(home_loc, home_location);
|
||||
+ strcat(home_loc, relative_location);
|
||||
file = home_loc;
|
||||
next_file = loader_get_next_path(file);
|
||||
- home_location = NULL;
|
||||
+ relative_location = NULL;
|
||||
|
||||
loader_log(
|
||||
inst, VK_DEBUG_REPORT_DEBUG_BIT_EXT, 0,
|
||||
@@ -3160,7 +3233,7 @@ loader_get_manifest_files(const struct loader_instance *inst,
|
||||
char *home = secure_getenv("HOME");
|
||||
if (home != NULL) {
|
||||
char *home_loc = loader_stack_alloc(strlen(home) + 16 +
|
||||
- strlen(home_location));
|
||||
+ strlen(relative_location));
|
||||
if (home_loc == NULL) {
|
||||
loader_log(
|
||||
inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
|
||||
@@ -3178,15 +3251,15 @@ loader_get_manifest_files(const struct loader_instance *inst,
|
||||
}
|
||||
strcat(home_loc, ".local/share");
|
||||
|
||||
- if (home_location[0] != DIRECTORY_SYMBOL) {
|
||||
+ if (relative_location[0] != DIRECTORY_SYMBOL) {
|
||||
len = strlen(home_loc);
|
||||
home_loc[len] = DIRECTORY_SYMBOL;
|
||||
home_loc[len + 1] = '\0';
|
||||
}
|
||||
- strcat(home_loc, home_location);
|
||||
+ strcat(home_loc, relative_location);
|
||||
file = home_loc;
|
||||
next_file = loader_get_next_path(file);
|
||||
- home_location = NULL;
|
||||
+ relative_location = NULL;
|
||||
|
||||
loader_log(
|
||||
inst, VK_DEBUG_REPORT_DEBUG_BIT_EXT, 0,
|
||||
@@ -3263,7 +3336,7 @@ VkResult loader_icd_scan(const struct loader_instance *inst,
|
||||
// Get a list of manifest files for ICDs
|
||||
res = loader_get_manifest_files(inst, "VK_ICD_FILENAMES", NULL, false, true,
|
||||
DEFAULT_VK_DRIVERS_INFO,
|
||||
- HOME_VK_DRIVERS_INFO, &manifest_files);
|
||||
+ RELATIVE_VK_DRIVERS_INFO, &manifest_files);
|
||||
if (VK_SUCCESS != res || manifest_files.count == 0) {
|
||||
goto out;
|
||||
}
|
||||
@@ -3490,7 +3563,7 @@ void loader_layer_scan(const struct loader_instance *inst,
|
||||
if (VK_SUCCESS !=
|
||||
loader_get_manifest_files(inst, LAYERS_PATH_ENV, LAYERS_SOURCE_PATH,
|
||||
true, true, DEFAULT_VK_ELAYERS_INFO,
|
||||
- HOME_VK_ELAYERS_INFO, &manifest_files[0])) {
|
||||
+ RELATIVE_VK_ELAYERS_INFO, &manifest_files[0])) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -3499,7 +3572,7 @@ void loader_layer_scan(const struct loader_instance *inst,
|
||||
// overridden by LAYERS_PATH_ENV
|
||||
if (VK_SUCCESS != loader_get_manifest_files(inst, NULL, NULL, true, false,
|
||||
DEFAULT_VK_ILAYERS_INFO,
|
||||
- HOME_VK_ILAYERS_INFO,
|
||||
+ RELATIVE_VK_ILAYERS_INFO,
|
||||
&manifest_files[1])) {
|
||||
goto out;
|
||||
}
|
||||
@@ -3569,7 +3642,7 @@ void loader_implicit_layer_scan(const struct loader_instance *inst,
|
||||
// overridden by LAYERS_PATH_ENV
|
||||
VkResult res = loader_get_manifest_files(
|
||||
inst, NULL, NULL, true, false, DEFAULT_VK_ILAYERS_INFO,
|
||||
- HOME_VK_ILAYERS_INFO, &manifest_files);
|
||||
+ RELATIVE_VK_ILAYERS_INFO, &manifest_files);
|
||||
if (VK_SUCCESS != res || manifest_files.count == 0) {
|
||||
return;
|
||||
}
|
||||
diff --git a/loader/vk_loader_platform.h b/loader/vk_loader_platform.h
|
||||
index 3a02640..70a2652 100644
|
||||
index dc4ac10..50a7966 100644
|
||||
--- a/loader/vk_loader_platform.h
|
||||
+++ b/loader/vk_loader_platform.h
|
||||
@@ -57,35 +57,10 @@
|
||||
@@ -57,47 +57,9 @@
|
||||
#define VULKAN_ILAYERCONF_DIR "implicit_layer.d"
|
||||
#define VULKAN_LAYER_DIR "layer"
|
||||
|
||||
-#if defined(LOCALPREFIX)
|
||||
-#define LOCAL_DRIVERS_INFO \
|
||||
- LOCALPREFIX "/" SYSCONFDIR VULKAN_DIR VULKAN_ICDCONF_DIR ":" \
|
||||
- LOCALPREFIX "/" DATADIR VULKAN_DIR VULKAN_ICDCONF_DIR ":"
|
||||
-#define LOCAL_ELAYERS_INFO \
|
||||
- LOCALPREFIX "/" SYSCONFDIR VULKAN_DIR VULKAN_ELAYERCONF_DIR ":" \
|
||||
- LOCALPREFIX "/" DATADIR VULKAN_DIR VULKAN_ELAYERCONF_DIR ":"
|
||||
-#define LOCAL_ILAYERS_INFO \
|
||||
- LOCALPREFIX "/" SYSCONFDIR VULKAN_DIR VULKAN_ILAYERCONF_DIR ":" \
|
||||
- LOCALPREFIX "/" DATADIR VULKAN_DIR VULKAN_ILAYERCONF_DIR ":"
|
||||
-#if defined(EXTRASYSCONFDIR)
|
||||
-#define EXTRA_DRIVERS_SYSCONFDIR_INFO ":" \
|
||||
- EXTRASYSCONFDIR VULKAN_DIR VULKAN_ICDCONF_DIR
|
||||
-#define EXTRA_ELAYERS_SYSCONFDIR_INFO ":" \
|
||||
- EXTRASYSCONFDIR VULKAN_DIR VULKAN_ELAYERCONF_DIR
|
||||
-#define EXTRA_ILAYERS_SYSCONFDIR_INFO ":" \
|
||||
- EXTRASYSCONFDIR VULKAN_DIR VULKAN_ILAYERCONF_DIR
|
||||
-#else
|
||||
-#define LOCAL_DRIVERS_INFO
|
||||
-#define LOCAL_ELAYERS_INFO
|
||||
-#define LOCAL_ILAYERS_INFO
|
||||
-#define EXTRA_DRIVERS_SYSCONFDIR_INFO
|
||||
-#define EXTRA_ELAYERS_SYSCONFDIR_INFO
|
||||
-#define EXTRA_ILAYERS_SYSCONFDIR_INFO
|
||||
-#endif
|
||||
-
|
||||
-#if defined(EXTRADATADIR)
|
||||
-#define EXTRA_DRIVERS_DATADIR_INFO ":" \
|
||||
- EXTRADATADIR VULKAN_DIR VULKAN_ICDCONF_DIR
|
||||
-#define EXTRA_ELAYERS_DATADIR_INFO ":" \
|
||||
- EXTRADATADIR VULKAN_DIR VULKAN_ELAYERCONF_DIR
|
||||
-#define EXTRA_ILAYERS_DATADIR_INFO ":" \
|
||||
- EXTRADATADIR VULKAN_DIR VULKAN_ILAYERCONF_DIR
|
||||
-#else
|
||||
-#define EXTRA_DRIVERS_DATADIR_INFO
|
||||
-#define EXTRA_ELAYERS_DATADIR_INFO
|
||||
-#define EXTRA_ILAYERS_DATADIR_INFO
|
||||
-#endif
|
||||
-
|
||||
-#define DEFAULT_VK_DRIVERS_INFO \
|
||||
- LOCAL_DRIVERS_INFO \
|
||||
- "/" SYSCONFDIR VULKAN_DIR VULKAN_ICDCONF_DIR ":" \
|
||||
- "/usr/" DATADIR VULKAN_DIR VULKAN_ICDCONF_DIR
|
||||
+#define DEFAULT_VK_DRIVERS_INFO ""
|
||||
#define DEFAULT_VK_DRIVERS_PATH ""
|
||||
- SYSCONFDIR VULKAN_DIR VULKAN_ICDCONF_DIR ":" \
|
||||
- DATADIR VULKAN_DIR VULKAN_ICDCONF_DIR \
|
||||
- EXTRA_DRIVERS_SYSCONFDIR_INFO \
|
||||
- EXTRA_DRIVERS_DATADIR_INFO
|
||||
-#define DEFAULT_VK_ELAYERS_INFO \
|
||||
- LOCAL_ELAYERS_INFO \
|
||||
- "/" SYSCONFDIR VULKAN_DIR VULKAN_ELAYERCONF_DIR ":" \
|
||||
- "/usr/" DATADIR VULKAN_DIR VULKAN_ELAYERCONF_DIR
|
||||
- SYSCONFDIR VULKAN_DIR VULKAN_ELAYERCONF_DIR ":" \
|
||||
- DATADIR VULKAN_DIR VULKAN_ELAYERCONF_DIR \
|
||||
- EXTRA_ELAYERS_SYSCONFDIR_INFO \
|
||||
- EXTRA_ELAYERS_DATADIR_INFO
|
||||
-#define DEFAULT_VK_ILAYERS_INFO \
|
||||
- LOCAL_ILAYERS_INFO \
|
||||
- "/" SYSCONFDIR VULKAN_DIR VULKAN_ILAYERCONF_DIR ":" \
|
||||
- "/usr/" DATADIR VULKAN_DIR VULKAN_ILAYERCONF_DIR
|
||||
- SYSCONFDIR VULKAN_DIR VULKAN_ILAYERCONF_DIR ":" \
|
||||
- DATADIR VULKAN_DIR VULKAN_ILAYERCONF_DIR \
|
||||
- EXTRA_ILAYERS_SYSCONFDIR_INFO \
|
||||
- EXTRA_ILAYERS_DATADIR_INFO
|
||||
+#define DEFAULT_VK_DRIVERS_INFO ""
|
||||
+#define DEFAULT_VK_ELAYERS_INFO ""
|
||||
+#define DEFAULT_VK_ILAYERS_INFO ""
|
||||
#define DEFAULT_VK_LAYERS_PATH ""
|
||||
#if !defined(LAYERS_SOURCE_PATH)
|
||||
|
||||
#define DEFAULT_VK_DRIVERS_PATH ""
|
||||
#if !defined(DEFAULT_VK_LAYERS_PATH)
|
||||
@@ -109,9 +71,9 @@
|
||||
#endif
|
||||
#define LAYERS_PATH_ENV "VK_LAYER_PATH"
|
||||
|
||||
-#define HOME_VK_DRIVERS_INFO VULKAN_DIR VULKAN_ICDCONF_DIR
|
||||
-#define HOME_VK_ELAYERS_INFO VULKAN_DIR VULKAN_ELAYERCONF_DIR
|
||||
-#define HOME_VK_ILAYERS_INFO VULKAN_DIR VULKAN_ILAYERCONF_DIR
|
||||
+#define RELATIVE_VK_DRIVERS_INFO VULKAN_DIR VULKAN_ICDCONF_DIR
|
||||
+#define RELATIVE_VK_ELAYERS_INFO VULKAN_DIR VULKAN_ELAYERCONF_DIR
|
||||
+#define RELATIVE_VK_ILAYERS_INFO VULKAN_DIR VULKAN_ILAYERCONF_DIR
|
||||
|
||||
// C99:
|
||||
#define PRINTF_SIZE_T_SPECIFIER "%zu"
|
||||
@@ -251,9 +213,9 @@ loader_platform_thread_cond_broadcast(loader_platform_thread_cond *pCond) {
|
||||
#define LAYERS_SOURCE_PATH NULL
|
||||
#endif
|
||||
#define LAYERS_PATH_ENV "VK_LAYER_PATH"
|
||||
-#define HOME_VK_DRIVERS_INFO ""
|
||||
-#define HOME_VK_ELAYERS_INFO ""
|
||||
-#define HOME_VK_ILAYERS_INFO ""
|
||||
+#define RELATIVE_VK_DRIVERS_INFO ""
|
||||
+#define RELATIVE_VK_ELAYERS_INFO ""
|
||||
+#define RELATIVE_VK_ILAYERS_INFO ""
|
||||
#define PRINTF_SIZE_T_SPECIFIER "%Iu"
|
||||
|
||||
// File IO
|
||||
|
|
|
@ -8,14 +8,14 @@ spirv_sources = {
|
|||
tools = fetchFromGitHub {
|
||||
owner = "KhronosGroup";
|
||||
repo = "SPIRV-Tools";
|
||||
rev = "923a4596b44831a07060df45caacb522613730c9";
|
||||
sha256 = "0hmgng2sv34amfsag3ya09prnv1w535djwlzfn8h2vh430vgawxa";
|
||||
rev = "37422e9dba1a3a8cb8028b779dd546d43add6ef8";
|
||||
sha256 = "0sp2p4wg902clq0fr94vj19vyv43cq333jjxr0mjzay8dw2h4yzk";
|
||||
};
|
||||
headers = fetchFromGitHub {
|
||||
owner = "KhronosGroup";
|
||||
repo = "SPIRV-Headers";
|
||||
rev = "33d41376d378761ed3a4c791fc4b647761897f26";
|
||||
sha256 = "1s103bpi3g6hhq453qa4jbabfkyxxpf9vn213j8k4vm26lsi8hs2";
|
||||
rev = "c470b68225a04965bf87d35e143ae92f831e8110";
|
||||
sha256 = "18jgcpmm0ixp6314r5w144l3wayxjkmwqgx8dk5jgyw36dammkwd";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -23,7 +23,7 @@ in
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "spirv-tools-${version}";
|
||||
version = "2016-07-18";
|
||||
version = "2016-12-19";
|
||||
|
||||
src = spirv_sources.tools;
|
||||
patchPhase = ''ln -sv ${spirv_sources.headers} external/spirv-headers'';
|
||||
|
|
Loading…
Reference in a new issue