Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Nov 2020 03:52:30 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r555448 - in head/x11-wm: . gamescope gamescope/files
Message-ID:  <202011160352.0AG3qUQT098277@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Mon Nov 16 03:52:30 2020
New Revision: 555448
URL: https://svnweb.freebsd.org/changeset/ports/555448

Log:
  x11-wm/gamescope: add new port
  
  In an embedded session usecase, gamescope does the same thing as
  steamcompmgr, but with less extra copies and latency:
  
  - It's getting game frames through Wayland by way of Xwayland, so
    there's no copy within X itself before it gets the frame.
  - It can use DRM/KMS to directly flip game frames to the screen, even
    when stretching or when notifications are up, removing another copy.
  - When it does need to composite with the GPU, it does so with async
    Vulkan compute, meaning you get to see your frame quick even if the
    game already has the GPU busy with the next frame.
  
  It also runs on top of a regular desktop, the 'nested' usecase
  steamcompmgr didn't support.
  
  - Because the game is running in its own personal Xwayland sandbox
    desktop, it can't interfere with your desktop and your desktop can't
    interfere with it.
  - You can spoof a virtual screen with a desired resolution and refresh
    rate as the only thing the game sees, and control/resize the output
    as needed. This can be useful in exotic display configurations like
    ultrawide or multi-monitor setups that involve rotation.
  
  https://github.com/Plagman/gamescope

Added:
  head/x11-wm/gamescope/
  head/x11-wm/gamescope/Makefile   (contents, props changed)
  head/x11-wm/gamescope/distinfo   (contents, props changed)
  head/x11-wm/gamescope/files/
  head/x11-wm/gamescope/files/patch-private-libs   (contents, props changed)
  head/x11-wm/gamescope/pkg-descr   (contents, props changed)
  head/x11-wm/gamescope/pkg-message   (contents, props changed)
Modified:
  head/x11-wm/Makefile   (contents, props changed)

Modified: head/x11-wm/Makefile
==============================================================================
--- head/x11-wm/Makefile	Mon Nov 16 03:30:33 2020	(r555447)
+++ head/x11-wm/Makefile	Mon Nov 16 03:52:30 2020	(r555448)
@@ -40,6 +40,7 @@
     SUBDIR += fluxter
     SUBDIR += flwm
     SUBDIR += fvwm2
+    SUBDIR += gamescope
     SUBDIR += gcompmgr
     SUBDIR += herbstluftwm
     SUBDIR += hikari

Added: head/x11-wm/gamescope/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11-wm/gamescope/Makefile	Mon Nov 16 03:52:30 2020	(r555448)
@@ -0,0 +1,41 @@
+# $FreeBSD$
+
+PORTNAME=	gamescope
+DISTVERSION=	3.7.1
+CATEGORIES=	x11-wm
+
+PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
+PATCHFILES+=	56a1378c3643.patch:-p1 # https://github.com/Plagman/gamescope/pull/119
+PATCHFILES+=	620f8f5bc530.patch:-p1 # https://github.com/Plagman/gamescope/pull/119
+PATCHFILES+=	892d79b0f37e.patch:-p1 # https://github.com/Plagman/gamescope/pull/119
+PATCHFILES+=	ae60c865d9d8.patch:-p1 # https://github.com/Plagman/gamescope/pull/119
+PATCHFILES+=	d59836199ebe.patch:-p1 # https://github.com/Plagman/gamescope/issues/120
+
+MAINTAINER=	jbeich@FreeBSD.org
+COMMENT=	Micro-compositor from SteamOS
+
+LICENSE=	BSD2CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	glslangValidator:devel/glslang \
+		evdev-proto>0:devel/evdev-proto \
+		vulkan-headers>0:devel/vulkan-headers \
+		wayland-protocols>=1.17:graphics/wayland-protocols \
+		wlroots>=0.11.0:x11-toolkits/wlroots
+LIB_DEPENDS=	libepoll-shim.so:devel/libepoll-shim \
+		libdrm.so:graphics/libdrm \
+		libvulkan.so:graphics/vulkan-loader \
+		libwayland-server.so:graphics/wayland \
+		libwlroots.so:x11-toolkits/wlroots \
+		libxkbcommon.so:x11/libxkbcommon
+
+USES=		compiler:c++11-lib meson pkgconfig sdl xorg
+USE_GITHUB=	yes
+USE_SDL=	sdl2
+USE_XORG=	x11 xcomposite xdamage xext xfixes xrender xtst xxf86vm
+GH_ACCOUNT=	Plagman
+GH_TUPLE=	emersion:libliftoff:24abeb9:libliftoff/subprojects/libliftoff
+CPPFLAGS+=	-D_WITH_DPRINTF # XXX Remove after FreeBSD 11 EOL
+PLIST_FILES=	bin/${PORTNAME}
+
+.include <bsd.port.mk>

Added: head/x11-wm/gamescope/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11-wm/gamescope/distinfo	Mon Nov 16 03:52:30 2020	(r555448)
@@ -0,0 +1,15 @@
+TIMESTAMP = 1605248074
+SHA256 (Plagman-gamescope-3.7.1_GH0.tar.gz) = 044f7969b796e678415ca7762fb21c04ecb331660b442b4fdcc389410ef36c6f
+SIZE (Plagman-gamescope-3.7.1_GH0.tar.gz) = 61673
+SHA256 (emersion-libliftoff-24abeb9_GH0.tar.gz) = cb33c0c9a5d50c9c825f01ff045ff4ad316e7e73850331a12c6d444b3e949323
+SIZE (emersion-libliftoff-24abeb9_GH0.tar.gz) = 25849
+SHA256 (56a1378c3643.patch) = 92c2261d2dfa2b46f1f837afa1e57a6aa24df637d51ef67b4ce8df0de904d0a2
+SIZE (56a1378c3643.patch) = 2777
+SHA256 (620f8f5bc530.patch) = f7d35a7c520fe00939ccb7b14648980ebfb32ee94c3991a0d9f6c71d12861611
+SIZE (620f8f5bc530.patch) = 2709
+SHA256 (892d79b0f37e.patch) = 7382fde23d3fe51ee84debdba478bfff48c8f889e78b71d088b3900239ced176
+SIZE (892d79b0f37e.patch) = 1596
+SHA256 (ae60c865d9d8.patch) = 41593e80d11a80c17a173cd03330738fc9deb82626c6788e15ab1895bf68111d
+SIZE (ae60c865d9d8.patch) = 1111
+SHA256 (d59836199ebe.patch) = 40b519ef847b979ba088325cdd7170bed91936b79d845c65d2126b2b25166a1e
+SIZE (d59836199ebe.patch) = 2586

Added: head/x11-wm/gamescope/files/patch-private-libs
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11-wm/gamescope/files/patch-private-libs	Mon Nov 16 03:52:30 2020	(r555448)
@@ -0,0 +1,27 @@
+libliftoff is untagged and has no other consumers. Keep it private to
+gamescope package for now.
+
+--- subprojects/libliftoff/meson.build.orig	2020-05-26 19:30:31 UTC
++++ subprojects/libliftoff/meson.build
+@@ -38,7 +38,7 @@ liftoff_lib = library(
+ 	include_directories: liftoff_inc,
+ 	version: meson.project_version(),
+ 	dependencies: liftoff_deps,
+-	install: true,
++	install: not meson.is_subproject(),
+ )
+ 
+ liftoff = declare_dependency(
+@@ -47,6 +47,7 @@ liftoff = declare_dependency(
+ 	dependencies: liftoff_deps,
+ )
+ 
++if not meson.is_subproject()
+ install_headers('include/libliftoff.h')
+ 
+ pkgconfig = import('pkgconfig')
+@@ -60,3 +61,4 @@ pkgconfig.generate(
+ 
+ subdir('example')
+ subdir('test')
++endif

Added: head/x11-wm/gamescope/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11-wm/gamescope/pkg-descr	Mon Nov 16 03:52:30 2020	(r555448)
@@ -0,0 +1,23 @@
+In an embedded session usecase, gamescope does the same thing as
+steamcompmgr, but with less extra copies and latency:
+
+- It's getting game frames through Wayland by way of Xwayland, so
+  there's no copy within X itself before it gets the frame.
+- It can use DRM/KMS to directly flip game frames to the screen, even
+  when stretching or when notifications are up, removing another copy.
+- When it does need to composite with the GPU, it does so with async
+  Vulkan compute, meaning you get to see your frame quick even if the
+  game already has the GPU busy with the next frame.
+
+It also runs on top of a regular desktop, the 'nested' usecase
+steamcompmgr didn't support.
+
+- Because the game is running in its own personal Xwayland sandbox
+  desktop, it can't interfere with your desktop and your desktop can't
+  interfere with it.
+- You can spoof a virtual screen with a desired resolution and refresh
+  rate as the only thing the game sees, and control/resize the output
+  as needed. This can be useful in exotic display configurations like
+  ultrawide or multi-monitor setups that involve rotation.
+
+WWW: https://github.com/Plagman/gamescope

Added: head/x11-wm/gamescope/pkg-message
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11-wm/gamescope/pkg-message	Mon Nov 16 03:52:30 2020	(r555448)
@@ -0,0 +1,9 @@
+[
+{ type: install
+  message: <<EOM
+Known issues:
+- Intel GPUs are not supported yet, see
+  https://github.com/Plagman/gamescope/issues/49
+EOM
+}
+]



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202011160352.0AG3qUQT098277>