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>