summary refs log tree commit diff
path: root/gnu/packages/vulkan.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/vulkan.scm')
-rw-r--r--gnu/packages/vulkan.scm96
1 files changed, 71 insertions, 25 deletions
diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index ac9f6f2f25..b36471c0eb 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -24,21 +24,26 @@
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages wine)
   #:use-module (gnu packages xorg))
 
 (define-public spirv-headers
   ;; Keep updated in accordance with
   ;; https://github.com/google/shaderc/blob/known-good/known_good.json
-  (let ((commit "061097878467b8e040fbf153a837d844ef9f9f96")
-        (revision "2"))
+  (let ((commit "3ce3e49d73b8abbf2ffe33f829f941fb2a40f552")
+        (revision "3"))
     (package
       (name "spirv-headers")
       (version (string-append "0.0-" revision "." (string-take commit 9)))
@@ -50,7 +55,7 @@
                (commit commit)))
          (sha256
           (base32
-           "0bf9h6xc5fkncxnadwmqvpsjh7sdgns6is8prv1gvlfzrkvpjj17"))
+           "0yk4bzqifdqpmdxkhvrxbdqhf5ngkga0ig1yyz7khr7rklqfz7wp"))
          (file-name (string-append name "-" version "-checkout"))))
       (build-system cmake-build-system)
       (arguments
@@ -58,10 +63,10 @@
          #:phases (modify-phases %standard-phases
                     (replace 'install
                       (lambda* (#:key outputs #:allow-other-keys)
-                        (zero? (system* "cmake" "-E" "copy_directory"
+                        (invoke "cmake" "-E" "copy_directory"
                                         "../source/include/spirv"
                                         (string-append (assoc-ref outputs "out")
-                                                       "/include/spirv"))))))))
+                                                       "/include/spirv")))))))
       (home-page "https://github.com/KhronosGroup/SPIRV-Headers")
       (synopsis "Machine-readable files from the SPIR-V Registry")
       (description
@@ -80,8 +85,8 @@ and for the GLSL.std.450 extended instruction set.
 (define-public spirv-tools
   ;; Keep updated in accordance with
   ;; https://github.com/google/shaderc/blob/known-good/known_good.json
-  (let ((commit "90862fe4b1c6763b32ce683d2d32c2f281f577cf")
-        (revision "1"))
+  (let ((commit "fe2fbee294a8ad4434f828a8b4d99eafe9aac88c")
+        (revision "2"))
     (package
      (name "spirv-tools")
      (version (string-append "0.0-" revision "." (string-take commit 9)))
@@ -93,14 +98,12 @@ and for the GLSL.std.450 extended instruction set.
              (commit commit)))
        (sha256
         (base32
-         "1yq8ab6f52wcxm2azzmx70nqz8l35izd45830aikjkk1jfzmzabb"))
+         "03rq4ypwqnz34n8ip85n95a3b9rxb34j26azzm3b3invaqchv19x"))
        (file-name (string-append name "-" version "-checkout"))))
      (build-system cmake-build-system)
      (arguments
-      `(#:configure-flags (list (string-append "-DCMAKE_INSTALL_LIBDIR="
-                                               (assoc-ref %outputs "out")
-                                               "/lib")
-                                (string-append "-DSPIRV-Headers_SOURCE_DIR="
+      `(#:tests? #f ; FIXME: Tests fail.
+        #:configure-flags (list (string-append "-DSPIRV-Headers_SOURCE_DIR="
                                                (assoc-ref %build-inputs
                                                           "spirv-headers")))))
      (inputs `(("spirv-headers" ,spirv-headers)))
@@ -117,8 +120,8 @@ disassembler, validator, and optimizer for SPIR-V.")
 (define-public glslang
   ;; Keep updated in accordance with
   ;; https://github.com/google/shaderc/blob/known-good/known_good.json
-  (let ((commit "b5b08462442239e6537315ea1405b6afcd53043e")
-        (revision "2"))
+  (let ((commit "32d3ec319909fcad0b2b308fe1635198773e8316")
+        (revision "3"))
     (package
       (name "glslang")
       (version (string-append "3.0-" revision "." (string-take commit 9)))
@@ -130,7 +133,7 @@ disassembler, validator, and optimizer for SPIR-V.")
                (commit commit)))
          (sha256
           (base32
-           "08imby3hciisshzacrkx8s56lx4fxm7dad06xxaxxcapinmqrvwk"))
+           "1kmgjv5kbrjy6azpgwnjcn3cj8vg5i8hnyk3m969sc0gq2j1rbjj"))
          (file-name (string-append name "-" version "-checkout"))))
       (build-system cmake-build-system)
       (arguments
@@ -157,19 +160,19 @@ interpretation of the specifications for these languages.")
                      ;; include/SPIRV/{bitutils,hex_float}.h are Apache 2.0.
                      license:asl2.0)))))
 
-(define-public vulkan-icd-loader
+(define-public vulkan-loader
   (package
-    (name "vulkan-icd-loader")
+    (name "vulkan-loader")
     (version "1.1.73.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/"
+             "https://github.com/KhronosGroup/Vulkan-Loader/"
              "archive/sdk-" version ".tar.gz"))
        (sha256
         (base32
-         "1qb34j2zrc04fgs96m3k76vi4nx3sygbdcyg7pbwasr45cbdhsxb"))))
+         "0lvdpy6ybx5h7w15m9s2n9q3167q618clra2k7yi2cbm397ci4hn"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f ;FIXME: 23/39 tests fail.  Try "tests/run_all_tests.sh".
@@ -209,9 +212,12 @@ and the ICD.")
                    (license:x11-style "file://COPYRIGHT.txt")
                    license:bsd-3))))
 
+(define-public vulkan-icd-loader
+  (deprecated-package "vulkan-icd-loader" vulkan-loader))
+
 (define-public shaderc
-  (let ((commit "773ec22d49f40b7161820f29d953be4a7e40190d")
-        (revision "1"))
+  (let ((commit "be8e0879750303a1de09385465d6b20ecb8b380d")
+        (revision "2"))
     (package
       (name "shaderc")
       (version (git-version "0.0.0" revision commit))
@@ -224,11 +230,10 @@ and the ICD.")
          (file-name (string-append name "-" version ".tar.gz"))
          (sha256
           (base32
-           "0b41inb1czxv3mciip0lfdxv19ccx2ys31fivfywjn2q8va1gd1f"))))
+           "16p25ry2i4zrj00zihfpf210f8xd7g398ffbw25igvi9mbn4nbfd"))))
       (build-system meson-build-system)
       (arguments
-       `(#:tests? #f                    ; tests don't work yet.
-         #:phases
+       `(#:phases
          (modify-phases %standard-phases
            (replace 'configure
              (lambda* (#:key outputs #:allow-other-keys)
@@ -266,7 +271,8 @@ and the ICD.")
                  (copy-recursively glslang-source "third_party/glslang")
                  #t))))))
       (inputs
-       `(("python" ,python)))
+       `(("googletest" ,googletest)
+         ("python" ,python)))
       (native-inputs
        `(("cmake" ,cmake)
          ("glslang-source" ,(package-source glslang))
@@ -278,3 +284,43 @@ and the ICD.")
       (description "Shaderc is a collection of tools, libraries, and tests for
 shader compilation.")
       (license license:asl2.0))))
+
+(define-public vkd3d
+  (let ((commit "020c119e2da0786d8be0615cff961c190b00d62d") ; Release 1.0.
+        (revision "0"))
+    (package
+     (name "vkd3d")
+     (version "1.0")
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://source.winehq.org/git/vkd3d.git")
+             (commit commit)))
+       (sha256
+        (base32
+         "084svxhigs8r0725jv6gs7wwrxb9x4igyg5bgvgpcfw4aq0k69gn"))
+       (file-name (string-append name "-" version "-checkout"))))
+     (build-system gnu-build-system)
+     (arguments
+      `(#:configure-flags '("--with-spirv-tools")))
+     (native-inputs
+      `(("autoconf" ,autoconf)
+        ("automake" ,automake)
+        ("gettext" ,gnu-gettext)
+        ("libtool" ,libtool)
+        ("pkg-config" ,pkg-config)))
+     (inputs
+      `(("libx11" ,libx11)
+        ("libxcb" ,libxcb)
+        ("spirv-headers" ,spirv-headers)
+        ("spirv-tools" ,spirv-tools)
+        ("vulkan-loader" ,vulkan-loader)
+        ("wine" ,wine) ; Needed for 'widl'.
+        ("xcb-util" ,xcb-util)
+        ("xcb-util-keysyms" ,xcb-util-keysyms)
+        ("xcb-util-wm" ,xcb-util-wm)))
+     (home-page "https://source.winehq.org/git/vkd3d.git/")
+     (synopsis "Direct3D 12 to Vulkan translation library")
+     (description "vkd3d is a library for translating Direct3D 12 to Vulkan.")
+     (license license:lgpl2.1))))