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

From: Tomasz Jeneralczyk <[email-masked]>
Date: Mon, 7 Nov 2022 17:01:54 +0100

* gnu/packages/benchmark.scm (vkmark): New variable.
---
I updated the package to the newest commit and changed comments to reflect
the upstream project's current situation.
 gnu/packages/benchmark.scm | 50 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/gnu/packages/benchmark.scm b/gnu/packages/benchmark.scm
index e188b27789..e9faabe2e9 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))
 
@@ -693,3 +700,46 @@ (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 "30d2cd37f0566589d90914501fc7c51a4e51f559")
+        (revision "0"))
+    (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
+                  "0w0n080sb67s7dbxqi71h0vhm6dccs78rqjnxx9x524jp4jh9b7x"))))
+      (build-system meson-build-system)
+      (native-inputs (list pkg-config))
+      ;; The kms backend currently will not compile because of upstream issues.
+      ;; So I omitted this backend's dependiencies. A fix has been proposed
+      ;; on another branch, but it has not been merged yet.
+      ;; See https://github.com/vkmark/vkmark/issues/33
+      (inputs
+       (list vulkan-loader
+             vulkan-headers
+             glm
+             assimp
+             libxcb
+             xcb-util-wm
+             wayland-protocols
+             wayland))
+      (home-page "https://github.com/vkmark/vkmark")
+      (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.")
+      (license license:lgpl2.1+))))

base-commit: 8e54584d4448d37ddf8ae995bb545a181ba2493c
-- 
2.38.0