Subject: [bug#56041] [PATCH v4] gnu: Add vkmark.

From: Tomasz Jeneralczyk <[email-masked]>
Date: Mon, 27 Jun 2022 16:02:40 +0000

* 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(+)

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 <[email-masked]>
 ;;; Copyright © 2020 Greg Hogan <[email-masked]>
 ;;; Copyright © 2021 Arun Isaac <[email-masked]>
+;;; Copyright © 2022 Tomasz Jeneralczyk <[email-masked]>
 ;;;
 ;;; 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