unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#70493] [PATCH 0/4] gnu: Add gamescope.
@ 2024-04-21  8:19 dan
  2024-04-21  8:29 ` [bug#70493] [PATCH 1/4] gnu: Add libliftoff dan
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: dan @ 2024-04-21  8:19 UTC (permalink / raw)
  To: 70493

This patch series added gamescope, the micro-compositor for running games, and
a few its dependencies.  Noted that the latest gamescope release is 3.14.4,
but it depends on the latest version of wayland-protocols.  Besides, I noticed
that libavif is updated in https://issues.guix.gnu.org/70395, but this is a
patch series trying to update some KDE packages, and since a lot of packages
depends on libavif, it would take some time for this update to landed in
master.  In the meantime, i added a new package libavif-1.0.

dan (4):
  gnu: Add libliftoff.
  gnu: Add vkroots.
  gnu: Add libavif-1.0.
  gnu: Add gamescope.

 gnu/packages/freedesktop.scm |  23 ++++++++
 gnu/packages/image.scm       |  14 +++++
 gnu/packages/vulkan.scm      |  36 ++++++++++++
 gnu/packages/wm.scm          | 110 +++++++++++++++++++++++++++++++++++
 4 files changed, 183 insertions(+)


base-commit: 38b88d710ea13ba024aed0543bc2862772cdb645
-- 
2.41.0





^ permalink raw reply	[flat|nested] 5+ messages in thread

* [bug#70493] [PATCH 1/4] gnu: Add libliftoff.
  2024-04-21  8:19 [bug#70493] [PATCH 0/4] gnu: Add gamescope dan
@ 2024-04-21  8:29 ` dan
  2024-04-21  8:29 ` [bug#70493] [PATCH 2/4] gnu: Add vkroots dan
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: dan @ 2024-04-21  8:29 UTC (permalink / raw)
  To: 70493; +Cc: john.kehayias

* gnu/packages/freedesktop.scm (libliftoff): New variable.

Change-Id: Ia66bb09db6b09c63fbc6223f58d6a0ebf6f4c546
---
 gnu/packages/freedesktop.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 339297c087..d0c14e8077 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -35,6 +35,7 @@
 ;;; Copyright © 2023 Alex Devaure <ajadevaure@gmail.com>
 ;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
 ;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
+;;; Copyright © 2024 dan <i@dan.games>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -3234,3 +3235,25 @@ (define-public waypipe
      "Waypipe is a proxy for Wayland clients, with the aim of
 supporting behavior like @samp{ssh -X}.")
     (license license:expat)))
+
+(define-public libliftoff
+  (package
+    (name "libliftoff")
+    (version "0.4.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.freedesktop.org/emersion/libliftoff")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256 (base32 "1ikjp638d655ycaqkdnzhb12d29kkbb3a46lqhbhsfc8vsqj3z1l"))))
+    (build-system meson-build-system)
+    (inputs (list libdrm))
+    (native-inputs (list pkg-config))
+    (home-page "https://gitlab.freedesktop.org/emersion/libliftoff")
+    (synopsis "Lightweight KMS plane library")
+    (description "libliftoff eases the use of KMS planes from userspace
+without standing in your way. Users create \"virtual planes\" called layers,
+set KMS properties on them, and libliftoff will pick hardware planes for these
+layers if possible.")
+    (license license:expat)))
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [bug#70493] [PATCH 2/4] gnu: Add vkroots.
  2024-04-21  8:19 [bug#70493] [PATCH 0/4] gnu: Add gamescope dan
  2024-04-21  8:29 ` [bug#70493] [PATCH 1/4] gnu: Add libliftoff dan
@ 2024-04-21  8:29 ` dan
  2024-04-21  8:29 ` [bug#70493] [PATCH 3/4] gnu: Add libavif-1.0 dan
  2024-04-21  8:29 ` [bug#70493] [PATCH 4/4] gnu: Add gamescope dan
  3 siblings, 0 replies; 5+ messages in thread
From: dan @ 2024-04-21  8:29 UTC (permalink / raw)
  To: 70493; +Cc: john.kehayias

* gnu/packages/vulkan.scm (vkroots): New variable.

Change-Id: I57dfea58254c9bcf001d2052156f2c17dde109c4
---
 gnu/packages/vulkan.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm
index 23d0c72ee3..f3c6e619a8 100644
--- a/gnu/packages/vulkan.scm
+++ b/gnu/packages/vulkan.scm
@@ -32,6 +32,7 @@ (define-module (gnu packages vulkan)
   #:use-module (guix gexp)
   #: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)
@@ -634,3 +635,38 @@ (define-public vulkan-utility-libraries
     (synopsis "Utility libraries for Vulkan developers")
     (description "Utility libraries for Vulkan developers.")
     (license license:asl2.0)))
+
+(define-public vkroots
+  (let ((commit "d5ef31abc7cb5c69aee4bcb67b10dd543c1ff7ac")
+        (revision "0"))
+    (package
+      (name "vkroots")
+      (version (git-version "0.0.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/Joshua-Ashton/vkroots")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32 "0g2mh8l0xzxzr4yjyafzv76n7jk9043dcbf5mpqwpwmjx88m5nc0"))))
+      (build-system meson-build-system)
+      (arguments (list #:phases #~(modify-phases %standard-phases
+                                    (add-after 'unpack 'patch-vulkan
+                                      (lambda _
+                                        (substitute* "gen/make_vkroots"
+                                          (("\\.\\.") (getcwd)))))
+                                    (add-before 'install 'gen-vkroots
+                                      (lambda _
+                                        (invoke "python3"
+                                                "../source/gen/make_vkroots"
+                                                "-x"
+                                                (string-append
+                                                 #$(this-package-native-input "vulkan-headers")
+                                                 "/share/vulkan/registry/vk.xml")))))))
+      (native-inputs (list python vulkan-headers))
+      (home-page "https://github.com/Joshua-Ashton/vkroots")
+      (synopsis "Simple method of making Vulkan layers")
+      (description "vkroots is a framework for writing Vulkan layers that
+takes all the complexity away from you.")
+      (license license:expat))))
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [bug#70493] [PATCH 3/4] gnu: Add libavif-1.0.
  2024-04-21  8:19 [bug#70493] [PATCH 0/4] gnu: Add gamescope dan
  2024-04-21  8:29 ` [bug#70493] [PATCH 1/4] gnu: Add libliftoff dan
  2024-04-21  8:29 ` [bug#70493] [PATCH 2/4] gnu: Add vkroots dan
@ 2024-04-21  8:29 ` dan
  2024-04-21  8:29 ` [bug#70493] [PATCH 4/4] gnu: Add gamescope dan
  3 siblings, 0 replies; 5+ messages in thread
From: dan @ 2024-04-21  8:29 UTC (permalink / raw)
  To: 70493; +Cc: john.kehayias

* gnu/packages/image.scm (libavif-1.0): New variable.

Change-Id: Ie3c9dc1964ea0d0a97cde4e8802f8dd1308f0e0b
---
 gnu/packages/image.scm | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm
index fae45363ad..5ed2acda8c 100644
--- a/gnu/packages/image.scm
+++ b/gnu/packages/image.scm
@@ -39,6 +39,7 @@
 ;;; Copyright © 2023-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com>
 ;;; Copyright © 2024 chris <chris@bumblehead.com>
+;;; Copyright © 2024 dan <i@dan.games>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -2544,6 +2545,19 @@ (define-public libavif
     (home-page "https://github.com/AOMediaCodec/libavif")
     (license (list license:bsd-2))))
 
+(define-public libavif-1.0
+  (package
+   (inherit libavif)
+   (version "1.0.4")
+   (source (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/AOMediaCodec/libavif")
+                   (commit (string-append "v" version))))
+             (file-name (git-file-name (package-name libavif) version))
+             (sha256
+              (base32 "0k72q7yvfdn92wkslyifw14319nm981a8r3kd84i4ylxmrkgi0zm"))))))
+
 (define-public libheif
   (package
     (name "libheif")
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [bug#70493] [PATCH 4/4] gnu: Add gamescope.
  2024-04-21  8:19 [bug#70493] [PATCH 0/4] gnu: Add gamescope dan
                   ` (2 preceding siblings ...)
  2024-04-21  8:29 ` [bug#70493] [PATCH 3/4] gnu: Add libavif-1.0 dan
@ 2024-04-21  8:29 ` dan
  3 siblings, 0 replies; 5+ messages in thread
From: dan @ 2024-04-21  8:29 UTC (permalink / raw)
  To: 70493; +Cc: john.kehayias

* gnu/packages/wm.scm (%gamescope-version): New variable.
(reshade-for-gamescope): New variable.
(gamescope): New variable.

Change-Id: If86bc6127144854189f8fa66415f32bc80a26d6b
---
 gnu/packages/wm.scm | 110 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 110 insertions(+)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 2eecc0ed2a..8d816e2e28 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -70,6 +70,7 @@
 ;;; Copyright © 2024 Ahmad Draidi <a.r.draidi@redscript.org>
 ;;; Copyright © 2024 chris <chris@bumblehead.com>
 ;;; Copyright © 2024 Erik Eduardo Alonso Hernández <erik@erikeduardo.xyz>
+;;; Copyright © 2024 dan <i@dan.games>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -105,6 +106,7 @@ (define-module (gnu packages wm)
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages benchmark)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
@@ -142,6 +144,7 @@ (define-module (gnu packages wm)
   #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages man)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages mpd)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages music)
@@ -155,12 +158,15 @@ (define-module (gnu packages wm)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages sdl)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages sphinx)
+  #:use-module (gnu packages stb)
   #:use-module (gnu packages suckless)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages textutils)
   #:use-module (gnu packages time)
+  #:use-module (gnu packages vulkan)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
@@ -3856,3 +3862,107 @@ (define-public yambar-wayland
 for short) for X11 and Wayland, that goes to great lengths to be both CPU and
 battery efficient---polling is only done when absolutely necessary.")
     (license license:expat)))
+
+(define %gamescope-version "3.14.2")
+
+(define reshade-for-gamescope
+  (origin
+    (method git-fetch)
+    (uri (git-reference
+          (url "https://github.com/Joshua-Ashton/reshade")
+          (commit "9fdbea6892f9959fdc18095d035976c574b268b7")))
+    (file-name (git-file-name "reshade-for-gamescope" %gamescope-version))
+    (sha256
+     (base32 "1par0ay973l0bvlz0fsg3v1fxgrnn888yc0hx3ikkyc0jbbf59bg"))))
+
+(define-public gamescope
+  (package
+    (name "gamescope")
+    (version %gamescope-version)
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ValveSoftware/gamescope")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "0x7gh1rr2ismqfkaa4wm7025acjpgmims41iwzdcps5pg8nxmmhh"))))
+    (build-system meson-build-system)
+    (arguments
+     (list #:configure-flags #~(list "-Dpipewire=enabled"
+                                     "-Denable_openvr_support=false"
+                                     "-Dforce_fallback_for=[]"
+                                     (string-append "-Dc_args=-DHWDATA_PNP_IDS=\""
+                                                    #$(this-package-native-input "hwdata")
+                                                    "/share/hwdata/pnp.ids\""))
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'patch-deps
+                          (lambda _
+                            (substitute* "src/reshade_effect_manager.cpp"
+                              (("/usr") #$output))
+                            (substitute* "src/meson.build"
+                              ;; patch stb
+                              (("dependency\\('stb'\\)")
+                               (format #f "declare_dependency(include_directories: ['~a'])"
+                                       (string-join
+                                        '#$(map (lambda (label) (this-package-native-input label))
+                                                (list "stb-image"
+                                                      "stb-image-resize"
+                                                      "stb-image-write"))
+                                        "','")))
+                              ;; patch libdisplay-info
+                              (("< 0.2.0")
+                               (string-append "<= " #$(package-version (this-package-input "libdisplay-info"))))
+                              (("reshade/") (string-append #$reshade-for-gamescope "/"))
+                              (("../thirdparty/SPIRV-Headers") #$(this-package-native-input "spirv-headers"))))))))
+    (inputs
+     (list glm
+           libavif-1.0
+           libcap
+           libdisplay-info
+           libdrm
+           libinput
+           libliftoff
+           libx11
+           libxcomposite
+           libxcursor
+           libxdamage
+           libxext
+           libxkbcommon
+           libxmu
+           libxrender
+           libxres
+           libxt
+           libxtst
+           pipewire
+           sdl2
+           vulkan-loader
+           wayland
+           wlroots))
+    (native-inputs
+     (list benchmark
+           ;; Lazily resolve the gcc-toolchain-12 to avoid a circular dependency.
+           (module-ref (resolve-interface '(gnu packages commencement))
+                       'gcc-toolchain-12)
+           glslang
+           `(,hwdata "pnp")
+           pkg-config
+           stb-image
+           stb-image-resize
+           stb-image-write
+           spirv-headers
+           vkroots
+           vulkan-headers
+           wayland-protocols))
+    (home-page "https://github.com/ValveSoftware/gamescope") 
+    (synopsis "Micro-compositor for running games")
+    (description
+     "gamescope is a micro-compositor for running games.  Its goal is to
+provide an isolated compositor that is tailored towards gaming and supports
+many gaming-centric features such as:
+@itemize
+@item Spoofing resolutions.
+@item Upscaling.
+@item Limiting framerates.
+@end itemize")
+    (license license:bsd-2)))
-- 
2.41.0





^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-04-21  8:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-21  8:19 [bug#70493] [PATCH 0/4] gnu: Add gamescope dan
2024-04-21  8:29 ` [bug#70493] [PATCH 1/4] gnu: Add libliftoff dan
2024-04-21  8:29 ` [bug#70493] [PATCH 2/4] gnu: Add vkroots dan
2024-04-21  8:29 ` [bug#70493] [PATCH 3/4] gnu: Add libavif-1.0 dan
2024-04-21  8:29 ` [bug#70493] [PATCH 4/4] gnu: Add gamescope dan

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).