summaryrefslogtreecommitdiff
path: root/gnu/packages/vulkan.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/vulkan.scm')
-rw-r--r--gnu/packages/vulkan.scm190
1 files changed, 90 insertions, 100 deletions
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 6a2c219aac..d5f5be6816 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -42,7 +43,7 @@
(define-public spirv-headers
(package
(name "spirv-headers")
- (version "1.3.7")
+ (version "1.5.3")
(source
(origin
(method git-fetch)
@@ -51,18 +52,11 @@
(commit version)))
(sha256
(base32
- "0m56smanfcczjfif4yfcqhjj4d4sc088kwg6dgia8fwdsjavdm4d"))
- (file-name (git-file-name name version))))
+ "069sivqajp7z4p44lmrz23lvf237xpkjxd4lzrg27836pwqcz9bj"))
+ (file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ;; No tests
- #:phases (modify-phases %standard-phases
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (invoke "cmake" "-E" "copy_directory"
- "../source/include/spirv"
- (string-append (assoc-ref outputs "out")
- "/include/spirv")))))))
+ `(#:tests? #f)) ;no tests
(home-page "https://github.com/KhronosGroup/SPIRV-Headers")
(synopsis "Machine-readable files from the SPIR-V Registry")
(description
@@ -81,7 +75,7 @@ and for the GLSL.std.450 extended instruction set.
(define-public spirv-tools
(package
(name "spirv-tools")
- (version "2019.2")
+ (version "2020.2")
(source
(origin
(method git-fetch)
@@ -89,13 +83,14 @@ and for the GLSL.std.450 extended instruction set.
(url "https://github.com/KhronosGroup/SPIRV-Tools")
(commit (string-append "v" version))))
(sha256
- (base32 "0zwz6qg8g8165h7cw52agryjrdb29gbmsbziw3pwiddfkyma8vvg"))
+ (base32 "00b7xgyrcb2qq63pp3cnw5q1xqx2d9rfn65lai6n6r89s1vh3vg6"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ; FIXME: Tests fail.
- #:configure-flags (list (string-append "-DSPIRV-Headers_SOURCE_DIR="
- (assoc-ref %build-inputs "spirv-headers")))))
+ `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
+ (string-append
+ "-DSPIRV-Headers_SOURCE_DIR="
+ (assoc-ref %build-inputs "spirv-headers")))))
(inputs `(("spirv-headers" ,spirv-headers)))
(native-inputs `(("pkg-config" ,pkg-config)
("python" ,python)))
@@ -110,7 +105,7 @@ parser,disassembler, validator, and optimizer for SPIR-V.")
(define-public glslang
(package
(name "glslang")
- (version "7.11.3214")
+ (version "8.13.3743")
(source
(origin
(method git-fetch)
@@ -119,21 +114,15 @@ parser,disassembler, validator, and optimizer for SPIR-V.")
(commit version)))
(sha256
(base32
- "0dqjga0lcza006fhac26zp2plbq4gx8a6nsmrwkqlzji6lw1jins"))
+ "0d20wfpp2fmbnz1hnsjr9xc62lxpj86ik2qyviqbni0pqj212cry"))
(file-name (string-append name "-" version "-checkout"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ;; No tests
- ;; glslang tries to set CMAKE_INSTALL_PREFIX manually. Remove the
- ;; offending line.
- #:phases (modify-phases %standard-phases
- (add-after 'patch-source-shebangs 'fix-cmakelists
- (lambda _
- (substitute* "CMakeLists.txt"
- (("set.*CMAKE_INSTALL_PREFIX.*") ""))
- #t)))))
- (native-inputs `(("bison" ,bison)
- ("pkg-config" ,pkg-config)))
+ '(#:tests? #f ;FIXME: requires bundled SPIRV-Tools
+ #:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python" ,python)))
(home-page "https://github.com/KhronosGroup/glslang")
(synopsis "OpenGL and OpenGL ES shader front end and validator")
(description
@@ -149,7 +138,7 @@ interpretation of the specifications for these languages.")
(define-public vulkan-headers
(package
(name "vulkan-headers")
- (version "1.1.121")
+ (version "1.2.141")
(source
(origin
(method git-fetch)
@@ -159,7 +148,7 @@ interpretation of the specifications for these languages.")
(file-name (git-file-name name version))
(sha256
(base32
- "0hbgbdxj7lrm37phb0pkq5zgss3h21znj3mivnyva5f60i2wgr73"))))
+ "10nmx6y4llllfcczyfz76amd0vkqv09dj952d19zkzmmgcval7zq"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; No tests.
@@ -173,7 +162,7 @@ interpretation of the specifications for these languages.")
(define-public vulkan-loader
(package
(name "vulkan-loader")
- (version (package-version vulkan-headers))
+ (version "1.2.140")
(source
(origin
(method git-fetch)
@@ -183,26 +172,32 @@ interpretation of the specifications for these languages.")
(file-name (git-file-name name version))
(sha256
(base32
- "1gbrppfxrncvva30fikgzm7f15xs527sb4lf1sswdyxj3h5cw741"))))
+ "0rhyz0qgp0i7pcx6wlvgwy7j33d4cs0xx39f0b6igpfk0vk70r1w"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ;FIXME: 23/39 tests fail. Try "tests/run_all_tests.sh".
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'remove-spirv-tools-commit-id
- (lambda* (#:key inputs #:allow-other-keys)
- ;; Remove lines trying to build in a git commit id.
- (substitute* "CMakeLists.txt" ((".*spirv_tools_commit_id.h.*") ""))
- #t)))
- #:configure-flags (list
- "-DBUILD_TESTS=OFF" ; FIXME: Needs 'googletest' submodule.
- (string-append "-DCMAKE_INSTALL_LIBDIR="
- (assoc-ref %outputs "out") "/lib"))))
- (native-inputs `(("libxrandr" ,libxrandr)
- ("pkg-config" ,pkg-config)
- ("python" ,python)
- ("vulkan-headers" ,vulkan-headers)
- ("wayland" ,wayland)))
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-googletest
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((gtest (assoc-ref inputs "googletest:source")))
+ (when gtest
+ (copy-recursively gtest "external/googletest"))
+ #t)))
+ (add-after 'unpack 'disable-loader-tests
+ (lambda _
+ ;; Many tests require a Vulkan driver. Skip those.
+ (substitute* "tests/loader_validation_tests.cpp"
+ ((".*= vkCreateInstance.*" all)
+ (string-append "GTEST_SKIP();\n" all))
+ (("TEST_F.*InstanceExtensionEnumerated.*" all)
+ (string-append all "\nGTEST_SKIP();\n")))
+ #t)))))
+ (native-inputs
+ `(("googletest:source" ,(package-source googletest))
+ ("libxrandr" ,libxrandr)
+ ("pkg-config" ,pkg-config)
+ ("python" ,python)
+ ("vulkan-headers" ,vulkan-headers)
+ ("wayland" ,wayland)))
(home-page
"https://github.com/KhronosGroup/Vulkan-Loader")
(synopsis "Khronos official ICD loader and validation layers for Vulkan")
@@ -221,7 +216,7 @@ and the ICD.")
(define-public vulkan-tools
(package
(name "vulkan-tools")
- (version (package-version vulkan-headers))
+ (version "1.2.140")
(source
(origin
(method git-fetch)
@@ -231,7 +226,7 @@ and the ICD.")
(file-name (git-file-name name version))
(sha256
(base32
- "1jndlz3n35zlz44p1b4cgl2alvsmgrqnkxdn5mpahg0zb8dgwmm8"))))
+ "08dk0q77kpycn4vv19jh3ig73gbq3psan246a7fss0nfxpiddg0j"))))
(build-system cmake-build-system)
(inputs
`(("glslang" ,glslang)
@@ -243,7 +238,7 @@ and the ICD.")
("python" ,python)
("vulkan-headers" ,vulkan-headers)))
(arguments
- `(#:tests? #f ; No tests.
+ `(#:tests? #f ;no tests
#:configure-flags (list (string-append "-DGLSLANG_INSTALL_DIR="
(assoc-ref %build-inputs "glslang")))))
(home-page
@@ -258,7 +253,7 @@ API.")
(define-public shaderc
(package
(name "shaderc")
- (version "2019.0")
+ (version "2020.0")
(source
(origin
(method git-fetch)
@@ -268,56 +263,42 @@ API.")
(file-name (git-file-name name version))
(sha256
(base32
- "1l5mmyxhzsbp0a6y2d86i8jmf46c6bjgjkdgkr5l8hmhflmm7gi2"))))
- (build-system meson-build-system)
+ "1kqqvsvib01bsmfbdy3fbwwpvkcdlfb6k71kjvzb3crql7w0rxff"))))
+ (build-system cmake-build-system)
(arguments
- `(#:tests? #f ; FIXME: Tests fail.
+ `(;; FIXME: Skip most of the tests, because enabling system gtest breaks
+ ;; the build: <https://github.com/google/shaderc/issues/470>.
+ #:configure-flags '("-DSHADERC_SKIP_TESTS=ON")
#:phases
(modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- ;; Remove various lines and touch build-version.inc or
- ;; configuring won't work.
- (invoke "touch" "glslc/src/build-version.inc")
- (substitute* "CMakeLists.txt" (("..PYTHON_EXE..*") ""))
- (substitute* "CMakeLists.txt"
- ((".*update_build_version.py..*") ""))
- (substitute* "CMakeLists.txt"
- ((".*add_custom_target.build-version.*") ""))
- (substitute* "CMakeLists.txt"
- ((".*spirv-tools_SOURCE_DIR.*glslang_SOURCE_DIR.*")
- ""))
- (substitute* "CMakeLists.txt"
- ((".*Update build-version.inc.*") ""))
- (substitute* "CMakeLists.txt" ((".*--check.*") ""))
- (substitute* "glslc/src/main.cc" ((".*build-version.inc.*")
- "\"1\""))
- (invoke "cmake" "-GNinja" "-DCMAKE_BUILD_TYPE=Release"
- "-DSHADERC_SKIP_TESTS=ON"
- "-DCMAKE_INSTALL_LIBDIR=lib"
- (string-append "-DCMAKE_INSTALL_PREFIX="
- out)))))
- (add-after 'unpack 'unpack-sources
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((spirv-tools-source (assoc-ref inputs "spirv-tools-source"))
- (spirv-headers-source (assoc-ref inputs "spirv-headers-source"))
- (glslang-source (assoc-ref inputs "glslang-source")))
- (copy-recursively spirv-tools-source "third_party/spirv-tools")
- (copy-recursively spirv-headers-source
- (string-append "third_party/spirv-tools"
- "/external/spirv-headers"))
- (copy-recursively glslang-source "third_party/glslang")
- #t))))))
+ (add-after 'unpack 'do-not-look-for-bundled-sources
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("add_subdirectory\\(third_party\\)")
+ ""))
+
+ (substitute* "glslc/test/CMakeLists.txt"
+ (("\\$<TARGET_FILE:spirv-dis>")
+ (which "spirv-dis")))
+
+ ;; Do not attempt to use git to encode version information.
+ (substitute* "glslc/CMakeLists.txt"
+ (("add_dependencies\\(glslc_exe build-version\\)")
+ ""))
+ (call-with-output-file "glslc/src/build-version.inc"
+ (lambda (port)
+ (format port "\"~a\"\n\"~a\"\n\"~a\"~%"
+ ,version
+ ,(package-version spirv-tools)
+ ,(package-version glslang))))
+ #t)))))
(inputs
- `(("googletest" ,googletest)
- ("python" ,python)))
+ `(("glslang" ,glslang)
+ ("python" ,python)
+ ("spirv-headers" ,spirv-headers)
+ ("spirv-tools" ,spirv-tools)))
(native-inputs
- `(("cmake" ,cmake-minimal)
- ("glslang-source" ,(package-source glslang))
- ("pkg-config" ,pkg-config)
- ("spirv-headers-source" ,(package-source spirv-headers))
- ("spirv-tools-source" ,(package-source spirv-tools))))
+ `(("pkg-config" ,pkg-config)))
(home-page "https://github.com/google/shaderc")
(synopsis "Tools for shader compilation")
(description "Shaderc is a collection of tools, libraries, and tests for
@@ -341,7 +322,16 @@ shader compilation.")
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags '("--with-spirv-tools")))
+ `(#:configure-flags '("--with-spirv-tools")
+ #:phases (modify-phases %standard-phases
+ (add-after 'unpack 'patch-for-new-vulkan
+ (lambda _
+ ;; Mimic upstream commit 8e7bf8a5c3e0047 for
+ ;; compatibility with newer vulkan-headers.
+ (substitute* "libs/vkd3d/vkd3d_private.h"
+ (("VK_PIPELINE_BIND_POINT_RANGE_SIZE")
+ "2u"))
+ #t)))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)