[PATCH] gnu: Add vkmark.

OpenSubmitted by Tomasz Jeneralczyk.
Details
3 participants
  • Maxime Devos
  • (
  • Tomasz Jeneralczyk
Owner
unassigned
Severity
normal
T
T
Tomasz Jeneralczyk wrote on 17 Jun 17:24 +0200
(address . guix-patches@gnu.org)
b9edc90fb6081f2ea0495b9c22527134@schwi.pl
* gnu/packages/benchmark.scm (vkmark): Add variable.
---
gnu/packages/benchmark.scm | 43 ++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)

Toggle diff (88 lines)
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index b167c6de6e..98d9390472 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -11,6 +11,7 @@
  ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer 
<maxim.cournoyer@gmail.com>
  ;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
  ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl>
  ;;;
  ;;; This file is part of GNU Guix.
  ;;;
@@ -36,15 +37,20 @@ (define-module (gnu packages benchmark)
    #:use-module (guix build-system cmake)
    #:use-module (guix build-system gnu)
    #:use-module (guix build-system python)
+  #:use-module (guix build-system meson)
    #:use-module (gnu packages)
    #:use-module (gnu packages autotools)
    #:use-module (gnu packages base)
    #:use-module (gnu packages c)
    #:use-module (gnu packages check)
+  #:use-module (gnu packages cmake)
    #:use-module (gnu packages compression)
    #:use-module (gnu packages kde-frameworks)
    #:use-module (gnu packages databases)
    #:use-module (gnu packages docbook)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages graphics)
    #:use-module (gnu packages linux)
    #:use-module (gnu packages lua)
    #:use-module (gnu packages maths)
@@ -57,6 +63,8 @@ (define-module (gnu packages benchmark)
    #:use-module (gnu packages python-web)
    #:use-module (gnu packages python-xyz)
    #:use-module (gnu packages qt)
+  #:use-module (gnu packages vulkan)
+  #:use-module (gnu packages xorg)
    #:use-module (gnu packages xml)
    #:use-module (ice-9 match))

@@ -584,3 +592,38 @@ (define-public sysbench
  @item
  @end itemize")
      (license license:gpl2+)))
+
+(define-public vkmark
+  (let ((commit "d872846e2e7c47010c11227eb713d00ccfdd35c6")
+        (revision "1"))
+    (package
+      (name "vkmark")
+      (version (git-version "2017.08" revision commit))
+      (source (origin
+                (method git-fetch)
+                (file-name (git-file-name name version))
+                (uri (git-reference
+                      (url "https://github.com/vkmark/vkmark")
+                      (commit commit)))
+                (sha256
+                 (base32
+                  
"0zlryz8i8jvl160bv30ig5nd9h4ahpjfw53ys839i41xi80jjg5d"))))
+      (build-system meson-build-system)
+      (native-inputs (list pkg-config cmake))
+      ;; The kms back-end, as it is, seems to have bitrot
+      ;; and would need maintenance to work with current Mesa:
+      ;; https://gitlab.freedesktop.org/mesa/mesa/-/commit/5e6db1916806
+      (inputs (list vulkan-loader
+                    vulkan-headers
+                    glm
+                    assimp
+                    libxcb
+                    xcb-util-wm
+                    wayland-protocols
+                    wayland))
+      (synopsis "Benchmark for Vulkan")
+      (description
+       "vkmark is an extensible Vulkan benchmarking suite with 
targeted, configurable
+scenes.")
+      (home-page "https://github.com/vkmark/vkmark")
+      (license license:lgpl2.1))))

base-commit: d6bd483cd53cedc8da39fcc6c419f7241080ed21
-- 
2.36.1
(
CKSNAO3LQ6KG.1WY5SU8ZWD8LB@guix-aspire
Hi! :D This package seems good to me: passes all lints, builds, and
style looks okay.

On Fri Jun 17, 2022 at 4:24 PM BST, Tomasz Jeneralczyk wrote:
Toggle quote (4 lines)
> +(define-public vkmark
> + (let ((commit "d872846e2e7c47010c11227eb713d00ccfdd35c6")
> + (revision "1"))

I think it's common to include an explanation of why tags aren't used :)

Toggle quote (5 lines)
> + (file-name (git-file-name name version))
> + (uri (git-reference
> + (url "https://github.com/vkmark/vkmark")
> + (commit commit)))

Nitpick: file-name usually comes after uri in most of the packages I've
seen. Maybe run guix style, if you haven't already.

Toggle quote (2 lines)
> + (native-inputs (list pkg-config cmake))

Why include cmake? It seems to compile without it :)

Toggle quote (2 lines)
> + (synopsis "Benchmark for Vulkan")

Maybe expand this to "Extensible benchmarking suite for Vulkan" or
something? I'd say this synopsis is a bit too short.
(
CKSOCFT6AGVY.20S2L76ZVNGQ3@guix-aspire
On Fri Jun 17, 2022 at 8:10 PM BST, ( via Guix-patches via wrote:
Toggle quote (2 lines)
> Maybe run guix style, if you haven't already.

And only then I discover how questionable guix style's formatting
choices are... I retract this suggestion :P
(
(address . 56041@debbugs.gnu.org)
CKT3Y2DYV376.2UXGJ8F3Z554J@guix-aspire
Forwarded message from Tomasz Jeneralczyk on Fri Jun 17, 2022 at 10:40 PM:
On 2022-06-17 19:10, ( wrote:

Toggle quote (8 lines)
> On Fri Jun 17, 2022 at 4:24 PM BST, Tomasz Jeneralczyk wrote:

> I think it's common to include an explanation of why tags aren't used

> :)



The only tag in the repo is "2017.08" and it's a bit old considering

the latest commit was just a few days ago. I did not manage to compile

the old version successfully anyway, I suspect the api of the libraries

it uses has changed significantly in the meantime.



On the latest commit all benchmark suites run just fine for me on xcb

backend,

and someone on irc confirmed it works on wayland too so I rolled with

that.



Do you want me to write a comment there explaining why I used a specific

commit?



Toggle quote (6 lines)
> Nitpick: file-name usually comes after uri in most of the packages I've

> seen. Maybe run guix style, if you haven't already.



All I can tell is guix style does not do much, could not even fix this

simple

issue.



Toggle quote (4 lines)
> Why include cmake? It seems to compile without it :)



You are right. I think it is there because during building process it

spits

out "Found CMAKE: NO" during compilation and I thought that was an

issue.



Toggle quote (6 lines)
> Maybe expand this to "Extensible benchmarking suite for Vulkan" or

> something? I'd say this synopsis is a bit too short.



your suggestion sounds good.



So do I send a new patch in this thread (with the same or a different

subject?) or make a new thread with it?


Please only send plain-text email; see https://useplaintext.email. Thanks!
(
(address . 56041@debbugs.gnu.org)
CKT3YP4LR8B9.2Z60T9BZE1SUR@guix-aspire
Forwarded message from ( on Fri Jun 17, 2022 at 11:47 PM:
On Fri Jun 17, 2022 at 11:40 PM BST, Tomasz Jeneralczyk wrote:

Toggle quote (6 lines)
> Do you want me to write a comment there explaining why I used a specific

> commit?



Yeah, that'd be good and seems to be usual practise :)



Toggle quote (14 lines)
> > Nitpick: file-name usually comes after uri in most of the packages I've

> > seen. Maybe run guix style, if you haven't already.

>

> All I can tell is guix style does not do much, could not even fix this

> simple

> issue.



Yeah, i just replied to my message saying that I no longer recommend

guix style, since it completely wrecked the formatting of a package I

was working on... Interesting that it doesn't do anything here, though.



Toggle quote (6 lines)
> So do I send a new patch in this thread (with the same or a different

> subject?) or make a new thread with it?



(1) make modifications

(2) commit modifications

(3) rebase https://git-rebase.io the commits as fixups for the original

commits so that your new patchset will be completely independent of

the original

(4) git send-email -v2 to _this_ thread <56041 <at> debbugs.gnu.org>, not a

new one



This will send an amended set of commits. Note that these commits should

not be fixes for the earlier commits, but modified versions of the original

commits (so that the v2 patches can be applied without first applying

the v1 patches).


Please only send plain-text email; see https://useplaintext.email. Thanks!
T
T
Tomasz Jeneralczyk wrote on 19 Jun 01:01 +0200
[PATCH v2] gnu: Add vkmark.
(address . 56041@debbugs.gnu.org)
acba611cbd31ab29f39f46e072d8b8ae@schwi.pl
* gnu/packages/benchmark.scm (vkmark): Add variable.
---
gnu/packages/benchmark.scm | 47 ++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)

Toggle diff (90 lines)
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index b167c6de6e..79e1645eba 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -11,6 +11,7 @@
  ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer 
<maxim.cournoyer@gmail.com>
  ;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
  ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl>
  ;;;
  ;;; This file is part of GNU Guix.
  ;;;
@@ -36,15 +37,20 @@ (define-module (gnu packages benchmark)
    #:use-module (guix build-system cmake)
    #:use-module (guix build-system gnu)
    #:use-module (guix build-system python)
+  #:use-module (guix build-system meson)
    #:use-module (gnu packages)
    #:use-module (gnu packages autotools)
    #:use-module (gnu packages base)
    #:use-module (gnu packages c)
    #:use-module (gnu packages check)
+  #:use-module (gnu packages cmake)
    #:use-module (gnu packages compression)
    #:use-module (gnu packages kde-frameworks)
    #:use-module (gnu packages databases)
    #:use-module (gnu packages docbook)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages graphics)
    #:use-module (gnu packages linux)
    #:use-module (gnu packages lua)
    #:use-module (gnu packages maths)
@@ -57,6 +63,8 @@ (define-module (gnu packages benchmark)
    #:use-module (gnu packages python-web)
    #:use-module (gnu packages python-xyz)
    #:use-module (gnu packages qt)
+  #:use-module (gnu packages vulkan)
+  #:use-module (gnu packages xorg)
    #:use-module (gnu packages xml)
    #:use-module (ice-9 match))

@@ -584,3 +592,42 @@ (define-public sysbench
  @item
  @end itemize")
      (license license:gpl2+)))
+
+(define-public vkmark
+  ;; The latest "release" of vkmark is tagged "2017.08" and it's so old
+  ;; I couldn't even compile it. The current master branch's head
+  ;; seems to be working just fine.
+  (let ((commit "d872846e2e7c47010c11227eb713d00ccfdd35c6")
+        (revision "1")
+        (latest-release "2017.08"))
+    (package
+      (name "vkmark")
+      (version (git-version latest-release revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/vkmark/vkmark")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  
"0zlryz8i8jvl160bv30ig5nd9h4ahpjfw53ys839i41xi80jjg5d"))))
+      (build-system meson-build-system)
+      (native-inputs (list pkg-config))
+      ;; The kms back-end, as it is, seems to have bitrot
+      ;; and would need maintenance to work with current Mesa:
+      ;; https://gitlab.freedesktop.org/mesa/mesa/-/commit/5e6db1916806
+      (inputs (list vulkan-loader
+                    vulkan-headers
+                    glm
+                    assimp
+                    libxcb
+                    xcb-util-wm
+                    wayland-protocols
+                    wayland))
+      (synopsis "Benchmark for Vulkan")
+      (description
+       "vkmark is an extensible Vulkan benchmarking suite with 
targeted, configurable
+scenes.")
+      (home-page "https://github.com/vkmark/vkmark")
+      (license license:lgpl2.1))))

base-commit: 319b8331b2357e12ec9edb9665513c32bef56622
--
2.36.1
(
CKTYGBCHAAG4.12ETPQ5NLHXWJ@guix-aspire
LGTM except for:

On Sun Jun 19, 2022 at 12:01 AM BST, Tomasz Jeneralczyk wrote:
Toggle quote (2 lines)
> + #:use-module (gnu packages cmake)

You probably don't need this anymore.
M
M
Maxime Devos wrote on 19 Jun 11:07 +0200
cfa318213b2e0d53e838de8568d6a86c199d2d14.camel@telenet.be
Tomasz Jeneralczyk schreef op za 18-06-2022 om 23:01 [+0000]:
Toggle quote (2 lines)
> +      (license license:lgpl2.1))))

Going by, e.g.,
not lgpl2.1 but more general (lgpl2.1+).

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYq7nPRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7sClAQCPldw1R+MAM89vqrf7EFrAUHj3
X/QNHpUF2dpswUbPMAD+I8O2Fco0F7QllqvrmPM5gtS2fzadef2nNj0rEsF4egc=
=wQ3D
-----END PGP SIGNATURE-----


M
M
Maxime Devos wrote on 19 Jun 11:08 +0200
4594a2aed3de8ea2ebd363bcdfb7bdea5870ef9d.camel@telenet.be
Tomasz Jeneralczyk schreef op za 18-06-2022 om 23:01 [+0000]:
Toggle quote (2 lines)
> +        (latest-release "2017.08"))

This variable referred to from a single location, so no need for this
variable.

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYq7nmhccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7km3AP0Z5WSwdNNi/JfPZI+xtj/fGLUj
Olx6vTYWZyUv1pMtfAEAi7g9K8oSGKANIkSqcXkJuSJCc5/rgTuGbyrBh8bvGgI=
=S0sQ
-----END PGP SIGNATURE-----


T
T
Tomasz Jeneralczyk wrote on 19 Jun 17:46 +0200
[PATCH v3] gnu: Add vkmark.
(address . 56041@debbugs.gnu.org)
3aecf31124b3b983409f112c9858e597@schwi.pl
* gnu/packages/benchmark.scm (vkmark): Add variable.
---
gnu/packages/benchmark.scm | 48 ++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)

Toggle diff (93 lines)
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index b167c6de6e..1ca2c4cbfa 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -11,6 +11,7 @@
  ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer 
<maxim.cournoyer@gmail.com>
  ;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
  ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl>
  ;;;
  ;;; This file is part of GNU Guix.
  ;;;
@@ -36,6 +37,7 @@ (define-module (gnu packages benchmark)
    #:use-module (guix build-system cmake)
    #:use-module (guix build-system gnu)
    #:use-module (guix build-system python)
+  #:use-module (guix build-system meson)
    #:use-module (gnu packages)
    #:use-module (gnu packages autotools)
    #:use-module (gnu packages base)
@@ -45,6 +47,9 @@ (define-module (gnu packages benchmark)
    #:use-module (gnu packages kde-frameworks)
    #:use-module (gnu packages databases)
    #:use-module (gnu packages docbook)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages graphics)
    #:use-module (gnu packages linux)
    #:use-module (gnu packages lua)
    #:use-module (gnu packages maths)
@@ -57,6 +62,8 @@ (define-module (gnu packages benchmark)
    #:use-module (gnu packages python-web)
    #:use-module (gnu packages python-xyz)
    #:use-module (gnu packages qt)
+  #:use-module (gnu packages vulkan)
+  #:use-module (gnu packages xorg)
    #:use-module (gnu packages xml)
    #:use-module (ice-9 match))

@@ -584,3 +591,44 @@ (define-public sysbench
  @item
  @end itemize")
      (license license:gpl2+)))
+
+(define-public vkmark
+  ;; The latest "release" of vkmark is tagged "2017.08" and it's so old
+  ;; I couldn't even compile it. The current master branch's head
+  ;; seems to be working just fine.
+  (let ((commit "d872846e2e7c47010c11227eb713d00ccfdd35c6")
+        (revision "1"))
+    (package
+      (name "vkmark")
+      (version (git-version "2017.08" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/vkmark/vkmark")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  
"0zlryz8i8jvl160bv30ig5nd9h4ahpjfw53ys839i41xi80jjg5d"))))
+      (build-system meson-build-system)
+      (native-inputs (list pkg-config))
+      ;; The kms back-end, as it is, seems to have bitrot
+      ;; and would need maintenance to work with current Mesa:
+      ;; https://gitlab.freedesktop.org/mesa/mesa/-/commit/5e6db1916806
+      (inputs (list vulkan-loader
+                    vulkan-headers
+                    glm
+                    assimp
+                    libxcb
+                    xcb-util-wm
+                    wayland-protocols
+                    wayland))
+      (synopsis "Extensible benchmarking suite for Vulkan")
+      (description
+       "
+vkmark offers a suite of scenes that can be used to measure various 
aspects of Vulkan
+performance.  The way in which each scene is rendered is configurable 
through a set of
+options.  To list the available scenes and their acceptable options you 
can use the
+-l, --list-scenes command line option.")
+      (home-page "https://github.com/vkmark/vkmark")
+      (license license:lgpl2.1+))))

base-commit: 319b8331b2357e12ec9edb9665513c32bef56622
-- 
2.36.1
T
T
Tomasz Jeneralczyk wrote on 27 Jun 18:02 +0200
[PATCH v4] gnu: Add vkmark.
(address . 56041@debbugs.gnu.org)(name . Tomasz Jeneralczyk)(address . tj@schwi.pl)
c56b4352ea644e4ffe2cbb1d20f2944366b005ff.1656343780.git.tj@schwi.pl
* gnu/packages/benchmark.scm (vkmark): Add variable.
---
On suggestion from IRC I:
Rewrote the first comment to sound more professional
Fixed description to not exceed fill-column on any given line
Removed usage documentation from description

gnu/packages/benchmark.scm | 48 ++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)

Toggle diff (88 lines)
diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index f0e05483f0..0f33e5a0e3 100644
--- a/gnu/packages/benchmark.scm
+++ b/gnu/packages/benchmark.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -36,6 +37,7 @@ (define-module (gnu packages benchmark)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
+  #:use-module (guix build-system meson)
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
@@ -46,6 +48,9 @@ (define-module (gnu packages benchmark)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages kde-frameworks)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages graphics)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages maths)
@@ -60,6 +65,8 @@ (define-module (gnu packages benchmark)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages vulkan)
+  #:use-module (gnu packages xorg)
   #:use-module (gnu packages xml)
   #:use-module (ice-9 match))
 
@@ -645,3 +652,44 @@ (define-public sysbench
 @item
 @end itemize")
     (license license:gpl2+)))
+
+(define-public vkmark
+  ;; The only ever release is tagged "2017.08" and as its name suggests
+  ;; it was back in the august of 2017. That version no longer compiles
+  ;; due to changes in APIs of its libraries.
+  ;; Latest commit on the other hand seems to be fully working on xcb
+  ;; and wayland backends.
+  (let ((commit "d872846e2e7c47010c11227eb713d00ccfdd35c6")
+        (revision "1"))
+    (package
+      (name "vkmark")
+      (version (git-version "2017.08" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/vkmark/vkmark")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0zlryz8i8jvl160bv30ig5nd9h4ahpjfw53ys839i41xi80jjg5d"))))
+      (build-system meson-build-system)
+      (native-inputs (list pkg-config))
+      ;; The kms back-end, as it is, seems to have bitrot
+      ;; and would need maintenance to work with current Mesa:
+      ;; https://gitlab.freedesktop.org/mesa/mesa/-/commit/5e6db1916806
+      (inputs (list vulkan-loader
+                    vulkan-headers
+                    glm
+                    assimp
+                    libxcb
+                    xcb-util-wm
+                    wayland-protocols
+                    wayland))
+      (synopsis "Extensible benchmarking suite for Vulkan")
+      (description
+       "vkmark offers a suite of scenes that can be used to measure various
+aspects of Vulkan performance.  The way in which each scene is rendered is
+configurable through a set of options.")
+      (home-page "https://github.com/vkmark/vkmark")
+      (license license:lgpl2.1+))))

base-commit: b42e52a735722534cef53de874861a921b3d8734
-- 
2.36.1
?