From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40955) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eQjGr-0004WJ-PK for guix-patches@gnu.org; Sun, 17 Dec 2017 19:27:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eQjGo-00079L-HT for guix-patches@gnu.org; Sun, 17 Dec 2017 19:27:05 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:59028) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eQjGo-000792-Bq for guix-patches@gnu.org; Sun, 17 Dec 2017 19:27:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eQjGo-0002DV-3F for guix-patches@gnu.org; Sun, 17 Dec 2017 19:27:02 -0500 Subject: bug#29625: [PATCH core-updates] Vulkan patch series. Resent-To: guix-patches@gnu.org Resent-Message-ID: From: Marius Bakke In-Reply-To: References: <3756bc948027ec654d31fa019426eed7@mykolab.com> <87h8suwkep.fsf@fastmail.com> Date: Mon, 18 Dec 2017 01:26:21 +0100 Message-ID: <87d13c7ufm.fsf@fastmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Rutger Helling Cc: 29625-done@debbugs.gnu.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Rutger Helling writes: > Hey Marius,=20 > > thanks for the feedback! > I've changed the patches and made sure they work on the latest > core-updates commit.=20 Thank you! One of the commits was not rebased, but I ended up doing a lot of adjustments anyway (including re-indent), so I fixed it up. Changes detailed below. Most of the issues were cosmetic and should have been caught in the first round, but I was in a hurry :-) > From 9d13265ac579adfd7d18c7710e793fa78b4aa0f6 Mon Sep 17 00:00:00 2001 > From: Rutger Helling > Date: Thu, 14 Dec 2017 20:16:37 +0100 > Subject: [PATCH] gnu: mesa: Enable Vulkan drivers for Intel and Radeon. [...] > + ;; Enable Vulkan on x86-64. > + ,@(match (%current-system) > + ((or "x86_64-linux") > + '("--with-vulkan-drivers=3Dintel,radeon")) > + (_ > + '(""))) The "or" here was not doing anything useful. Is there any particular reason i686 is not supported? > From 35b07f1e24c8597bdd504ae9f986abed486cb8df Mon Sep 17 00:00:00 2001 > From: Rutger Helling > Date: Fri, 8 Dec 2017 13:39:16 +0100 > Subject: [PATCH] gnu: local.mk: Add vulkan.scm. > > * gnu/local.mk: Add vulkan.scm. I squashed this into the next patch. > From 9c0b6c5e7729d94651b54c9597496f284cac5dbe Mon Sep 17 00:00:00 2001 > From: Rutger Helling > Date: Thu, 14 Dec 2017 22:37:45 +0100 > Subject: [PATCH] gnu: vulkan: Add spirv-headers. > > * gnu/packages/vulkan.scm: Create file. (spirv-headers): New variable. [...] > + (license license:non-copyleft)))) ;; Custom license. See > + ;; https://github.com/KhronosGroup/SPIRV-Headers/blob/master/LICENS= E for > + ;; details. Note: "non-copyleft" and "x11-style" are procedures and takes a URI as argument. I changed this back to x11-style which was indeed more appropriate with a link to the upstream license: (license (license:x11-style (string-append "https://github.com/KhronosGroup/SPIRV-Heade= rs/blob/" commit "/LICENSE"))) > From 80e82f1f92823e04893e8400dc82b69e890c7276 Mon Sep 17 00:00:00 2001 > From: Rutger Helling > Date: Fri, 8 Dec 2017 14:56:36 +0100 > Subject: [PATCH] gnu: vulkan: Add spirv-tools. > > * gnu/packages/vulkan.scm (spirv-tools): New variable. [...] > + (inputs `(("python" ,python) > + ("spirv-headers" ,spirv-headers))) > + (native-inputs `(("pkg-config", pkg-config))) I moved python to native-inputs, since it is only needed for building. > From e45701483f559eccac56e087fb40e075afe2ffd3 Mon Sep 17 00:00:00 2001 > From: Rutger Helling > Date: Thu, 14 Dec 2017 23:03:02 +0100 > Subject: [PATCH] gnu: vulkan: Add glslang. > > * gnu/packages/vulkan.scm (glslang): New variable. [...] > +(define-public glslang > + ;; Version 3.0 is too old for vulkan-icd-loader. Use a recent git comm= it > + ;; until the next stable version. > + (let ((commit "471bfed0621162a7513fc24a51e8a1ccc2e640ff") > + (revision "1")) > + (package > + (name "glslang") > + (version (string-append "0.0-" revision "." (string-take commit 9))) Since the last proper tag in the upstream repo was "3.0", I changed this to (string-append "3.0-" ...). > + (inputs `(("bison" ,bison))) Bison is only required for building, so I made it a native-input. > + (native-inputs `(("pkg-config" ,pkg-config))) > + (home-page "https://github.com/KhronosGroup/glslang") > + (synopsis "OpenGL and OpenGL ES shader front end and validator") > + (description "glslang is a OpenGL and OpenGL ES shader front end and > +validator.") > + ;; Modified BSD license. See "copyright" section of > + ;; https://www.khronos.org/opengles/sdk/tools/Reference-Compiler/ > + (license license:bsd-3)))) I changed the description to be the first paragraph of that URL :) Also mentioned two Apache 2.0 header files that gets installed here. > From 0172d3cb7cbdae03f143a4c7966c4694e69eea15 Mon Sep 17 00:00:00 2001 > From: Rutger Helling > Date: Fri, 8 Dec 2017 16:06:05 +0100 > Subject: [PATCH] gnu: vulkan: Add vulkan-icd-loader. > > * gnu/packages/vulkan.scm (vulkan-icd-loader): New variable. [...] > + (inputs `(("glslang" ,glslang) > + ("libxcb" ,libxcb) > + ("libx11" ,libx11) > + ("libxrandr" ,libxrandr) > + ("mesa" ,mesa) > + ("python" ,python) > + ("spirv-tools" ,spirv-tools) > + ("wayland" ,wayland))) > + (native-inputs `(("pkg-config", pkg-config))) Python was not referenced by the output, so I moved it to a native-input. > + (home-page (string-append "https://github.com/" > + "KhronosGroup/Vulkan-LoaderAndValidationLayers")) > + (synopsis "Khronos official ICD loader for Vulkan") > + (description "Vulkan-ICD-Loader provides Khronos official ICD loader = and > +validation layers for Vulkan developers on GNU/Linux.") I mentioned that ICD is and expanded a little based on my limited understanding of Vulkan. Improvements welcome! > + (license license:asl2.0))) And added a mention of the licenses listed in COPYRIGHT.txt. While snooping around I also found tests and tried adding this phase: (replace 'check (lambda _ (zero? (system* "bash" "tests/run_all_tests.sh"))))) But got 23/39 failures. I suspect most can be resolved by pointing $VK_LAYER_PATH to the right place in the build directory. Added a FIXME for now. > From 3b45c0ea6d35a0fa7895344fe53758fb4b64d00f Mon Sep 17 00:00:00 2001 > From: Rutger Helling > Date: Sun, 10 Dec 2017 11:15:03 +0100 > Subject: [PATCH] gnu: retroarch: Enable Vulkan support. > > * gnu/packages/games.scm (retroarch)[arguments]: Hard-code the path to > libvulkan.so. [native-inputs]: Add vulkan-icd-loader. Since libvulkan.so is used at runtime, it should be a normal input. [...] > @@ -1446,6 +1447,10 @@ either by Infocom or created using the Inform comp= iler.") > (lambda* (#:key outputs #:allow-other-keys) > (let* ((out (assoc-ref outputs "out")) > (etc (string-append out "/etc"))) > + ;; Hard-code the path to libvulkan.so. > + (substitute* "gfx/common/vulkan_common.c" > + (("libvulkan.so") (string-append (assoc-ref %build-inpu= ts > + "vulkan-icd-loader") "/lib/libvulkan.so"))) I made this a little more idiomatic by dereferencing vulkan-icd-loader in the let binding instead of the global %build-inputs. Do you know if RetroArch (or rather the dependencies) will still work on platform for which we don't have Vulkan support? I've pushed this series as e1454e0e..01564e5a. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAlo3Cy0ACgkQoqBt8qM6 VPp61wf/WcdR0MtAXn2SVRROlDwM6xLYRSMa07ZpPJJL8FFXhzXojUb3ZO6EiLGV 26w9fmy9g3IplaehMP7J9yC0EPFhLGD5LAFadiCsfVorQ9b3e4uk2yVo+hTc2JdE Qw9yo8qMx6evQOrnwhN6f2LjJVYeDpp5FpVbCN0+ci6Dnv29btO0QE8FJnCWJbJa UccpP6SxipzA28kwxXxYjifsgoK1Olx/uzbhZXHQ+2zDUp/LvYK9nfrc/IpYigqt RpV3ZOlPeQaPpcNgskB2ZQw3a7fdZZChtbqiR/KrIoyHDRwWdk//Inus5pIXV01n ZLt3HxZ2uvRZhf7MLoIG+Kv6XPdfzw== =35Tr -----END PGP SIGNATURE----- --=-=-=--