tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
0
fork
atom
lol
0
fork
atom
overview
issues
pulls
pipelines
vulkan-loader: 1.0.39.1 -> 1.0.42.2
ralith.com
9 years ago
20196092
d9b36c36
+15
-425
6 changed files
expand all
collapse all
unified
split
pkgs
development
compilers
glslang
default.nix
install-headers.patch
libraries
vulkan-loader
default.nix
fallback-paths.patch
use-xdg-paths.patch
tools
spirv-tools
default.nix
+5
-6
pkgs/development/compilers/glslang/default.nix
···
2
3
stdenv.mkDerivation rec {
4
name = "glslang-git-${version}";
5
-
version = "2016-12-21";
6
7
# `vulkan-loader` requires a specific version of `glslang` as specified in
8
-
# `<vulkan-loader-repo>/glslang_revision`.
9
src = fetchFromGitHub {
10
owner = "KhronosGroup";
11
repo = "glslang";
12
-
rev = "807a0d9e2f4e176f75d62ac3c179c81800ec2608";
13
-
sha256 = "02jckgihqhagm73glipb4c6ri5fr3pnbxb5vrznn2vppyfdfghbj";
14
};
15
-
16
-
patches = [ ./install-headers.patch ];
17
18
buildInputs = [ cmake bison ];
19
enableParallelBuilding = true;
···
23
description = "Khronos reference front-end for GLSL and ESSL";
24
license = licenses.asl20;
25
platforms = platforms.linux;
0
26
};
27
}
···
2
3
stdenv.mkDerivation rec {
4
name = "glslang-git-${version}";
5
+
version = "2017-03-29";
6
7
# `vulkan-loader` requires a specific version of `glslang` as specified in
8
+
# `<vulkan-loader-repo>/external_revisions/glslang_revision`.
9
src = fetchFromGitHub {
10
owner = "KhronosGroup";
11
repo = "glslang";
12
+
rev = "714e58b2fc5a45714596e6aa2f6ac8f64260365c";
13
+
sha256 = "0ihnd0c4mr6ppbv9g7z1abrn8vx66simfzx5q48nqcpnywn35jxv";
14
};
0
0
15
16
buildInputs = [ cmake bison ];
17
enableParallelBuilding = true;
···
21
description = "Khronos reference front-end for GLSL and ESSL";
22
license = licenses.asl20;
23
platforms = platforms.linux;
24
+
maintainers = [ maintainers.ralith ];
25
};
26
}
-35
pkgs/development/compilers/glslang/install-headers.patch
···
1
-
diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt
2
-
index c538e84..6ece1ab 100755
3
-
--- a/SPIRV/CMakeLists.txt
4
-
+++ b/SPIRV/CMakeLists.txt
5
-
@@ -34,8 +34,9 @@ if(ENABLE_AMD_EXTENSIONS)
6
-
endif(ENABLE_AMD_EXTENSIONS)
7
-
8
-
if(ENABLE_NV_EXTENSIONS)
9
-
- set(HEADERS
10
-
- GLSL.ext.NV.h)
11
-
+ list(APPEND
12
-
+ HEADERS
13
-
+ GLSL.ext.NV.h)
14
-
endif(ENABLE_NV_EXTENSIONS)
15
-
16
-
add_library(SPIRV STATIC ${SOURCES} ${HEADERS})
17
-
@@ -51,3 +52,5 @@ endif(WIN32)
18
-
19
-
install(TARGETS SPIRV SPVRemapper
20
-
ARCHIVE DESTINATION lib)
21
-
+
22
-
+install(FILES ${HEADERS} ${SPVREMAP_HEADERS} DESTINATION include/SPIRV/)
23
-
diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
24
-
index 95d4bdd..e7fda90 100644
25
-
--- a/glslang/CMakeLists.txt
26
-
+++ b/glslang/CMakeLists.txt
27
-
@@ -93,3 +93,8 @@ endif(WIN32)
28
-
29
-
install(TARGETS glslang
30
-
ARCHIVE DESTINATION lib)
31
-
+
32
-
+foreach(file ${HEADERS})
33
-
+ get_filename_component(dir ${file} DIRECTORY)
34
-
+ install(FILES ${file} DESTINATION include/glslang/${dir})
35
-
+endforeach()
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
+3
-4
pkgs/development/libraries/vulkan-loader/default.nix
···
3
libXext, wayland, mesa_noglu }:
4
5
let
6
-
version = "1.0.39.1";
7
src = fetchFromGitHub {
8
owner = "KhronosGroup";
9
repo = "Vulkan-LoaderAndValidationLayers";
10
rev = "sdk-${version}";
11
-
sha256 = "0y9zzrnjjjza2kkf5jfsdqhn98md6rsq0hb7jg62z2dipzky7zdp";
12
};
13
in
14
···
25
"-DBUILD_WSI_MIR_SUPPORT=OFF"
26
"-DFALLBACK_DATA_DIRS=${mesa_noglu.driverLink}/share:/usr/local/share:/usr/share"
27
];
28
-
29
-
patches = [ ./use-xdg-paths.patch ./fallback-paths.patch ];
30
31
outputs = [ "out" "dev" "demos" ];
32
···
59
homepage = "http://www.lunarg.com";
60
platforms = platforms.linux;
61
license = licenses.asl20;
0
62
};
63
}
···
3
libXext, wayland, mesa_noglu }:
4
5
let
6
+
version = "1.0.42.2";
7
src = fetchFromGitHub {
8
owner = "KhronosGroup";
9
repo = "Vulkan-LoaderAndValidationLayers";
10
rev = "sdk-${version}";
11
+
sha256 = "0na1ax2cgv6w29213mby56mndfsj3iizj3n5pbpy4s4p7ij9kdgn";
12
};
13
in
14
···
25
"-DBUILD_WSI_MIR_SUPPORT=OFF"
26
"-DFALLBACK_DATA_DIRS=${mesa_noglu.driverLink}/share:/usr/local/share:/usr/share"
27
];
0
0
28
29
outputs = [ "out" "dev" "demos" ];
30
···
57
homepage = "http://www.lunarg.com";
58
platforms = platforms.linux;
59
license = licenses.asl20;
60
+
maintainers = [ maintainers.ralith ];
61
};
62
}
-52
pkgs/development/libraries/vulkan-loader/fallback-paths.patch
···
1
-
commit a59b141559a8c1813da438b97e5f79eeb6cc7642
2
-
Author: Benjamin Saunders <ben.e.saunders@gmail.com>
3
-
Date: Sun Feb 19 11:14:24 2017 -0800
4
-
5
-
loader: Configurable fallback search paths
6
-
7
-
This makes it easier for non-FHS distributions to behave well when the loader
8
-
is used by a SUID process or in an otherwise unusual environment.
9
-
10
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
11
-
index a43d264..d28b3f5 100644
12
-
--- a/CMakeLists.txt
13
-
+++ b/CMakeLists.txt
14
-
@@ -16,6 +16,11 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
15
-
find_package(PythonInterp 3 REQUIRED)
16
-
17
-
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
18
-
+ set(FALLBACK_CONFIG_DIRS "/etc/xdg" CACHE STRING
19
-
+ "Search path to use when XDG_CONFIG_DIRS is unset or empty or the current process is SUID/SGID. Default is freedesktop compliant.")
20
-
+ set(FALLBACK_DATA_DIRS "/usr/local/share:/usr/share" CACHE STRING
21
-
+ "Search path to use when XDG_DATA_DIRS is unset or empty or the current process is SUID/SGID. Default is freedesktop compliant.")
22
-
+
23
-
include(FindPkgConfig)
24
-
option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
25
-
option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)
26
-
@@ -285,7 +290,10 @@ run_vk_xml_generate(dispatch_table_generator.py vk_dispatch_table_helper.h)
27
-
if(NOT WIN32)
28
-
include(GNUInstallDirs)
29
-
30
-
+ add_definitions(-DFALLBACK_CONFIG_DIRS="${FALLBACK_CONFIG_DIRS}")
31
-
+ add_definitions(-DFALLBACK_DATA_DIRS="${FALLBACK_DATA_DIRS}")
32
-
add_definitions(-DSYSCONFDIR="${CMAKE_INSTALL_FULL_SYSCONFDIR}")
33
-
+
34
-
# Make sure /etc is searched by the loader
35
-
if(NOT (CMAKE_INSTALL_FULL_SYSCONFDIR STREQUAL "/etc"))
36
-
add_definitions(-DEXTRASYSCONFDIR="/etc")
37
-
diff --git a/loader/loader.c b/loader/loader.c
38
-
index 81c37c4..83378eb 100644
39
-
--- a/loader/loader.c
40
-
+++ b/loader/loader.c
41
-
@@ -2644,9 +2644,9 @@ static VkResult loader_get_manifest_files(const struct loader_instance *inst, co
42
-
const char *xdgconfdirs = secure_getenv("XDG_CONFIG_DIRS");
43
-
const char *xdgdatadirs = secure_getenv("XDG_DATA_DIRS");
44
-
if (xdgconfdirs == NULL || xdgconfdirs[0] == '\0')
45
-
- xdgconfdirs = "/etc/xdg";
46
-
+ xdgconfdirs = FALLBACK_CONFIG_DIRS;
47
-
if (xdgdatadirs == NULL || xdgdatadirs[0] == '\0')
48
-
- xdgdatadirs = "/usr/local/share:/usr/share";
49
-
+ xdgdatadirs = FALLBACK_DATA_DIRS;
50
-
const size_t rel_size = strlen(relative_location);
51
-
// Leave space for trailing separators
52
-
loc_size += strlen(xdgconfdirs) + strlen(xdgdatadirs) + 2*rel_size + 2;
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-322
pkgs/development/libraries/vulkan-loader/use-xdg-paths.patch
···
1
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
2
-
index 27ab6e5..e59256e 100644
3
-
--- a/CMakeLists.txt
4
-
+++ b/CMakeLists.txt
5
-
@@ -256,17 +256,10 @@ if(NOT WIN32)
6
-
include(GNUInstallDirs)
7
-
8
-
add_definitions(-DSYSCONFDIR="${CMAKE_INSTALL_FULL_SYSCONFDIR}")
9
-
- add_definitions(-DDATADIR="${CMAKE_INSTALL_FULL_DATADIR}")
10
-
-
11
-
# Make sure /etc is searched by the loader
12
-
- if (NOT (CMAKE_INSTALL_FULL_SYSCONFDIR STREQUAL "/etc"))
13
-
+ if(NOT (CMAKE_INSTALL_FULL_SYSCONFDIR STREQUAL "/etc"))
14
-
add_definitions(-DEXTRASYSCONFDIR="/etc")
15
-
endif()
16
-
-
17
-
- # Make sure /usr/share is searched by the loader
18
-
- if (NOT (CMAKE_INSTALL_FULL_DATADIR STREQUAL "/usr/share"))
19
-
- add_definitions(-DEXTRADATADIR="/usr/share")
20
-
- endif()
21
-
endif()
22
-
23
-
if(UNIX)
24
-
diff --git a/loader/loader.c b/loader/loader.c
25
-
index 24758f4..af7cc85 100644
26
-
--- a/loader/loader.c
27
-
+++ b/loader/loader.c
28
-
@@ -2909,7 +2909,7 @@ static VkResult
29
-
loader_get_manifest_files(const struct loader_instance *inst,
30
-
const char *env_override, const char *source_override,
31
-
bool is_layer, bool warn_if_not_present,
32
-
- const char *location, const char *home_location,
33
-
+ const char *location, const char *relative_location,
34
-
struct loader_manifest_files *out_files) {
35
-
const char * override = NULL;
36
-
char *override_getenv = NULL;
37
-
@@ -2941,9 +2941,9 @@ loader_get_manifest_files(const struct loader_instance *inst,
38
-
}
39
-
40
-
#if !defined(_WIN32)
41
-
- if (location == NULL && home_location == NULL) {
42
-
+ if (location == NULL && relative_location == NULL) {
43
-
#else
44
-
- home_location = NULL;
45
-
+ relative_location = NULL;
46
-
if (location == NULL) {
47
-
#endif
48
-
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
49
-
@@ -2962,16 +2962,89 @@ loader_get_manifest_files(const struct loader_instance *inst,
50
-
// Make a copy of the input we are using so it is not modified
51
-
// Also handle getting the location(s) from registry on Windows
52
-
if (override == NULL) {
53
-
- loc = loader_stack_alloc(strlen(location) + 1);
54
-
+ size_t loc_size = strlen(location) + 1;
55
-
+#if !defined(_WIN32)
56
-
+ const char *xdgconfdirs = secure_getenv("XDG_CONFIG_DIRS");
57
-
+ const char *xdgdatadirs = secure_getenv("XDG_DATA_DIRS");
58
-
+ if (xdgconfdirs == NULL || xdgconfdirs[0] == '\0')
59
-
+ xdgconfdirs = "/etc/xdg";
60
-
+ if (xdgdatadirs == NULL || xdgdatadirs[0] == '\0')
61
-
+ xdgdatadirs = "/usr/local/share:/usr/share";
62
-
+ const size_t rel_size = strlen(relative_location);
63
-
+ // Leave space for trailing separators
64
-
+ loc_size += strlen(xdgconfdirs) + strlen(xdgdatadirs) + 2*rel_size + 2;
65
-
+ for (const char *x = xdgconfdirs; *x; ++x)
66
-
+ if (*x == PATH_SEPARATOR) loc_size += rel_size;
67
-
+ for (const char *x = xdgdatadirs; *x; ++x)
68
-
+ if (*x == PATH_SEPARATOR) loc_size += rel_size;
69
-
+ loc_size += strlen(SYSCONFDIR) + rel_size + 1;
70
-
+#ifdef EXTRASYSCONFDIR
71
-
+ loc_size += strlen(EXTRASYSCONFDIR) + rel_size + 1;
72
-
+#endif
73
-
+#endif
74
-
+ loc = loader_stack_alloc(loc_size);
75
-
if (loc == NULL) {
76
-
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
77
-
"loader_get_manifest_files: Failed to allocate "
78
-
"%d bytes for manifest file location.",
79
-
- strlen(location));
80
-
+ loc_size);
81
-
res = VK_ERROR_OUT_OF_HOST_MEMORY;
82
-
goto out;
83
-
}
84
-
- strcpy(loc, location);
85
-
+ char *loc_write = loc;
86
-
+#if !defined(_WIN32)
87
-
+ const char *loc_read;
88
-
+
89
-
+ loc_read = &xdgconfdirs[0];
90
-
+ for (const char *x = loc_read;; ++x) {
91
-
+ if (*x == PATH_SEPARATOR || *x == '\0') {
92
-
+ const size_t s = x - loc_read;
93
-
+ memcpy(loc_write, loc_read, s);
94
-
+ loc_write += s;
95
-
+ memcpy(loc_write, relative_location, rel_size);
96
-
+ loc_write += rel_size;
97
-
+ *loc_write++ = PATH_SEPARATOR;
98
-
+ if (*x == 0)
99
-
+ break;
100
-
+ loc_read = ++x;
101
-
+ }
102
-
+ }
103
-
+
104
-
+ memcpy(loc_write, SYSCONFDIR, strlen(SYSCONFDIR));
105
-
+ loc_write += strlen(SYSCONFDIR);
106
-
+ memcpy(loc_write, relative_location, rel_size);
107
-
+ loc_write += rel_size;
108
-
+ *loc_write++ = PATH_SEPARATOR;
109
-
+
110
-
+#ifdef EXTRASYSCONFDIR
111
-
+ memcpy(loc_write, EXTRASYSCONFDIR, strlen(EXTRASYSCONFDIR));
112
-
+ loc_write += strlen(EXTRASYSCONFDIR);
113
-
+ memcpy(loc_write, relative_location, rel_size);
114
-
+ loc_write += rel_size;
115
-
+ *loc_write++ = PATH_SEPARATOR;
116
-
+#endif
117
-
+
118
-
+ loc_read = &xdgdatadirs[0];
119
-
+ for (const char *x = loc_read;; ++x) {
120
-
+ if (*x == PATH_SEPARATOR || *x == '\0') {
121
-
+ const size_t s = x - loc_read;
122
-
+ memcpy(loc_write, loc_read, s);
123
-
+ loc_write += s;
124
-
+ memcpy(loc_write, relative_location, rel_size);
125
-
+ loc_write += rel_size;
126
-
+ *loc_write++ = PATH_SEPARATOR;
127
-
+ if (*x == 0)
128
-
+ break;
129
-
+ loc_read = ++x;
130
-
+ }
131
-
+ }
132
-
+ --loc_write;
133
-
+ *loc_write = '\0';
134
-
+#else
135
-
+ memcpy(loc_write, location, loc_size);
136
-
+ loc[loc_size-1] = '\0';
137
-
+#endif
138
-
+
139
-
#if defined(_WIN32)
140
-
VkResult reg_result = loaderGetRegistryFiles(inst, loc, ®);
141
-
if (VK_SUCCESS != reg_result || NULL == reg) {
142
-
@@ -3122,14 +3195,14 @@ loader_get_manifest_files(const struct loader_instance *inst,
143
-
}
144
-
file = next_file;
145
-
#if !defined(_WIN32)
146
-
- if (home_location != NULL &&
147
-
+ if (relative_location != NULL &&
148
-
(next_file == NULL || *next_file == '\0') && override == NULL) {
149
-
char *xdgdatahome = secure_getenv("XDG_DATA_HOME");
150
-
size_t len;
151
-
if (xdgdatahome != NULL) {
152
-
153
-
char *home_loc = loader_stack_alloc(strlen(xdgdatahome) + 2 +
154
-
- strlen(home_location));
155
-
+ strlen(relative_location));
156
-
if (home_loc == NULL) {
157
-
loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
158
-
"loader_get_manifest_files: Failed to allocate "
159
-
@@ -3139,15 +3212,15 @@ loader_get_manifest_files(const struct loader_instance *inst,
160
-
}
161
-
strcpy(home_loc, xdgdatahome);
162
-
// Add directory separator if needed
163
-
- if (home_location[0] != DIRECTORY_SYMBOL) {
164
-
+ if (relative_location[0] != DIRECTORY_SYMBOL) {
165
-
len = strlen(home_loc);
166
-
home_loc[len] = DIRECTORY_SYMBOL;
167
-
home_loc[len + 1] = '\0';
168
-
}
169
-
- strcat(home_loc, home_location);
170
-
+ strcat(home_loc, relative_location);
171
-
file = home_loc;
172
-
next_file = loader_get_next_path(file);
173
-
- home_location = NULL;
174
-
+ relative_location = NULL;
175
-
176
-
loader_log(
177
-
inst, VK_DEBUG_REPORT_DEBUG_BIT_EXT, 0,
178
-
@@ -3160,7 +3233,7 @@ loader_get_manifest_files(const struct loader_instance *inst,
179
-
char *home = secure_getenv("HOME");
180
-
if (home != NULL) {
181
-
char *home_loc = loader_stack_alloc(strlen(home) + 16 +
182
-
- strlen(home_location));
183
-
+ strlen(relative_location));
184
-
if (home_loc == NULL) {
185
-
loader_log(
186
-
inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0,
187
-
@@ -3178,15 +3251,15 @@ loader_get_manifest_files(const struct loader_instance *inst,
188
-
}
189
-
strcat(home_loc, ".local/share");
190
-
191
-
- if (home_location[0] != DIRECTORY_SYMBOL) {
192
-
+ if (relative_location[0] != DIRECTORY_SYMBOL) {
193
-
len = strlen(home_loc);
194
-
home_loc[len] = DIRECTORY_SYMBOL;
195
-
home_loc[len + 1] = '\0';
196
-
}
197
-
- strcat(home_loc, home_location);
198
-
+ strcat(home_loc, relative_location);
199
-
file = home_loc;
200
-
next_file = loader_get_next_path(file);
201
-
- home_location = NULL;
202
-
+ relative_location = NULL;
203
-
204
-
loader_log(
205
-
inst, VK_DEBUG_REPORT_DEBUG_BIT_EXT, 0,
206
-
@@ -3263,7 +3336,7 @@ VkResult loader_icd_scan(const struct loader_instance *inst,
207
-
// Get a list of manifest files for ICDs
208
-
res = loader_get_manifest_files(inst, "VK_ICD_FILENAMES", NULL, false, true,
209
-
DEFAULT_VK_DRIVERS_INFO,
210
-
- HOME_VK_DRIVERS_INFO, &manifest_files);
211
-
+ RELATIVE_VK_DRIVERS_INFO, &manifest_files);
212
-
if (VK_SUCCESS != res || manifest_files.count == 0) {
213
-
goto out;
214
-
}
215
-
@@ -3490,7 +3563,7 @@ void loader_layer_scan(const struct loader_instance *inst,
216
-
if (VK_SUCCESS !=
217
-
loader_get_manifest_files(inst, LAYERS_PATH_ENV, LAYERS_SOURCE_PATH,
218
-
true, true, DEFAULT_VK_ELAYERS_INFO,
219
-
- HOME_VK_ELAYERS_INFO, &manifest_files[0])) {
220
-
+ RELATIVE_VK_ELAYERS_INFO, &manifest_files[0])) {
221
-
goto out;
222
-
}
223
-
224
-
@@ -3499,7 +3572,7 @@ void loader_layer_scan(const struct loader_instance *inst,
225
-
// overridden by LAYERS_PATH_ENV
226
-
if (VK_SUCCESS != loader_get_manifest_files(inst, NULL, NULL, true, false,
227
-
DEFAULT_VK_ILAYERS_INFO,
228
-
- HOME_VK_ILAYERS_INFO,
229
-
+ RELATIVE_VK_ILAYERS_INFO,
230
-
&manifest_files[1])) {
231
-
goto out;
232
-
}
233
-
@@ -3569,7 +3642,7 @@ void loader_implicit_layer_scan(const struct loader_instance *inst,
234
-
// overridden by LAYERS_PATH_ENV
235
-
VkResult res = loader_get_manifest_files(
236
-
inst, NULL, NULL, true, false, DEFAULT_VK_ILAYERS_INFO,
237
-
- HOME_VK_ILAYERS_INFO, &manifest_files);
238
-
+ RELATIVE_VK_ILAYERS_INFO, &manifest_files);
239
-
if (VK_SUCCESS != res || manifest_files.count == 0) {
240
-
return;
241
-
}
242
-
diff --git a/loader/vk_loader_platform.h b/loader/vk_loader_platform.h
243
-
index dc4ac10..50a7966 100644
244
-
--- a/loader/vk_loader_platform.h
245
-
+++ b/loader/vk_loader_platform.h
246
-
@@ -57,47 +57,9 @@
247
-
#define VULKAN_ILAYERCONF_DIR "implicit_layer.d"
248
-
#define VULKAN_LAYER_DIR "layer"
249
-
250
-
-#if defined(EXTRASYSCONFDIR)
251
-
-#define EXTRA_DRIVERS_SYSCONFDIR_INFO ":" \
252
-
- EXTRASYSCONFDIR VULKAN_DIR VULKAN_ICDCONF_DIR
253
-
-#define EXTRA_ELAYERS_SYSCONFDIR_INFO ":" \
254
-
- EXTRASYSCONFDIR VULKAN_DIR VULKAN_ELAYERCONF_DIR
255
-
-#define EXTRA_ILAYERS_SYSCONFDIR_INFO ":" \
256
-
- EXTRASYSCONFDIR VULKAN_DIR VULKAN_ILAYERCONF_DIR
257
-
-#else
258
-
-#define EXTRA_DRIVERS_SYSCONFDIR_INFO
259
-
-#define EXTRA_ELAYERS_SYSCONFDIR_INFO
260
-
-#define EXTRA_ILAYERS_SYSCONFDIR_INFO
261
-
-#endif
262
-
-
263
-
-#if defined(EXTRADATADIR)
264
-
-#define EXTRA_DRIVERS_DATADIR_INFO ":" \
265
-
- EXTRADATADIR VULKAN_DIR VULKAN_ICDCONF_DIR
266
-
-#define EXTRA_ELAYERS_DATADIR_INFO ":" \
267
-
- EXTRADATADIR VULKAN_DIR VULKAN_ELAYERCONF_DIR
268
-
-#define EXTRA_ILAYERS_DATADIR_INFO ":" \
269
-
- EXTRADATADIR VULKAN_DIR VULKAN_ILAYERCONF_DIR
270
-
-#else
271
-
-#define EXTRA_DRIVERS_DATADIR_INFO
272
-
-#define EXTRA_ELAYERS_DATADIR_INFO
273
-
-#define EXTRA_ILAYERS_DATADIR_INFO
274
-
-#endif
275
-
-
276
-
-#define DEFAULT_VK_DRIVERS_INFO \
277
-
- SYSCONFDIR VULKAN_DIR VULKAN_ICDCONF_DIR ":" \
278
-
- DATADIR VULKAN_DIR VULKAN_ICDCONF_DIR \
279
-
- EXTRA_DRIVERS_SYSCONFDIR_INFO \
280
-
- EXTRA_DRIVERS_DATADIR_INFO
281
-
-#define DEFAULT_VK_ELAYERS_INFO \
282
-
- SYSCONFDIR VULKAN_DIR VULKAN_ELAYERCONF_DIR ":" \
283
-
- DATADIR VULKAN_DIR VULKAN_ELAYERCONF_DIR \
284
-
- EXTRA_ELAYERS_SYSCONFDIR_INFO \
285
-
- EXTRA_ELAYERS_DATADIR_INFO
286
-
-#define DEFAULT_VK_ILAYERS_INFO \
287
-
- SYSCONFDIR VULKAN_DIR VULKAN_ILAYERCONF_DIR ":" \
288
-
- DATADIR VULKAN_DIR VULKAN_ILAYERCONF_DIR \
289
-
- EXTRA_ILAYERS_SYSCONFDIR_INFO \
290
-
- EXTRA_ILAYERS_DATADIR_INFO
291
-
+#define DEFAULT_VK_DRIVERS_INFO ""
292
-
+#define DEFAULT_VK_ELAYERS_INFO ""
293
-
+#define DEFAULT_VK_ILAYERS_INFO ""
294
-
295
-
#define DEFAULT_VK_DRIVERS_PATH ""
296
-
#if !defined(DEFAULT_VK_LAYERS_PATH)
297
-
@@ -109,9 +71,9 @@
298
-
#endif
299
-
#define LAYERS_PATH_ENV "VK_LAYER_PATH"
300
-
301
-
-#define HOME_VK_DRIVERS_INFO VULKAN_DIR VULKAN_ICDCONF_DIR
302
-
-#define HOME_VK_ELAYERS_INFO VULKAN_DIR VULKAN_ELAYERCONF_DIR
303
-
-#define HOME_VK_ILAYERS_INFO VULKAN_DIR VULKAN_ILAYERCONF_DIR
304
-
+#define RELATIVE_VK_DRIVERS_INFO VULKAN_DIR VULKAN_ICDCONF_DIR
305
-
+#define RELATIVE_VK_ELAYERS_INFO VULKAN_DIR VULKAN_ELAYERCONF_DIR
306
-
+#define RELATIVE_VK_ILAYERS_INFO VULKAN_DIR VULKAN_ILAYERCONF_DIR
307
-
308
-
// C99:
309
-
#define PRINTF_SIZE_T_SPECIFIER "%zu"
310
-
@@ -251,9 +213,9 @@ loader_platform_thread_cond_broadcast(loader_platform_thread_cond *pCond) {
311
-
#define LAYERS_SOURCE_PATH NULL
312
-
#endif
313
-
#define LAYERS_PATH_ENV "VK_LAYER_PATH"
314
-
-#define HOME_VK_DRIVERS_INFO ""
315
-
-#define HOME_VK_ELAYERS_INFO ""
316
-
-#define HOME_VK_ILAYERS_INFO ""
317
-
+#define RELATIVE_VK_DRIVERS_INFO ""
318
-
+#define RELATIVE_VK_ELAYERS_INFO ""
319
-
+#define RELATIVE_VK_ILAYERS_INFO ""
320
-
#define PRINTF_SIZE_T_SPECIFIER "%Iu"
321
-
322
-
// File IO
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
+7
-6
pkgs/development/tools/spirv-tools/default.nix
···
4
5
spirv_sources = {
6
# `vulkan-loader` requires a specific version of `spirv-tools` and `spirv-headers` as specified in
7
-
# `<vulkan-loader-repo>/spirv-tools_revision`.
8
tools = fetchFromGitHub {
9
owner = "KhronosGroup";
10
repo = "SPIRV-Tools";
11
-
rev = "37422e9dba1a3a8cb8028b779dd546d43add6ef8";
12
-
sha256 = "0sp2p4wg902clq0fr94vj19vyv43cq333jjxr0mjzay8dw2h4yzk";
13
};
14
headers = fetchFromGitHub {
15
owner = "KhronosGroup";
16
repo = "SPIRV-Headers";
17
-
rev = "c470b68225a04965bf87d35e143ae92f831e8110";
18
-
sha256 = "18jgcpmm0ixp6314r5w144l3wayxjkmwqgx8dk5jgyw36dammkwd";
19
};
20
};
21
···
23
24
stdenv.mkDerivation rec {
25
name = "spirv-tools-${version}";
26
-
version = "2016-12-19";
27
28
src = spirv_sources.tools;
29
patchPhase = ''ln -sv ${spirv_sources.headers} external/spirv-headers'';
···
40
description = "The SPIR-V Tools project provides an API and commands for processing SPIR-V modules";
41
license = licenses.asl20;
42
platforms = platforms.linux;
0
43
};
44
}
···
4
5
spirv_sources = {
6
# `vulkan-loader` requires a specific version of `spirv-tools` and `spirv-headers` as specified in
7
+
# `<vulkan-loader-repo>/external_revisions/spirv-tools_revision`.
8
tools = fetchFromGitHub {
9
owner = "KhronosGroup";
10
repo = "SPIRV-Tools";
11
+
rev = "7fe8a57a5bd72094e91f9f93e51dac2f2461dcb4";
12
+
sha256 = "0rh25y1k3m3f1nqs032lh3mng5qfw9kqn6xv9yzzm47i1i0b6hmr";
13
};
14
headers = fetchFromGitHub {
15
owner = "KhronosGroup";
16
repo = "SPIRV-Headers";
17
+
rev = "6c08995e6e7b94129e6086c78198c77111f2f262";
18
+
sha256 = "07m12wm9prib7hldj7pbc8vwnj0x6llgx4shzgy8x4xbhbafawws";
19
};
20
};
21
···
23
24
stdenv.mkDerivation rec {
25
name = "spirv-tools-${version}";
26
+
version = "2017-03-23";
27
28
src = spirv_sources.tools;
29
patchPhase = ''ln -sv ${spirv_sources.headers} external/spirv-headers'';
···
40
description = "The SPIR-V Tools project provides an API and commands for processing SPIR-V modules";
41
license = licenses.asl20;
42
platforms = platforms.linux;
43
+
maintainers = [ maintainers.ralith ];
44
};
45
}