diff --git a/anda/apps/discord-canary-openasar/discord-canary-openasar.spec b/anda/apps/discord-canary-openasar/discord-canary-openasar.spec index df9b817f5f..0744454dd8 100644 --- a/anda/apps/discord-canary-openasar/discord-canary-openasar.spec +++ b/anda/apps/discord-canary-openasar/discord-canary-openasar.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-canary-openasar -Version: 0.0.471 +Version: 0.0.477 Release: 1%?dist Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms diff --git a/anda/apps/discord-canary/discord-canary.spec b/anda/apps/discord-canary/discord-canary.spec index a92344d7f8..0bb6b91e5a 100644 --- a/anda/apps/discord-canary/discord-canary.spec +++ b/anda/apps/discord-canary/discord-canary.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-canary -Version: 0.0.471 +Version: 0.0.477 Release: 1%?dist Summary: Free Voice and Text Chat for Gamers URL: discord.com diff --git a/anda/apps/discord-openasar/discord-openasar.spec b/anda/apps/discord-openasar/discord-openasar.spec index 0d449c92b7..9cb6af6db8 100644 --- a/anda/apps/discord-openasar/discord-openasar.spec +++ b/anda/apps/discord-openasar/discord-openasar.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord-openasar -Version: 0.0.64 +Version: 0.0.66 Release: 1%?dist Summary: A snappier Discord rewrite with features like further customization and theming License: MIT AND https://discord.com/terms diff --git a/anda/apps/discord/discord.spec b/anda/apps/discord/discord.spec index 165d374125..77aa410926 100644 --- a/anda/apps/discord/discord.spec +++ b/anda/apps/discord/discord.spec @@ -6,7 +6,7 @@ %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so Name: discord -Version: 0.0.64 +Version: 0.0.66 Release: 1%?dist Summary: Free Voice and Text Chat for Gamers URL: https://discord.com diff --git a/anda/apps/envision/envision.spec b/anda/apps/envision/envision.spec index 65039b210b..4a36b04c9b 100644 --- a/anda/apps/envision/envision.spec +++ b/anda/apps/envision/envision.spec @@ -1,5 +1,5 @@ -%global commit 56f2e0b0d6378fcf31d43d349c1e5ff57b6eb985 -%global commit_date 20240729 +%global commit 17554fa2dcd15adaf9f0554df83e956e969ee747 +%global commit_date 20240829 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: envision @@ -9,7 +9,7 @@ Summary: UI for building, configuring and running Monado, the open source License: AGPL-3.0-or-later URL: https://gitlab.com/gabmus/envision/ Source0: %url/-/archive/%commit/envision-%commit.tar.gz -BuildRequires: meson ninja-build cargo +BuildRequires: meson ninja-build cargo BuildRequires: pkgconfig(glib-2.0) >= 2.66 BuildRequires: pkgconfig(gio-2.0) >= 2.66 BuildRequires: pkgconfig(gtk4) >= 4.10.0 diff --git a/anda/apps/mpv/mpv-nightly.spec b/anda/apps/mpv/mpv-nightly.spec index 0ff8e9880b..dcb51e9c86 100644 --- a/anda/apps/mpv/mpv-nightly.spec +++ b/anda/apps/mpv/mpv-nightly.spec @@ -1,6 +1,6 @@ -%global commit 3c7b6db205c027d3c4f12285719367792e471b57 +%global commit e8d14cd3142b117eabf23df026ee946cfded6424 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240725 +%global commit_date 20240829 %global ver 0.38.0 Name: mpv-nightly diff --git a/anda/apps/voicevox/voicevox.spec b/anda/apps/voicevox/voicevox.spec index 580222b0d3..1f50e206bf 100644 --- a/anda/apps/voicevox/voicevox.spec +++ b/anda/apps/voicevox/voicevox.spec @@ -4,6 +4,10 @@ # do not strip binaries %define __strip /bin/true +# do not perform compression in cpio +%define _source_payload w0.ufdio +%define _binary_payload w0.gzdio + # Exclude private libraries %global __requires_exclude libffmpeg.so %global __provides_exclude_from %{_datadir}/%{name}/.*\\.so diff --git a/anda/devs/flow/flow-control-nightly.spec b/anda/devs/flow/flow-control-nightly.spec index 522da2e053..668cd3cc0f 100644 --- a/anda/devs/flow/flow-control-nightly.spec +++ b/anda/devs/flow/flow-control-nightly.spec @@ -1,6 +1,6 @@ -%global commit fb1d91585f8b7e72bc5776085a36205652a0adec +%global commit 1caf2aa0f6f98d24acf6a6e00ba7ecf0ad1eb3aa %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240724 +%global commit_date 20240829 Name: flow-control-nightly Version: %commit_date.%shortcommit diff --git a/anda/devs/zed/nightly/zed-nightly.spec b/anda/devs/zed/nightly/zed-nightly.spec index 9a9beef5d0..d87d1cdbda 100644 --- a/anda/devs/zed/nightly/zed-nightly.spec +++ b/anda/devs/zed/nightly/zed-nightly.spec @@ -1,7 +1,7 @@ -%global commit 479ffbbd51516c7741e2948e048ab13e5b010064 +%global commit 1eec601afb8cb0b2eafe111de1a505049202e19f %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240726 -%global ver 0.147.0 +%global commit_date 20240829 +%global ver 0.152.0 %bcond_with check diff --git a/anda/devs/zed/preview/update.rhai b/anda/devs/zed/preview/update.rhai index a17dfec8da..26d0a43273 100644 --- a/anda/devs/zed/preview/update.rhai +++ b/anda/devs/zed/preview/update.rhai @@ -1,10 +1,6 @@ let releases = "https://api.github.com/repos/zed-industries/zed/releases".get().json_arr(); for release in releases { - if !release.prerelease { - continue; - } let tag = release.tag_name; - tag.pop(4); // remove the "-pre" suffix tag.crop(1); // remove "v" rpm.global("ver", tag); break; diff --git a/anda/devs/zed/preview/zed-preview.spec b/anda/devs/zed/preview/zed-preview.spec index ae32f350e2..a4d3fefc7d 100644 --- a/anda/devs/zed/preview/zed-preview.spec +++ b/anda/devs/zed/preview/zed-preview.spec @@ -1,6 +1,6 @@ %bcond_with check -%global ver 0.146.2 +%global ver 0.151.0-pre # Exclude input files from mangling %global __brp_mangle_shebangs_exclude_from ^/usr/src/.*$ # Use Mold as the linker @@ -10,13 +10,13 @@ %global app_id dev.zed.Zed-Preview Name: zed-preview -Version: %ver +Version: %(echo %ver | sed 's/-/~/') Release: pre1%?dist Summary: Zed is a high-performance, multiplayer code editor License: MIT URL: https://zed.dev/ -Source0: https://github.com/zed-industries/zed/archive/refs/tags/v%{ver}-pre.tar.gz +Source0: https://github.com/zed-industries/zed/archive/refs/tags/v%{ver}.tar.gz Conflicts: zed Provides: zed @@ -44,7 +44,7 @@ BuildRequires: vulkan-loader Code at the speed of thought - Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter. %prep -%autosetup -n %{crate}-%{ver}-pre -p1 +%autosetup -n %{crate}-%{ver} -p1 %cargo_prep_online export DO_STARTUP_NOTIFY="true" diff --git a/anda/devs/zed/stable/zed.spec b/anda/devs/zed/stable/zed.spec index 8524605a9e..6315ab68d4 100644 --- a/anda/devs/zed/stable/zed.spec +++ b/anda/devs/zed/stable/zed.spec @@ -9,7 +9,7 @@ %global app_id dev.zed.Zed Name: zed -Version: 0.145.1 +Version: 0.150.4 Release: 1%?dist Summary: Zed is a high-performance, multiplayer code editor diff --git a/anda/games/gamescope-legacy/0001-cstdint.patch b/anda/games/gamescope-legacy/0001-cstdint.patch new file mode 100644 index 0000000000..36a9ad59f2 --- /dev/null +++ b/anda/games/gamescope-legacy/0001-cstdint.patch @@ -0,0 +1,36 @@ +From 5529e8ac8f3232ec6233e33286834548e1d8018d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= +Date: Sun, 8 Oct 2023 22:10:33 +0200 +Subject: [PATCH] + +--- + src/reshade/source/effect_parser_stmt.cpp | 1 + + src/reshade/source/effect_token.hpp | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/src/reshade/source/effect_parser_stmt.cpp b/src/reshade/source/effect_parser_stmt.cpp +index 7829729..f126be2 100644 +--- a/src/reshade/source/effect_parser_stmt.cpp ++++ b/src/reshade/source/effect_parser_stmt.cpp +@@ -9,6 +9,7 @@ + #include // std::toupper + #include + #include ++#include + #include + + struct on_scope_exit +diff --git a/src/reshade/source/effect_token.hpp b/src/reshade/source/effect_token.hpp +index 072d439..e4bb633 100644 +--- a/src/reshade/source/effect_token.hpp ++++ b/src/reshade/source/effect_token.hpp +@@ -5,6 +5,7 @@ + + #pragma once + ++#include + #include + #include + +-- +2.41.0 diff --git a/anda/games/gamescope-legacy/anda.hcl b/anda/games/gamescope-legacy/anda.hcl new file mode 100644 index 0000000000..272907ad53 --- /dev/null +++ b/anda/games/gamescope-legacy/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "gamescope-legacy.spec" + } + labels { + multilib = 1 + } +} diff --git a/anda/games/gamescope-legacy/gamescope-legacy.spec b/anda/games/gamescope-legacy/gamescope-legacy.spec new file mode 100644 index 0000000000..75ead5d764 --- /dev/null +++ b/anda/games/gamescope-legacy/gamescope-legacy.spec @@ -0,0 +1,129 @@ +%global libliftoff_minver 0.4.1 +%global reshade_commit 4245743a8c41abbe3dc73980c1810fe449359bf1 +%global reshade_shortcommit %(c=%{reshade_commit}; echo ${c:0:7}) +%global _default_patch_fuzz 2 + + +# ============================================================================= +# IMPORTANT: This package should *not* have an update script, at least not one that +# tracks upstream Gamescope from Valve. This package is intended to be a legacy +# build for Polaris and older GPUs from AMD, and should not be updated to the +# latest version. +# +# This package however, should be obsoleted once https://github.com/ValveSoftware/gamescope/issues/1218 +# is finally resolved, and Gamescope's Wayland backend has a fallback for GPUs without Vulkan DRM modifiers. +# ============================================================================= + + +Name: gamescope-legacy +Version: 3.14.2 +Release: 1%{?dist} +Summary: Legacy builds of gamescope, a micro-compositor for video games on Wayland +Packager: Cappy Ishihara +License: BSD +URL: https://github.com/ValveSoftware/gamescope +Source0: %{url}/archive/%{version}/gamescope-%{version}.tar.gz +# Create stb.pc to satisfy dependency('stb') +Source1: stb.pc +Source2: https://github.com/Joshua-Ashton/reshade/archive/%{reshade_commit}/reshade-%{reshade_shortcommit}.tar.gz + +Patch0: 0001-cstdint.patch + +# https://hhd.dev/ +Patch1: v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch + +# ChimeraOS +Patch2: legacy-720p.patch + +BuildRequires: meson >= 0.54.0 +BuildRequires: ninja-build +BuildRequires: cmake +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: glm-devel +BuildRequires: google-benchmark-devel +BuildRequires: libXmu-devel +BuildRequires: libXcursor-devel +BuildRequires: pkgconfig(libdisplay-info) +BuildRequires: pkgconfig(x11) +BuildRequires: pkgconfig(xdamage) +BuildRequires: pkgconfig(xcomposite) +BuildRequires: pkgconfig(xrender) +BuildRequires: pkgconfig(xext) +BuildRequires: pkgconfig(xfixes) +BuildRequires: pkgconfig(xxf86vm) +BuildRequires: pkgconfig(xtst) +BuildRequires: pkgconfig(xres) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(vulkan) +BuildRequires: pkgconfig(wayland-scanner) +BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(wayland-protocols) >= 1.17 +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: pkgconfig(sdl2) +BuildRequires: pkgconfig(libpipewire-0.3) +BuildRequires: pkgconfig(libavif) +BuildRequires: (pkgconfig(wlroots) >= 0.17.0 with pkgconfig(wlroots) < 0.18) +BuildRequires: (pkgconfig(libliftoff) >= 0.4.1 with pkgconfig(libliftoff) < 0.5) +BuildRequires: pkgconfig(libcap) +BuildRequires: pkgconfig(hwdata) +BuildRequires: spirv-headers-devel +# Enforce the the minimum EVR to contain fixes for all of: +# CVE-2021-28021 CVE-2021-42715 CVE-2021-42716 CVE-2022-28041 CVE-2023-43898 +# CVE-2023-45661 CVE-2023-45662 CVE-2023-45663 CVE-2023-45664 CVE-2023-45666 +# CVE-2023-45667 +BuildRequires: stb_image-devel >= 2.28^20231011gitbeebb24-12 +# Header-only library: -static is for tracking per guidelines +BuildRequires: stb_image-static +BuildRequires: stb_image_resize-devel +BuildRequires: stb_image_resize-static +BuildRequires: stb_image_write-devel +BuildRequires: stb_image_write-static +BuildRequires: vkroots-devel +BuildRequires: /usr/bin/glslangValidator + +# libliftoff hasn't bumped soname, but API/ABI has changed for 0.2.0 release +Requires: libliftoff%{?_isa} >= %{libliftoff_minver} +Requires: xorg-x11-server-Xwayland + +Requires: terra-gamescope-libs +Requires: terra-gamescope-libs(x86-32) + +Recommends: mesa-dri-drivers +Recommends: mesa-vulkan-drivers + +%description +%{name} is the micro-compositor optimized for running video games on Wayland. This is a legacy build primarily intended for use by Polaris GPUs. + +%prep +%autosetup -p1 -a2 -N -n gamescope-%{version} +# Install stub pkgconfig file +mkdir -p pkgconfig +cp %{SOURCE1} pkgconfig/stb.pc + +# Replace spirv-headers include with the system directory +sed -i 's^../thirdparty/SPIRV-Headers/include/spirv/^/usr/include/spirv/^' src/meson.build + +# Push in reshade from sources instead of submodule +rm -rf src/reshade && mv reshade-%{reshade_commit} src/reshade + +%autopatch -p1 + +%build +export PKG_CONFIG_PATH=pkgconfig +%meson -Dpipewire=enabled -Denable_gamescope_wsi_layer=false -Denable_openvr_support=false -Dforce_fallback_for=[] +%meson_build + +%install +%meson_install +# Rename to not conflict with the base package +mv %{buildroot}%{_bindir}/gamescope %{buildroot}%{_bindir}/gamescope-legacy + +%files +%license LICENSE +%doc README.md +%{_bindir}/gamescope-legacy + +%changelog +%autochangelog + diff --git a/anda/games/gamescope-legacy/legacy-720p.patch b/anda/games/gamescope-legacy/legacy-720p.patch new file mode 100644 index 0000000000..75e367afbb --- /dev/null +++ b/anda/games/gamescope-legacy/legacy-720p.patch @@ -0,0 +1,33 @@ +From 072ebb67cd4a88fd0f5db22a92a46f8316f28a46 Mon Sep 17 00:00:00 2001 +From: Matthew Anderson +Date: Tue, 25 Jul 2023 18:05:05 -0500 +Subject: [PATCH] Set default to native resolution of display if Steam tries to + force 720p/800p + +You can select 720p/800p still in game or via Steam's resolution setting +Steam > Settings > Display > Resolution + +This effectively reverts the changes Valve made a year ago forcing us to +720p. +--- + src/steamcompmgr.cpp | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp +index 52dd8d1cf..5b0fa6e52 100644 +--- a/src/steamcompmgr.cpp ++++ b/src/steamcompmgr.cpp +@@ -5202,6 +5202,13 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) + size_t server_idx = size_t{ xwayland_mode_ctl[ 0 ] }; + int width = xwayland_mode_ctl[ 1 ]; + int height = xwayland_mode_ctl[ 2 ]; ++ ++ if ( g_nOutputWidth != 1280 && width == 1280 ) ++ { ++ width = g_nOutputWidth; ++ height = g_nOutputHeight; ++ } ++ + bool allowSuperRes = !!xwayland_mode_ctl[ 3 ]; + + if ( !allowSuperRes ) \ No newline at end of file diff --git a/anda/games/gamescope-legacy/stb.pc b/anda/games/gamescope-legacy/stb.pc new file mode 100644 index 0000000000..02c304a9fa --- /dev/null +++ b/anda/games/gamescope-legacy/stb.pc @@ -0,0 +1,7 @@ +prefix=/usr +includedir=${prefix}/include/stb + +Name: stb +Description: Single-file public domain libraries for C/C++ +Version: 0.1.0 +Cflags: -I${includedir} diff --git a/anda/games/gamescope-legacy/v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch b/anda/games/gamescope-legacy/v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch new file mode 100644 index 0000000000..ad97a5fcc0 --- /dev/null +++ b/anda/games/gamescope-legacy/v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch @@ -0,0 +1,39 @@ +From 35e001dc59a44227d670c667a85a6ef5472eee58 Mon Sep 17 00:00:00 2001 +From: antheas +Date: Sat, 20 Jul 2024 01:23:19 +0300 +Subject: [PATCH v2] always send ctrl+1/2 to steam's wayland session + +--- + src/wlserver.cpp | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/src/wlserver.cpp b/src/wlserver.cpp +index 1852be9..7de737d 100644 +--- a/src/wlserver.cpp ++++ b/src/wlserver.cpp +@@ -369,7 +369,12 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data) + keysym == XKB_KEY_XF86AudioLowerVolume || + keysym == XKB_KEY_XF86AudioRaiseVolume || + keysym == XKB_KEY_XF86PowerOff; +- if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && forbidden_key ) ++ ++ // Check for steam keys (ctrl + 1/2) ++ bool is_steamshortcut = (keyboard->wlr->modifiers.depressed & WLR_MODIFIER_CTRL) && (keysym == XKB_KEY_1 || ++ keysym == XKB_KEY_2); ++ ++ if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && (forbidden_key || is_steamshortcut) ) + { + // Always send volume+/- to root server only, to avoid it reaching the game. + struct wlr_surface *old_kb_surf = wlserver.kb_focus_surface; +@@ -378,6 +383,9 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data) + { + wlserver_keyboardfocus( new_kb_surf, false ); + wlr_seat_set_keyboard( wlserver.wlr.seat, keyboard->wlr ); ++ // Send modifiers to steam for it to work ++ if (is_steamshortcut) ++ wlr_seat_keyboard_notify_modifiers(wlserver.wlr.seat, &keyboard->wlr->modifiers); + wlr_seat_keyboard_notify_key( wlserver.wlr.seat, event->time_msec, event->keycode, event->state ); + wlserver_keyboardfocus( old_kb_surf, false ); + return; +-- +2.45.2 diff --git a/anda/games/gamescope-session/gamescope-session.spec b/anda/games/gamescope-session/gamescope-session.spec index bcafc8ea7b..a2c5c89983 100644 --- a/anda/games/gamescope-session/gamescope-session.spec +++ b/anda/games/gamescope-session/gamescope-session.spec @@ -1,8 +1,8 @@ %define debug_package %nil -%global commit c9a2b14de1831edf45207610289a439a50c55485 +%global commit aa57bda3f17f660064c1e63f9497fa0a46df1e86 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240724 +%global commit_date 20240821 Name: gamescope-session Version: %commit_date.%shortcommit diff --git a/anda/games/gamescope/0001-cstdint.patch b/anda/games/gamescope/0001-cstdint.patch new file mode 100644 index 0000000000..36a9ad59f2 --- /dev/null +++ b/anda/games/gamescope/0001-cstdint.patch @@ -0,0 +1,36 @@ +From 5529e8ac8f3232ec6233e33286834548e1d8018d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= +Date: Sun, 8 Oct 2023 22:10:33 +0200 +Subject: [PATCH] + +--- + src/reshade/source/effect_parser_stmt.cpp | 1 + + src/reshade/source/effect_token.hpp | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/src/reshade/source/effect_parser_stmt.cpp b/src/reshade/source/effect_parser_stmt.cpp +index 7829729..f126be2 100644 +--- a/src/reshade/source/effect_parser_stmt.cpp ++++ b/src/reshade/source/effect_parser_stmt.cpp +@@ -9,6 +9,7 @@ + #include // std::toupper + #include + #include ++#include + #include + + struct on_scope_exit +diff --git a/src/reshade/source/effect_token.hpp b/src/reshade/source/effect_token.hpp +index 072d439..e4bb633 100644 +--- a/src/reshade/source/effect_token.hpp ++++ b/src/reshade/source/effect_token.hpp +@@ -5,6 +5,7 @@ + + #pragma once + ++#include + #include + #include + +-- +2.41.0 diff --git a/anda/games/gamescope/0001-limits.patch b/anda/games/gamescope/0001-limits.patch new file mode 100644 index 0000000000..0b78aafea4 --- /dev/null +++ b/anda/games/gamescope/0001-limits.patch @@ -0,0 +1,21 @@ +From 88ce1e5de62886aa14c74421cde6130e16e70d7d Mon Sep 17 00:00:00 2001 +From: psykose +Date: Sat, 6 Jul 2024 20:52:50 +0200 +Subject: [PATCH] utils: include limits.h for PATH_MAX + +--- + src/Utils/Process.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/Utils/Process.cpp b/src/Utils/Process.cpp +index e71786f75..3e748e0d3 100644 +--- a/src/Utils/Process.cpp ++++ b/src/Utils/Process.cpp +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #include + #include + #include \ No newline at end of file diff --git a/anda/games/gamescope/1483.patch b/anda/games/gamescope/1483.patch new file mode 100644 index 0000000000..3bde8361d6 --- /dev/null +++ b/anda/games/gamescope/1483.patch @@ -0,0 +1,34 @@ +From ca58cb2453e6d9ef44d799e394ee9950b7a35b30 Mon Sep 17 00:00:00 2001 +From: Cappy Ishihara +Date: Wed, 21 Aug 2024 03:56:53 +0700 +Subject: [PATCH] Check if current GPU supports Vulkan DRM modifiers when + `--backend=auto` is used. + +This works around #1218 by making use of the new backend option added in #1321, +but adds a check to automatically fall back to the SDL backend if the current +GPU does not support Vulkan DRM modifiers. +--- + src/main.cpp | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +diff --git a/src/main.cpp b/src/main.cpp +index ca4001249..bc6b16904 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -817,9 +817,13 @@ int main(int argc, char **argv) + if ( eCurrentBackend == gamescope::GamescopeBackend::Auto ) + { + if ( g_pOriginalWaylandDisplay != NULL ) +- eCurrentBackend = gamescope::GamescopeBackend::Wayland; +- else if ( g_pOriginalDisplay != NULL ) +- eCurrentBackend = gamescope::GamescopeBackend::SDL; ++ // Additional check if the current GPU supports Vulkan DRM modifiers ++ // Fallback to SDL if not supported (e.g Older AMD GPUs like Polaris 10/20) ++ if ( vulkan_supports_modifiers() ) ++ eCurrentBackend = gamescope::GamescopeBackend::Wayland; ++ else ++ eCurrentBackend = gamescope::GamescopeBackend::SDL; ++ + else + eCurrentBackend = gamescope::GamescopeBackend::DRM; + } diff --git a/anda/games/gamescope/chimeraos.patch b/anda/games/gamescope/chimeraos.patch index 80cc642b3d..f8bd2f877c 100644 --- a/anda/games/gamescope/chimeraos.patch +++ b/anda/games/gamescope/chimeraos.patch @@ -1,7 +1,7 @@ -From c06cdd847679c930ee6197514970bc21f523e853 Mon Sep 17 00:00:00 2001 +From 646446c157d55d8508c734cddfc3025834f7cf50 Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Fri, 17 May 2024 19:43:49 -0500 -Subject: [PATCH 01/22] Add touch-gestures to open up Steam menus +Subject: [PATCH 01/21] Add touch-gestures to open up Steam menus --- src/main.cpp | 5 +++++ @@ -10,7 +10,7 @@ Subject: [PATCH 01/22] Add touch-gestures to open up Steam menus 3 files changed, 34 insertions(+) diff --git a/src/main.cpp b/src/main.cpp -index cd4aeca..4b91c97 100644 +index ca40012..3a1b1ae 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -108,6 +108,8 @@ const struct option *gamescope_options = (struct option[]){ @@ -40,18 +40,18 @@ index cd4aeca..4b91c97 100644 g_nXWaylandCount = atoi( optarg ); } else if (strcmp(opt_name, "composite-debug") == 0) { diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index ee6891d..62da656 100644 +index ccbd512..26b953a 100644 --- a/src/wlserver.cpp +++ b/src/wlserver.cpp -@@ -73,6 +73,7 @@ - static LogScope wl_log("wlserver"); +@@ -81,6 +81,7 @@ using namespace std::literals; + extern gamescope::ConVar cv_drm_debug_disable_explicit_sync; //#define GAMESCOPE_SWAPCHAIN_DEBUG +gamescope::ConVar cv_touch_gestures( "enable_touch_gestures", false, "Enable/Disable the usage of touch gestures" ); struct wlserver_t wlserver = { .touch_down_ids = {} -@@ -2568,6 +2569,33 @@ void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool +@@ -2526,6 +2527,33 @@ void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool if ( bAlwaysWarpCursor ) wlserver_mousewarp( tx, ty, time, false ); @@ -86,10 +86,10 @@ index ee6891d..62da656 100644 else if ( eMode == gamescope::TouchClickModes::Disabled ) { diff --git a/src/wlserver.hpp b/src/wlserver.hpp -index db7d491..da67bf7 100644 +index 0569472..3304c18 100644 --- a/src/wlserver.hpp +++ b/src/wlserver.hpp -@@ -291,6 +291,7 @@ void wlserver_x11_surface_info_finish( struct wlserver_x11_surface_info *surf ); +@@ -272,6 +272,7 @@ void wlserver_x11_surface_info_finish( struct wlserver_x11_surface_info *surf ); void wlserver_set_xwayland_server_mode( size_t idx, int w, int h, int refresh ); extern std::atomic g_bPendingTouchMovement; @@ -98,13 +98,13 @@ index db7d491..da67bf7 100644 void wlserver_open_steam_menu( bool qam ); -- -2.45.2 +2.46.0 -From 34f22c6a52dbed8662132e4bdfd8a29dd1b7825c Mon Sep 17 00:00:00 2001 +From 97c2ed0ea6a5cd43b450e0952db20c08d82bbe60 Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Fri, 17 May 2024 20:16:20 -0500 -Subject: [PATCH 02/22] Add bypass_steam_resolution to workaround the 720p/800p +Subject: [PATCH 02/21] Add bypass_steam_resolution to workaround the 720p/800p restrictions Steam has for games --- @@ -113,7 +113,7 @@ Subject: [PATCH 02/22] Add bypass_steam_resolution to workaround the 720p/800p 2 files changed, 14 insertions(+) diff --git a/src/main.cpp b/src/main.cpp -index 4b91c97..3d1057a 100644 +index 3a1b1ae..534779d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -129,6 +129,8 @@ const struct option *gamescope_options = (struct option[]){ @@ -134,10 +134,10 @@ index 4b91c97..3d1057a 100644 " --xwayland-count create N xwayland servers\n" " --prefer-vk-device prefer Vulkan device for compositing (ex: 1002:7300)\n" diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp -index 9ee265d..bec4268 100644 +index e997c85..952a5f8 100644 --- a/src/steamcompmgr.cpp +++ b/src/steamcompmgr.cpp -@@ -349,6 +349,8 @@ bool g_bForceHDR10OutputDebug = false; +@@ -356,6 +356,8 @@ bool g_bForceHDR10OutputDebug = false; gamescope::ConVar cv_hdr_enabled{ "hdr_enabled", false, "Whether or not HDR is enabled if it is available." }; bool g_bHDRItmEnable = false; int g_nCurrentRefreshRate_CachedValue = 0; @@ -146,7 +146,7 @@ index 9ee265d..bec4268 100644 static void update_color_mgmt() -@@ -5320,6 +5322,13 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) +@@ -5387,6 +5389,13 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) size_t server_idx = size_t{ xwayland_mode_ctl[ 0 ] }; int width = xwayland_mode_ctl[ 1 ]; int height = xwayland_mode_ctl[ 2 ]; @@ -160,7 +160,7 @@ index 9ee265d..bec4268 100644 bool allowSuperRes = !!xwayland_mode_ctl[ 3 ]; if ( !allowSuperRes ) -@@ -7166,6 +7175,8 @@ steamcompmgr_main(int argc, char **argv) +@@ -7370,6 +7379,8 @@ steamcompmgr_main(int argc, char **argv) bForceWindowsFullscreen = true; } else if (strcmp(opt_name, "hdr-enabled") == 0) { cv_hdr_enabled = true; @@ -170,13 +170,13 @@ index 9ee265d..bec4268 100644 g_bForceHDRSupportDebug = true; } else if (strcmp(opt_name, "hdr-debug-force-output") == 0) { -- -2.45.2 +2.46.0 -From 4c5657cca9a37fee0eee1d86ef3c2a6e5acef09c Mon Sep 17 00:00:00 2001 +From 234e3bb0369b7ed45a8e2f3c41f3c1e900be9d34 Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Wed, 26 Jul 2023 20:46:29 -0500 -Subject: [PATCH 03/22] Add force external orientation. +Subject: [PATCH 03/21] Add force external orientation. Co-authored-by: Bouke Sybren Haarsma --- @@ -187,10 +187,10 @@ Co-authored-by: Bouke Sybren Haarsma 4 files changed, 53 insertions(+), 1 deletion(-) diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 92f01ca..4c72dc1 100644 +index 799fd39..3815b98 100644 --- a/src/Backends/DRMBackend.cpp +++ b/src/Backends/DRMBackend.cpp -@@ -536,6 +536,7 @@ bool g_bSupportsSyncObjs = false; +@@ -537,6 +537,7 @@ bool g_bSupportsSyncObjs = false; extern gamescope::GamescopeModeGeneration g_eGamescopeModeGeneration; extern GamescopePanelOrientation g_DesiredInternalOrientation; @@ -198,7 +198,7 @@ index 92f01ca..4c72dc1 100644 extern bool g_bForceDisableColorMgmt; -@@ -2023,6 +2024,10 @@ namespace gamescope +@@ -2031,6 +2032,10 @@ namespace gamescope { m_ChosenOrientation = g_DesiredInternalOrientation; } @@ -210,7 +210,7 @@ index 92f01ca..4c72dc1 100644 { if ( this->GetProperties().panel_orientation ) diff --git a/src/main.cpp b/src/main.cpp -index 3d1057a..fac3df2 100644 +index 534779d..f9be05e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -128,6 +128,7 @@ const struct option *gamescope_options = (struct option[]){ @@ -274,7 +274,7 @@ index 3d1057a..fac3df2 100644 strcmp(opt_name, "fsr-sharpness") == 0) { g_upscaleFilterSharpness = atoi( optarg ); diff --git a/src/main.hpp b/src/main.hpp -index 8cfe629..5492cae 100644 +index 2e6fb83..ebd018a 100644 --- a/src/main.hpp +++ b/src/main.hpp @@ -28,6 +28,7 @@ extern bool g_bGrabbed; @@ -286,10 +286,10 @@ index 8cfe629..5492cae 100644 enum class GamescopeUpscaleFilter : uint32_t { diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 62da656..2998aed 100644 +index 26b953a..837079a 100644 --- a/src/wlserver.cpp +++ b/src/wlserver.cpp -@@ -2530,6 +2530,29 @@ static void apply_touchscreen_orientation(double *x, double *y ) +@@ -2488,6 +2488,29 @@ static void apply_touchscreen_orientation(double *x, double *y ) break; } @@ -320,13 +320,13 @@ index 62da656..2998aed 100644 *y = ty; } -- -2.45.2 +2.46.0 -From 897032bb4b8d8d5c11d67f9844a09a604b2c4333 Mon Sep 17 00:00:00 2001 +From bc0ddd46fd9db62fbc3fe14e0b1493e35ceb2be8 Mon Sep 17 00:00:00 2001 From: Bouke Sybren Haarsma Date: Tue, 12 Mar 2024 00:07:57 +0100 -Subject: [PATCH 04/22] implement force-panel-type +Subject: [PATCH 04/21] implement force-panel-type --- src/backend.h | 3 +++ @@ -335,10 +335,10 @@ Subject: [PATCH 04/22] implement force-panel-type 3 files changed, 20 insertions(+) diff --git a/src/backend.h b/src/backend.h -index 9c2db15..046eb10 100644 +index 7d9fb46..08e8268 100644 --- a/src/backend.h +++ b/src/backend.h -@@ -17,6 +17,7 @@ struct wlr_buffer; +@@ -18,6 +18,7 @@ struct wlr_buffer; struct wlr_dmabuf_attributes; struct FrameInfo_t; @@ -346,7 +346,7 @@ index 9c2db15..046eb10 100644 namespace gamescope { -@@ -213,6 +214,8 @@ namespace gamescope +@@ -221,6 +222,8 @@ namespace gamescope // Dumb helper we should remove to support multi display someday. gamescope::GamescopeScreenType GetScreenType() { @@ -356,10 +356,10 @@ index 9c2db15..046eb10 100644 return GetCurrentConnector()->GetScreenType(); diff --git a/src/gamescope_shared.h b/src/gamescope_shared.h -index f34174e..ed30d8c 100644 +index 5ce8591..d1b7a6e 100644 --- a/src/gamescope_shared.h +++ b/src/gamescope_shared.h -@@ -22,6 +22,7 @@ namespace gamescope +@@ -25,6 +25,7 @@ namespace gamescope { GAMESCOPE_SCREEN_TYPE_INTERNAL, GAMESCOPE_SCREEN_TYPE_EXTERNAL, @@ -368,7 +368,7 @@ index f34174e..ed30d8c 100644 GAMESCOPE_SCREEN_TYPE_COUNT }; diff --git a/src/main.cpp b/src/main.cpp -index fac3df2..8bea38c 100644 +index f9be05e..dc3e9c8 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -129,6 +129,7 @@ const struct option *gamescope_options = (struct option[]){ @@ -416,13 +416,13 @@ index fac3df2..8bea38c 100644 strcmp(opt_name, "fsr-sharpness") == 0) { g_upscaleFilterSharpness = atoi( optarg ); -- -2.45.2 +2.46.0 -From 2178f85676ba25434e8c39adc3848e3f7355acec Mon Sep 17 00:00:00 2001 +From 2a0c92febded984bc0d610eaedc9e8cc4d4ce51a Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Fri, 17 May 2024 21:11:34 -0500 -Subject: [PATCH 05/22] wlserver: Fix an issue that would cause gamescope to +Subject: [PATCH 05/21] wlserver: Fix an issue that would cause gamescope to crash when the touchscreen was used --- @@ -430,10 +430,10 @@ Subject: [PATCH 05/22] wlserver: Fix an issue that would cause gamescope to 1 file changed, 23 deletions(-) diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 2998aed..62da656 100644 +index 837079a..26b953a 100644 --- a/src/wlserver.cpp +++ b/src/wlserver.cpp -@@ -2530,29 +2530,6 @@ static void apply_touchscreen_orientation(double *x, double *y ) +@@ -2488,29 +2488,6 @@ static void apply_touchscreen_orientation(double *x, double *y ) break; } @@ -464,13 +464,13 @@ index 2998aed..62da656 100644 *y = ty; } -- -2.45.2 +2.46.0 -From 261124a5a85ad80b0d7b15926f230bacbca21b22 Mon Sep 17 00:00:00 2001 +From 69bae3bffa954251d6a857b1b6928fc4755e40bf Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Fri, 17 May 2024 21:56:55 -0500 -Subject: [PATCH 06/22] Add --custom-refresh-rates +Subject: [PATCH 06/21] Add --custom-refresh-rates --- src/Backends/DRMBackend.cpp | 4 ++++ @@ -479,10 +479,10 @@ Subject: [PATCH 06/22] Add --custom-refresh-rates 3 files changed, 36 insertions(+) diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 4c72dc1..e4caebb 100644 +index 3815b98..e3512a1 100644 --- a/src/Backends/DRMBackend.cpp +++ b/src/Backends/DRMBackend.cpp -@@ -2125,6 +2125,10 @@ namespace gamescope +@@ -2135,6 +2135,10 @@ namespace gamescope ( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Jupiter"sv ) || ( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Galileo"sv ); @@ -494,7 +494,7 @@ index 4c72dc1..e4caebb 100644 { static constexpr uint32_t kPIDGalileoSDC = 0x3003; diff --git a/src/main.cpp b/src/main.cpp -index 8bea38c..a9e1969 100644 +index dc3e9c8..18eb399 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -132,6 +132,7 @@ const struct option *gamescope_options = (struct option[]){ @@ -556,7 +556,7 @@ index 8bea38c..a9e1969 100644 strcmp(opt_name, "fsr-sharpness") == 0) { g_upscaleFilterSharpness = atoi( optarg ); diff --git a/src/main.hpp b/src/main.hpp -index 5492cae..0207a51 100644 +index ebd018a..4e09e3b 100644 --- a/src/main.hpp +++ b/src/main.hpp @@ -3,6 +3,7 @@ @@ -576,21 +576,21 @@ index 5492cae..0207a51 100644 enum class GamescopeUpscaleFilter : uint32_t { -- -2.45.2 +2.46.0 -From db4804880ea0fdf810979aea3153e2f45dc97bfe Mon Sep 17 00:00:00 2001 +From 5125582bc6fdfc651ca5ccb58cb71d956e2c3676 Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Sat, 18 May 2024 08:44:38 -0500 -Subject: [PATCH 07/22] Add rotation gamescope_control command +Subject: [PATCH 07/21] Add rotation gamescope_control command --- protocol/gamescope-control.xml | 18 ++++++++++++ - src/Backends/DRMBackend.cpp | 23 +++++++++++++++- - src/gamescope_shared.h | 10 +++++++ + src/Backends/DRMBackend.cpp | 24 ++++++++++++++-- + src/gamescope_shared.h | 18 ++++++++++++ src/main.cpp | 1 + src/wlserver.cpp | 50 ++++++++++++++++++++++++++++++++++ - 5 files changed, 101 insertions(+), 1 deletion(-) + 5 files changed, 109 insertions(+), 2 deletions(-) diff --git a/protocol/gamescope-control.xml b/protocol/gamescope-control.xml index 012c48c..eab8a84 100644 @@ -621,10 +621,10 @@ index 012c48c..eab8a84 100644 diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index e4caebb..70d5cdf 100644 +index e3512a1..f05c2e8 100644 --- a/src/Backends/DRMBackend.cpp +++ b/src/Backends/DRMBackend.cpp -@@ -2020,7 +2020,9 @@ namespace gamescope +@@ -2028,7 +2028,9 @@ namespace gamescope void CDRMConnector::UpdateEffectiveOrientation( const drmModeModeInfo *pMode ) { @@ -635,10 +635,11 @@ index e4caebb..70d5cdf 100644 { m_ChosenOrientation = g_DesiredInternalOrientation; } -@@ -2935,6 +2937,25 @@ bool drm_update_color_mgmt(struct drm_t *drm) +@@ -2960,8 +2962,26 @@ bool drm_update_color_mgmt(struct drm_t *drm) return true; } +-int g_nDynamicRefreshHz = 0; +void drm_set_orientation( struct drm_t *drm, bool isRotated) +{ + int width = g_nOutputWidth; @@ -649,7 +650,7 @@ index e4caebb..70d5cdf 100644 + width = height; + height = tmp; + } -+ + + if (!drm->pConnector || !drm->pConnector->GetModeConnector()) + return; + @@ -658,17 +659,26 @@ index e4caebb..70d5cdf 100644 + update_drm_effective_orientations(drm, mode); +} + ++int g_nDynamicRefreshHz = 0; static void drm_unset_mode( struct drm_t *drm ) { drm->pending.mode_id = 0; diff --git a/src/gamescope_shared.h b/src/gamescope_shared.h -index ed30d8c..d04a907 100644 +index d1b7a6e..cffa576 100644 --- a/src/gamescope_shared.h +++ b/src/gamescope_shared.h -@@ -62,6 +62,16 @@ enum GamescopePanelOrientation +@@ -65,6 +65,24 @@ enum GamescopePanelOrientation GAMESCOPE_PANEL_ORIENTATION_AUTO, }; ++struct GamescopeTimelinePoint ++{ ++ struct wlr_drm_syncobj_timeline *pTimeline = nullptr; ++ uint64_t ulPoint = 0; ++ ++ void Release(); ++}; ++ +enum GamescopePanelExternalOrientation +{ + GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_0, // normal @@ -683,7 +693,7 @@ index ed30d8c..d04a907 100644 // composite priorities working in libliftoff + also // use the proper libliftoff composite plane system. diff --git a/src/main.cpp b/src/main.cpp -index a9e1969..4469ac1 100644 +index 18eb399..675020f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -397,6 +397,7 @@ static gamescope::GamescopeScreenType force_panel_type(const char *str) @@ -695,10 +705,10 @@ index a9e1969..4469ac1 100644 } else { fprintf( stderr, "gamescope: invalid value for --force-panel-type\n" ); diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 62da656..96bb7fc 100644 +index 26b953a..c37dbc1 100644 --- a/src/wlserver.cpp +++ b/src/wlserver.cpp -@@ -1101,6 +1101,55 @@ static void gamescope_control_take_screenshot( struct wl_client *client, struct +@@ -1042,6 +1042,55 @@ static void gamescope_control_take_screenshot( struct wl_client *client, struct } ); } @@ -754,7 +764,7 @@ index 62da656..96bb7fc 100644 static void gamescope_control_handle_destroy( struct wl_client *client, struct wl_resource *resource ) { wl_resource_destroy( resource ); -@@ -1110,6 +1159,7 @@ static const struct gamescope_control_interface gamescope_control_impl = { +@@ -1051,6 +1100,7 @@ static const struct gamescope_control_interface gamescope_control_impl = { .destroy = gamescope_control_handle_destroy, .set_app_target_refresh_cycle = gamescope_control_set_app_target_refresh_cycle, .take_screenshot = gamescope_control_take_screenshot, @@ -763,13 +773,13 @@ index 62da656..96bb7fc 100644 static uint32_t get_conn_display_info_flags() -- -2.45.2 +2.46.0 -From ef9f07b932c8be1d391b9688b1b31edbb73e86ce Mon Sep 17 00:00:00 2001 +From 304c747d5eab4b62fe38225d04529ff53142e832 Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Sat, 18 May 2024 11:54:50 -0500 -Subject: [PATCH 08/22] Fix an issue that caused force-panel to not work +Subject: [PATCH 08/21] Fix an issue that caused force-panel to not work --- protocol/gamescope-control.xml | 1 - @@ -791,7 +801,7 @@ index eab8a84..7f5578b 100644 diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 70d5cdf..7af994e 100644 +index f05c2e8..663b1e2 100644 --- a/src/Backends/DRMBackend.cpp +++ b/src/Backends/DRMBackend.cpp @@ -318,6 +318,9 @@ namespace gamescope @@ -805,11 +815,11 @@ index 70d5cdf..7af994e 100644 m_pConnector->connector_type == DRM_MODE_CONNECTOR_LVDS || m_pConnector->connector_type == DRM_MODE_CONNECTOR_DSI ) diff --git a/src/gamescope_shared.h b/src/gamescope_shared.h -index d04a907..ed30d8c 100644 +index cffa576..a11f598 100644 --- a/src/gamescope_shared.h +++ b/src/gamescope_shared.h -@@ -62,16 +62,6 @@ enum GamescopePanelOrientation - GAMESCOPE_PANEL_ORIENTATION_AUTO, +@@ -73,16 +73,6 @@ struct GamescopeTimelinePoint + void Release(); }; -enum GamescopePanelExternalOrientation @@ -826,10 +836,10 @@ index d04a907..ed30d8c 100644 // composite priorities working in libliftoff + also // use the proper libliftoff composite plane system. diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 96bb7fc..959f63b 100644 +index c37dbc1..ff534ad 100644 --- a/src/wlserver.cpp +++ b/src/wlserver.cpp -@@ -74,6 +74,8 @@ static LogScope wl_log("wlserver"); +@@ -82,6 +82,8 @@ extern gamescope::ConVar cv_drm_debug_disable_explicit_sync; //#define GAMESCOPE_SWAPCHAIN_DEBUG gamescope::ConVar cv_touch_gestures( "enable_touch_gestures", false, "Enable/Disable the usage of touch gestures" ); @@ -838,7 +848,7 @@ index 96bb7fc..959f63b 100644 struct wlserver_t wlserver = { .touch_down_ids = {} -@@ -1107,43 +1109,43 @@ static void gamescope_control_rotate_display( struct wl_client *client, struct w +@@ -1048,43 +1050,43 @@ static void gamescope_control_rotate_display( struct wl_client *client, struct w if (target_type == GAMESCOPE_CONTROL_DISPLAY_TARGET_TYPE_INTERNAL ) { switch (orientation) { @@ -914,7 +924,7 @@ index 96bb7fc..959f63b 100644 } } //drm_set_orientation(&g_DRM, isRotated); -@@ -2554,34 +2556,61 @@ const std::shared_ptr& wlserver_surface_swapchai +@@ -2512,34 +2514,61 @@ const std::shared_ptr& wlserver_surface_swapchai /* Handle the orientation of the touch inputs */ static void apply_touchscreen_orientation(double *x, double *y ) { @@ -1003,23 +1013,23 @@ index 96bb7fc..959f63b 100644 void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool bAlwaysWarpCursor ) -- -2.45.2 +2.46.0 -From 8950969d8c62982f03bf8452a503276960f2fa33 Mon Sep 17 00:00:00 2001 +From 3efb4df00c1e88219a3ff7c47af99b7217d1fe95 Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Sat, 18 May 2024 13:50:57 -0500 -Subject: [PATCH 09/22] Fix an arithmetic error +Subject: [PATCH 09/21] Fix an arithmetic error --- src/Backends/DRMBackend.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 7af994e..30150fb 100644 +index 663b1e2..eafb2f9 100644 --- a/src/Backends/DRMBackend.cpp +++ b/src/Backends/DRMBackend.cpp -@@ -2023,9 +2023,9 @@ namespace gamescope +@@ -2031,9 +2031,9 @@ namespace gamescope void CDRMConnector::UpdateEffectiveOrientation( const drmModeModeInfo *pMode ) { @@ -1033,33 +1043,32 @@ index 7af994e..30150fb 100644 m_ChosenOrientation = g_DesiredInternalOrientation; } -- -2.45.2 +2.46.0 -From 3e51d6f0ae7603e322024783143329dc46835901 Mon Sep 17 00:00:00 2001 +From dd53e4d18b122cae5383d77fc3f6e79084d8993f Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Sat, 18 May 2024 19:04:48 -0500 -Subject: [PATCH 10/22] Rework the touch gestures to be more smooth +Subject: [PATCH 10/21] Rework the touch gestures to be more smooth --- - src/wlserver.cpp | 90 +++++++++++++++++++++++++++++++++++++----------- - 1 file changed, 69 insertions(+), 21 deletions(-) + src/wlserver.cpp | 89 +++++++++++++++++++++++++++++++++++++----------- + 1 file changed, 69 insertions(+), 20 deletions(-) diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 959f63b..131cd72 100644 +index ff534ad..593a074 100644 --- a/src/wlserver.cpp +++ b/src/wlserver.cpp -@@ -71,7 +71,8 @@ - #include +@@ -80,6 +80,8 @@ using namespace std::literals; + + extern gamescope::ConVar cv_drm_debug_disable_explicit_sync; - static LogScope wl_log("wlserver"); -- +bool pending_gesture = false; +bool pending_osk = false; //#define GAMESCOPE_SWAPCHAIN_DEBUG gamescope::ConVar cv_touch_gestures( "enable_touch_gestures", false, "Enable/Disable the usage of touch gestures" ); extern GamescopePanelOrientation g_DesiredInternalOrientation; -@@ -421,6 +422,39 @@ void wlserver_open_steam_menu( bool qam ) +@@ -362,6 +364,39 @@ void wlserver_open_steam_menu( bool qam ) XTestFakeKeyEvent(server->get_xdisplay(), XKeysymToKeycode( server->get_xdisplay(), XK_Control_L ), False, CurrentTime); } @@ -1099,7 +1108,7 @@ index 959f63b..131cd72 100644 static void wlserver_handle_pointer_button(struct wl_listener *listener, void *data) { struct wlserver_pointer *pointer = wl_container_of( listener, pointer, button ); -@@ -2649,32 +2683,46 @@ void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool +@@ -2607,32 +2642,46 @@ void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool if ( bAlwaysWarpCursor ) wlserver_mousewarp( tx, ty, time, false ); @@ -1167,23 +1176,23 @@ index 959f63b..131cd72 100644 else if ( eMode == gamescope::TouchClickModes::Disabled ) { -- -2.45.2 +2.46.0 -From d25a36dabc8e1d8144413980d915d0e71d313434 Mon Sep 17 00:00:00 2001 +From 70d4ea8937e43752e1adb32ebbcdd3d1a0bcf23c Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Sun, 19 May 2024 08:55:28 -0500 -Subject: [PATCH 11/22] Fix a typo for --bypass-steam-resolution +Subject: [PATCH 11/21] Fix a typo for --bypass-steam-resolution --- src/steamcompmgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp -index bec4268..10c0a75 100644 +index 952a5f8..6fceb1d 100644 --- a/src/steamcompmgr.cpp +++ b/src/steamcompmgr.cpp -@@ -7175,7 +7175,7 @@ steamcompmgr_main(int argc, char **argv) +@@ -7379,7 +7379,7 @@ steamcompmgr_main(int argc, char **argv) bForceWindowsFullscreen = true; } else if (strcmp(opt_name, "hdr-enabled") == 0) { cv_hdr_enabled = true; @@ -1193,13 +1202,13 @@ index bec4268..10c0a75 100644 } else if (strcmp(opt_name, "hdr-debug-force-support") == 0) { g_bForceHDRSupportDebug = true; -- -2.45.2 +2.46.0 -From 6d6afedd56a3f7b578cac1af7eaf93af931e0500 Mon Sep 17 00:00:00 2001 +From be8e56d7f3bf251f75da24aa8a99d2e91aa60812 Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Sun, 19 May 2024 11:48:52 -0500 -Subject: [PATCH 12/22] Handle gesture cases better to prevent unexpected +Subject: [PATCH 12/21] Handle gesture cases better to prevent unexpected behavior --- @@ -1207,20 +1216,20 @@ Subject: [PATCH 12/22] Handle gesture cases better to prevent unexpected 1 file changed, 43 insertions(+), 20 deletions(-) diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 131cd72..9afe488 100644 +index 593a074..833140a 100644 --- a/src/wlserver.cpp +++ b/src/wlserver.cpp -@@ -71,7 +71,8 @@ - #include +@@ -80,7 +80,8 @@ using namespace std::literals; + + extern gamescope::ConVar cv_drm_debug_disable_explicit_sync; - static LogScope wl_log("wlserver"); -bool pending_gesture = false; +bool pending_gesture_x = false; +bool pending_gesture_y = false; bool pending_osk = false; //#define GAMESCOPE_SWAPCHAIN_DEBUG gamescope::ConVar cv_touch_gestures( "enable_touch_gestures", false, "Enable/Disable the usage of touch gestures" ); -@@ -2647,6 +2648,16 @@ static void apply_touchscreen_orientation(double *x, double *y ) +@@ -2606,6 +2607,16 @@ static void apply_touchscreen_orientation(double *x, double *y ) *y = ty; } @@ -1237,7 +1246,7 @@ index 131cd72..9afe488 100644 void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool bAlwaysWarpCursor ) { assert( wlserver_is_lock_held() ); -@@ -2685,43 +2696,55 @@ void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool +@@ -2644,43 +2655,55 @@ void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool if ( cv_touch_gestures ) { @@ -1313,13 +1322,13 @@ index 131cd72..9afe488 100644 } else if ( eMode == gamescope::TouchClickModes::Disabled ) -- -2.45.2 +2.46.0 -From 58e24b2f2ac33eb2388ef734835c6b02e437e563 Mon Sep 17 00:00:00 2001 +From b31ab55d57f0a8b746d4d0fa7939f6473bcad9a4 Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Sun, 19 May 2024 18:14:23 -0500 -Subject: [PATCH 13/22] Add references to drm_set_orientation() and g_drm in +Subject: [PATCH 13/21] Add references to drm_set_orientation() and g_drm in wlserver for rotation gamescope-control --- @@ -1328,10 +1337,10 @@ Subject: [PATCH 13/22] Add references to drm_set_orientation() and g_drm in 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 9afe488..e963bea 100644 +index 833140a..eb3936a 100644 --- a/src/wlserver.cpp +++ b/src/wlserver.cpp -@@ -1183,8 +1183,9 @@ static void gamescope_control_rotate_display( struct wl_client *client, struct w +@@ -1125,8 +1125,9 @@ static void gamescope_control_rotate_display( struct wl_client *client, struct w wl_log.errorf("Invalid target orientation selected"); } } @@ -1344,10 +1353,10 @@ index 9afe488..e963bea 100644 static void gamescope_control_handle_destroy( struct wl_client *client, struct wl_resource *resource ) diff --git a/src/wlserver.hpp b/src/wlserver.hpp -index da67bf7..688d05c 100644 +index 3304c18..0754ee5 100644 --- a/src/wlserver.hpp +++ b/src/wlserver.hpp -@@ -294,7 +294,8 @@ extern std::atomic g_bPendingTouchMovement; +@@ -275,7 +275,8 @@ extern std::atomic g_bPendingTouchMovement; extern gamescope::ConVar cv_touch_gestures; void wlserver_open_steam_menu( bool qam ); @@ -1358,13 +1367,13 @@ index da67bf7..688d05c 100644 void wlserver_destroy_xwayland_server(gamescope_xwayland_server_t *server); -- -2.45.2 +2.46.0 -From 768e5689e12c2f57766d27d72b4fad03d54fc01c Mon Sep 17 00:00:00 2001 +From 8df476a6f7d41157e847ee7c3346c796e674d9fe Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Mon, 20 May 2024 07:02:52 -0500 -Subject: [PATCH 14/22] Fix an issue where forced panel type orientations +Subject: [PATCH 14/21] Fix an issue where forced panel type orientations weren't being applied --- @@ -1372,10 +1381,10 @@ Subject: [PATCH 14/22] Fix an issue where forced panel type orientations 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 30150fb..1a2668f 100644 +index eafb2f9..1ea1221 100644 --- a/src/Backends/DRMBackend.cpp +++ b/src/Backends/DRMBackend.cpp -@@ -2023,20 +2023,19 @@ namespace gamescope +@@ -2031,20 +2031,19 @@ namespace gamescope void CDRMConnector::UpdateEffectiveOrientation( const drmModeModeInfo *pMode ) { @@ -1402,7 +1411,7 @@ index 30150fb..1a2668f 100644 switch ( this->GetProperties().panel_orientation->GetCurrentValue() ) { case DRM_MODE_PANEL_ORIENTATION_NORMAL: -@@ -2058,6 +2057,7 @@ namespace gamescope +@@ -2066,6 +2065,7 @@ namespace gamescope if ( this->GetScreenType() == gamescope::GAMESCOPE_SCREEN_TYPE_INTERNAL && pMode ) { @@ -1410,7 +1419,7 @@ index 30150fb..1a2668f 100644 // Auto-detect portait mode for internal displays m_ChosenOrientation = pMode->hdisplay < pMode->vdisplay ? GAMESCOPE_PANEL_ORIENTATION_270 -@@ -2065,6 +2065,7 @@ namespace gamescope +@@ -2073,6 +2073,7 @@ namespace gamescope } else { @@ -1419,23 +1428,23 @@ index 30150fb..1a2668f 100644 } } -- -2.45.2 +2.46.0 -From d6e4cf239f0f2113d1f3071a8d4766a810497617 Mon Sep 17 00:00:00 2001 +From 5d7781dd8ca41f4d865aa336b4e925beeec9349e Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Mon, 20 May 2024 07:25:29 -0500 -Subject: [PATCH 15/22] add missing curly bracket... +Subject: [PATCH 15/21] add missing curly bracket... --- src/Backends/DRMBackend.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 1a2668f..825812e 100644 +index 1ea1221..8d86df0 100644 --- a/src/Backends/DRMBackend.cpp +++ b/src/Backends/DRMBackend.cpp -@@ -2025,7 +2025,7 @@ namespace gamescope +@@ -2033,7 +2033,7 @@ namespace gamescope { if ((this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_INTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO) || (this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredInternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO && g_bExternalForced)) { @@ -1445,13 +1454,13 @@ index 1a2668f..825812e 100644 } else if (this->GetScreenType() == GAMESCOPE_SCREEN_TYPE_EXTERNAL && g_DesiredExternalOrientation != GAMESCOPE_PANEL_ORIENTATION_AUTO) { drm_log.infof("We are rotating the orientation of an external display"); -- -2.45.2 +2.46.0 -From 8983b3621dd81d4633a50a798b7794c6ae9d693b Mon Sep 17 00:00:00 2001 +From 0282352468bb6b99e75eb1c24cb3ed555886fff5 Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Mon, 20 May 2024 10:17:55 -0500 -Subject: [PATCH 16/22] Fix case where real externals were rotated with faked +Subject: [PATCH 16/21] Fix case where real externals were rotated with faked external panels --- @@ -1460,7 +1469,7 @@ Subject: [PATCH 16/22] Fix case where real externals were rotated with faked 2 files changed, 64 insertions(+), 29 deletions(-) diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 825812e..2668ad7 100644 +index 8d86df0..0008505 100644 --- a/src/Backends/DRMBackend.cpp +++ b/src/Backends/DRMBackend.cpp @@ -318,13 +318,20 @@ namespace gamescope @@ -1488,7 +1497,7 @@ index 825812e..2668ad7 100644 return GAMESCOPE_SCREEN_TYPE_EXTERNAL; } -@@ -2023,11 +2030,11 @@ namespace gamescope +@@ -2031,11 +2038,11 @@ namespace gamescope void CDRMConnector::UpdateEffectiveOrientation( const drmModeModeInfo *pMode ) { @@ -1504,10 +1513,10 @@ index 825812e..2668ad7 100644 m_ChosenOrientation = g_DesiredExternalOrientation; } diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index e963bea..74d8209 100644 +index eb3936a..896ec04 100644 --- a/src/wlserver.cpp +++ b/src/wlserver.cpp -@@ -2596,29 +2596,57 @@ static void apply_touchscreen_orientation(double *x, double *y ) +@@ -2555,29 +2555,57 @@ static void apply_touchscreen_orientation(double *x, double *y ) double ty = 0; // Use internal screen always for orientation purposes. @@ -1588,13 +1597,13 @@ index e963bea..74d8209 100644 else if (g_ForcedScreenType == gamescope::GAMESCOPE_SCREEN_TYPE_AUTO) { -- -2.45.2 +2.46.0 -From 57057c9e5dc4ac026259726145d5b6e480368699 Mon Sep 17 00:00:00 2001 +From 276c1220de3542467b6d8e2218dfa1f2ccfc5b79 Mon Sep 17 00:00:00 2001 From: Matthew Anderson Date: Mon, 20 May 2024 16:30:47 -0500 -Subject: [PATCH 17/22] Add verbose panel logs and attempt to address all +Subject: [PATCH 17/21] Add verbose panel logs and attempt to address all orientation issues --- @@ -1604,7 +1613,7 @@ Subject: [PATCH 17/22] Add verbose panel logs and attempt to address all 3 files changed, 39 insertions(+), 21 deletions(-) diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 2668ad7..9df20ae 100644 +index 0008505..bd5ffec 100644 --- a/src/Backends/DRMBackend.cpp +++ b/src/Backends/DRMBackend.cpp @@ -56,6 +56,7 @@ static constexpr bool k_bUseCursorPlane = false; @@ -1632,7 +1641,7 @@ index 2668ad7..9df20ae 100644 return GAMESCOPE_SCREEN_TYPE_EXTERNAL; } -@@ -2030,7 +2032,19 @@ namespace gamescope +@@ -2038,7 +2040,19 @@ namespace gamescope void CDRMConnector::UpdateEffectiveOrientation( const drmModeModeInfo *pMode ) { @@ -1654,10 +1663,10 @@ index 2668ad7..9df20ae 100644 m_ChosenOrientation = g_DesiredInternalOrientation; } diff --git a/src/wlserver.cpp b/src/wlserver.cpp -index 74d8209..3d4b239 100644 +index 896ec04..e5bb2e2 100644 --- a/src/wlserver.cpp +++ b/src/wlserver.cpp -@@ -2600,26 +2600,29 @@ static void apply_touchscreen_orientation(double *x, double *y ) +@@ -2559,26 +2559,29 @@ static void apply_touchscreen_orientation(double *x, double *y ) { if ( g_ForcedScreenType == gamescope::GAMESCOPE_SCREEN_TYPE_EXTERNAL ) { @@ -1707,10 +1716,10 @@ index 74d8209..3d4b239 100644 } else diff --git a/src/wlserver.hpp b/src/wlserver.hpp -index 688d05c..ae55963 100644 +index 0754ee5..bdf3b0b 100644 --- a/src/wlserver.hpp +++ b/src/wlserver.hpp -@@ -296,6 +296,7 @@ extern gamescope::ConVar cv_touch_gestures; +@@ -277,6 +277,7 @@ extern gamescope::ConVar cv_touch_gestures; void wlserver_open_steam_menu( bool qam ); extern void drm_set_orientation( struct drm_t *drm, bool isRotated); extern drm_t g_DRM; @@ -1719,20 +1728,20 @@ index 688d05c..ae55963 100644 void wlserver_destroy_xwayland_server(gamescope_xwayland_server_t *server); -- -2.45.2 +2.46.0 -From 41242b5ee7fa33cae22f30f5bcf5e27169bd8145 Mon Sep 17 00:00:00 2001 +From 11664b820a9065b597d8655e53ade8dd9a29c4bc Mon Sep 17 00:00:00 2001 From: Bouke Sybren Haarsma Date: Tue, 28 May 2024 21:56:47 +0200 -Subject: [PATCH 18/22] add closing bracket +Subject: [PATCH 18/21] add closing bracket --- src/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main.cpp b/src/main.cpp -index 4469ac1..e455225 100644 +index 675020f..315b718 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -465,6 +465,7 @@ static enum gamescope::GamescopeBackend parse_backend_name(const char *str) @@ -1744,13 +1753,13 @@ index 4469ac1..e455225 100644 std::vector g_customRefreshRates; // eg: 60,60,90,110-120 -- -2.45.2 +2.46.0 -From e528844eb590f8183fdfffaf9a7af39f33dc2213 Mon Sep 17 00:00:00 2001 +From 1e5c439eb0b1e809a3ec6414e8d0536db22c9601 Mon Sep 17 00:00:00 2001 From: Bouke Sybren Haarsma Date: Wed, 3 Jan 2024 17:03:04 +0100 -Subject: [PATCH 19/22] remove hacky texture +Subject: [PATCH 19/21] remove hacky texture This will use more hardware planes, causing some devices to composite yeilding lower framerates --- @@ -1758,10 +1767,10 @@ This will use more hardware planes, causing some devices to composite yeilding l 1 file changed, 17 insertions(+), 45 deletions(-) diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp -index 10c0a75..1bc9008 100644 +index 6fceb1d..4dbbdaf 100644 --- a/src/steamcompmgr.cpp +++ b/src/steamcompmgr.cpp -@@ -1579,7 +1579,7 @@ bool MouseCursor::getTexture() +@@ -1620,7 +1620,7 @@ bool MouseCursor::getTexture() { pixels[i * image->width + j] = image->pixels[i * image->width + j]; } @@ -1770,7 +1779,7 @@ index 10c0a75..1bc9008 100644 std::vector resizeBuffer( nDesiredWidth * nDesiredHeight ); stbir_resize_uint8_srgb( (unsigned char *)pixels.data(), image->width, image->height, 0, (unsigned char *)resizeBuffer.data(), nDesiredWidth, nDesiredHeight, 0, -@@ -2257,7 +2257,7 @@ paint_all(bool async) +@@ -2306,7 +2306,7 @@ paint_all(bool async) } } } @@ -1779,7 +1788,7 @@ index 10c0a75..1bc9008 100644 int nOldLayerCount = frameInfo.layerCount; uint32_t flags = 0; -@@ -2265,7 +2265,7 @@ paint_all(bool async) +@@ -2314,7 +2314,7 @@ paint_all(bool async) flags |= PaintWindowFlag::BasePlane; paint_window(w, w, &frameInfo, global_focus.cursor, flags); update_touch_scaling( &frameInfo ); @@ -1788,7 +1797,7 @@ index 10c0a75..1bc9008 100644 // paint UI unless it's fully hidden, which it communicates to us through opacity=0 // we paint it to extract scaling coefficients above, then remove the layer if one was added if ( w->opacity == TRANSLUCENT && bHasVideoUnderlay && nOldLayerCount < frameInfo.layerCount ) -@@ -2278,7 +2278,7 @@ paint_all(bool async) +@@ -2327,7 +2327,7 @@ paint_all(bool async) float opacityScale = g_bPendingFade ? 0.0f : ((currentTime - fadeOutStartTime) / (float)g_FadeOutDuration); @@ -1797,7 +1806,7 @@ index 10c0a75..1bc9008 100644 paint_cached_base_layer(g_HeldCommits[HELD_COMMIT_FADE], g_CachedPlanes[HELD_COMMIT_FADE], &frameInfo, 1.0f - opacityScale, false); paint_window(w, w, &frameInfo, global_focus.cursor, PaintWindowFlag::BasePlane | PaintWindowFlag::FadeTarget | PaintWindowFlag::DrawBorders, opacityScale, override); } -@@ -2352,34 +2352,6 @@ paint_all(bool async) +@@ -2401,34 +2401,6 @@ paint_all(bool async) if ( overlay == global_focus.inputFocusWindow ) update_touch_scaling( &frameInfo ); } @@ -1832,7 +1841,7 @@ index 10c0a75..1bc9008 100644 if (notification) { -@@ -2957,7 +2929,7 @@ win_maybe_a_dropdown( steamcompmgr_win_t *w ) +@@ -3014,7 +2986,7 @@ win_maybe_a_dropdown( steamcompmgr_win_t *w ) // // TODO: Come back to me for original Age of Empires HD launcher. // Does that use it? It wants blending! @@ -1841,7 +1850,7 @@ index 10c0a75..1bc9008 100644 // Only do this if we have CONTROLPARENT right now. Some other apps, such as the // Street Fighter V (310950) Splash Screen also use LAYERED and TOOLWINDOW, and we don't // want that to be overlayed. -@@ -2972,12 +2944,12 @@ win_maybe_a_dropdown( steamcompmgr_win_t *w ) +@@ -3029,12 +3001,12 @@ win_maybe_a_dropdown( steamcompmgr_win_t *w ) // Josh: // The logic here is as follows. The window will be treated as a dropdown if: @@ -1856,7 +1865,7 @@ index 10c0a75..1bc9008 100644 // - If the window has transient for, disregard it, as it is trying to redirecting us elsewhere // ie. a settings menu dialog popup or something. // - If the window has both skip taskbar and pager, treat it as a dialog. -@@ -3069,7 +3041,7 @@ static bool is_good_override_candidate( steamcompmgr_win_t *override, steamcompm +@@ -3126,7 +3098,7 @@ static bool is_good_override_candidate( steamcompmgr_win_t *override, steamcompm return false; return override != focus && override->GetGeometry().nX >= 0 && override->GetGeometry().nY >= 0; @@ -1865,7 +1874,7 @@ index 10c0a75..1bc9008 100644 static bool pick_primary_focus_and_override(focus_t *out, Window focusControlWindow, const std::vector& vecPossibleFocusWindows, bool globalFocus, const std::vector& ctxFocusControlAppIDs) -@@ -3210,7 +3182,7 @@ found:; +@@ -3267,7 +3239,7 @@ found:; if ( focus ) { @@ -1874,7 +1883,7 @@ index 10c0a75..1bc9008 100644 out->focusWindow = focus; else focus->outdatedInteractiveFocus = true; -@@ -3253,9 +3225,9 @@ found:; +@@ -3310,9 +3282,9 @@ found:; override_focus = fake_override; goto found2; } @@ -1886,7 +1895,7 @@ index 10c0a75..1bc9008 100644 found2:; resolveTransientOverrides( true ); } -@@ -4514,7 +4486,7 @@ finish_destroy_win(xwayland_ctx_t *ctx, Window id, bool gone) +@@ -4574,7 +4546,7 @@ finish_destroy_win(xwayland_ctx_t *ctx, Window id, bool gone) { if (gone) finish_unmap_win (ctx, w); @@ -1895,7 +1904,7 @@ index 10c0a75..1bc9008 100644 { std::unique_lock lock( ctx->list_mutex ); *prev = w->xwayland().next; -@@ -4571,7 +4543,7 @@ destroy_win(xwayland_ctx_t *ctx, Window id, bool gone, bool fade) +@@ -4631,7 +4603,7 @@ destroy_win(xwayland_ctx_t *ctx, Window id, bool gone, bool fade) global_focus.overrideWindow = nullptr; if (x11_win(global_focus.fadeWindow) == id && gone) global_focus.fadeWindow = nullptr; @@ -1904,7 +1913,7 @@ index 10c0a75..1bc9008 100644 MakeFocusDirty(); finish_destroy_win(ctx, id, gone); -@@ -5176,7 +5148,7 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) +@@ -5243,7 +5215,7 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev) { get_win_type(ctx, w); MakeFocusDirty(); @@ -1913,7 +1922,7 @@ index 10c0a75..1bc9008 100644 } if (ev->atom == ctx->atoms.sizeHintsAtom) { -@@ -6084,7 +6056,7 @@ void handle_done_commits_xdg( bool vblank, uint64_t vblank_idx ) +@@ -6153,7 +6125,7 @@ void handle_done_commits_xdg( bool vblank, uint64_t vblank_idx ) commits_before_their_time.push_back( entry ); continue; } @@ -1922,7 +1931,7 @@ index 10c0a75..1bc9008 100644 if (!entry.earliestPresentTime) { entry.earliestPresentTime = next_refresh_time; -@@ -6938,7 +6910,7 @@ void update_mode_atoms(xwayland_ctx_t *root_ctx, bool* needs_flush = nullptr) +@@ -7143,7 +7115,7 @@ void update_mode_atoms(xwayland_ctx_t *root_ctx, bool* needs_flush = nullptr) } XChangeProperty(root_ctx->dpy, root_ctx->root, root_ctx->atoms.gamescopeDisplayModeListExternal, XA_STRING, 8, PropModeReplace, (unsigned char *)modes, strlen(modes) + 1 ); @@ -1931,7 +1940,7 @@ index 10c0a75..1bc9008 100644 uint32_t one = 1; XChangeProperty(root_ctx->dpy, root_ctx->root, root_ctx->atoms.gamescopeDisplayIsExternal, XA_CARDINAL, 32, PropModeReplace, (unsigned char *)&one, 1 ); -@@ -7696,7 +7668,7 @@ void steamcompmgr_send_frame_done_to_focus_window() +@@ -7975,7 +7947,7 @@ void steamcompmgr_send_frame_done_to_focus_window() { wlserver_lock(); wlserver_send_frame_done( global_focus.focusWindow->xwayland().surface.main_surface , &now ); @@ -1941,50 +1950,23 @@ index 10c0a75..1bc9008 100644 } -- -2.45.2 - - -From 7865b34c5cd61fa5cc5428ace614e4551fabb6ec Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Joaqu=C3=ADn=20Ignacio=20Aramend=C3=ADa?= - -Date: Tue, 9 Jul 2024 18:29:16 -0300 -Subject: [PATCH 20/22] disable explicit sync to avoid graphical artifacts - ---- - src/Backends/DRMBackend.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index 9df20ae..ff1858b 100644 ---- a/src/Backends/DRMBackend.cpp -+++ b/src/Backends/DRMBackend.cpp -@@ -68,7 +68,7 @@ gamescope::ConVar cv_drm_debug_disable_blend_tf( "drm_debug_disable_blend_ - gamescope::ConVar cv_drm_debug_disable_ctm( "drm_debug_disable_ctm", false, "CTM chicken bit. (Forces CTM off, does not affect other logic)" ); - gamescope::ConVar cv_drm_debug_disable_color_encoding( "drm_debug_disable_color_encoding", false, "YUV Color Encoding chicken bit. (Forces COLOR_ENCODING to DEFAULT, does not affect other logic)" ); - gamescope::ConVar cv_drm_debug_disable_color_range( "drm_debug_disable_color_range", false, "YUV Color Range chicken bit. (Forces COLOR_RANGE to DEFAULT, does not affect other logic)" ); --gamescope::ConVar cv_drm_debug_disable_explicit_sync( "drm_debug_disable_explicit_sync", false, "Force disable explicit sync on the DRM backend." ); -+gamescope::ConVar cv_drm_debug_disable_explicit_sync( "drm_debug_disable_explicit_sync", true, "Force disable explicit sync on the DRM backend." ); - gamescope::ConVar cv_drm_debug_disable_in_fence_fd( "drm_debug_disable_in_fence_fd", false, "Force disable IN_FENCE_FD being set to avoid over-synchronization on the DRM backend." ); - - // HACK: --- -2.45.2 +2.46.0 -From 1dbcfed76f4b80d8a9f6570819b5af7917c786fc Mon Sep 17 00:00:00 2001 +From 672fd75c5ac7bb1226c418270fa134ad6fe07b30 Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 2 Jul 2024 14:12:47 -0700 -Subject: [PATCH 21/22] Only change refresh rates on internal displays +Subject: [PATCH 20/21] Only change refresh rates on internal displays --- src/Backends/DRMBackend.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index ff1858b..f5a452e 100644 +index bd5ffec..03b9b4c 100644 --- a/src/Backends/DRMBackend.cpp +++ b/src/Backends/DRMBackend.cpp -@@ -2152,7 +2152,7 @@ namespace gamescope +@@ -2162,7 +2162,7 @@ namespace gamescope ( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Jupiter"sv ) || ( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Galileo"sv ); @@ -1994,23 +1976,23 @@ index ff1858b..f5a452e 100644 return; } -- -2.45.2 +2.46.0 -From 3b0408f6ec7307e7a38f2c795b932d0dc05f2d72 Mon Sep 17 00:00:00 2001 +From 0cada655064b2bb2c0b5540f4c249a3c6a1254ed Mon Sep 17 00:00:00 2001 From: Kyle Gospodnetich Date: Tue, 2 Jul 2024 15:14:23 -0700 -Subject: [PATCH 22/22] Also check g_bExternalForced +Subject: [PATCH 21/21] Also check g_bExternalForced --- src/Backends/DRMBackend.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp -index f5a452e..d7f935d 100644 +index 03b9b4c..24e81b1 100644 --- a/src/Backends/DRMBackend.cpp +++ b/src/Backends/DRMBackend.cpp -@@ -2152,9 +2152,9 @@ namespace gamescope +@@ -2162,9 +2162,9 @@ namespace gamescope ( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Jupiter"sv ) || ( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Galileo"sv ); @@ -2024,5 +2006,4 @@ index f5a452e..d7f935d 100644 if ( bSteamDeckDisplay ) { -- -2.45.2 - +2.46.0 diff --git a/anda/games/gamescope/disable-steam-touch-click-atom.patch b/anda/games/gamescope/disable-steam-touch-click-atom.patch index 822b3a8e7e..cb10172b28 100644 --- a/anda/games/gamescope/disable-steam-touch-click-atom.patch +++ b/anda/games/gamescope/disable-steam-touch-click-atom.patch @@ -48,4 +48,4 @@ index 92bf617..d7498e5 100644 + cv_disable_touch_click = true; } break; - case '?': + case '?': \ No newline at end of file diff --git a/anda/games/gamescope/gamescope-legacy.sh b/anda/games/gamescope/gamescope-legacy.sh new file mode 100644 index 0000000000..34f2e1573e --- /dev/null +++ b/anda/games/gamescope/gamescope-legacy.sh @@ -0,0 +1,29 @@ +#!/bin/sh + +# Wrapper script to run Gamescope with legacy options for older GPUs + +gamescope_path="/usr/bin/gamescope" + + +# check if $BACKEND is already defined +# todo: Probably want to patch gamescope-session-plus for this instead meow + +# For compatibility, let's add the argument for nested backends too + +LEGACY_BACKEND_ARGS="" +NESTED_BACKEND_ARGS="" +if [ -z "$BACKEND" ]; then + LEGACY_BACKEND_ARGS="--backend=sdl" + NESTED_BACKEND_ARGS="--backend=sdl" +else + # Only added for nested sessions, as $BACKEND should be defined only for legacy + NESTED_BACKEND_ARGS="--backend=$BACKEND" +fi + + +if [ -z "$DISPLAY" ]; then + $gamescope_path $LEGACY_BACKEND_ARGS $@ +else + $gamescope_path $NESTED_BACKEND_ARGS $@ +fi + diff --git a/anda/games/gamescope/stb.pc b/anda/games/gamescope/stb.pc index 02c304a9fa..71d2f8a703 100644 --- a/anda/games/gamescope/stb.pc +++ b/anda/games/gamescope/stb.pc @@ -4,4 +4,4 @@ includedir=${prefix}/include/stb Name: stb Description: Single-file public domain libraries for C/C++ Version: 0.1.0 -Cflags: -I${includedir} +Cflags: -I${includedir} \ No newline at end of file diff --git a/anda/games/gamescope/terra-gamescope.spec b/anda/games/gamescope/terra-gamescope.spec index fe1a6155c7..6f060f73f4 100644 --- a/anda/games/gamescope/terra-gamescope.spec +++ b/anda/games/gamescope/terra-gamescope.spec @@ -1,37 +1,43 @@ +%if 0%{?fedora} >= 41 +%global libliftoff_minver 0.5.0 +%else %global libliftoff_minver 0.4.1 +%endif +%global toolchain clang %global _default_patch_fuzz 2 -%global gamescope_tag 3.14.24 +%global gamescope_tag 3.15.2 Name: terra-gamescope Version: 100.%{gamescope_tag} Release: 1%?dist -Summary: Micro-compositor for video games on Wayland +Summary: Micro-compositor for video games on Wayland - Terra patch, please read the full description License: BSD URL: https://github.com/ValveSoftware/gamescope # Create stb.pc to satisfy dependency('stb') Source0: stb.pc +Source1: gamescope-legacy.sh + +Patch0: 0001-cstdint.patch # https://github.com/ChimeraOS/gamescope -#Patch0: chimeraos.patch +Patch1: chimeraos.patch # https://hhd.dev/ -#Patch1: disable-steam-touch-click-atom.patch -# https://github.com/ValveSoftware/gamescope/pull/1281 -# Patch2: deckhd.patch -# https://github.com/ValveSoftware/gamescope/issues/1398 -Patch3: drm-Separate-BOE-and-SDC-OLED-Deck-panel-rates.patch -# https://github.com/ValveSoftware/gamescope/issues/1369 -Patch4: revert-299bc34.patch -# https://github.com/ValveSoftware/gamescope/pull/1231 -Patch5: 1231.patch +Patch2: disable-steam-touch-click-atom.patch +Patch3: v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch + +# Set default backend to SDL instead of Wayland, to avoid issues with GPUs that do not support +# Vulkan DRM modifiers. +# See also: gamescope-legacy package +# https://github.com/ValveSoftware/gamescope/issues/1218#issuecomment-2123801764 +Patch6: 1483.patch BuildRequires: meson >= 0.54.0 BuildRequires: ninja-build BuildRequires: cmake -BuildRequires: gcc -BuildRequires: gcc-c++ +BuildRequires: clang BuildRequires: glm-devel BuildRequires: google-benchmark-devel BuildRequires: libXmu-devel @@ -52,22 +58,16 @@ BuildRequires: pkgconfig(xres) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(vulkan) BuildRequires: pkgconfig(wayland-scanner) -BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(wayland-server) >= 1.23.0 BuildRequires: pkgconfig(wayland-protocols) >= 1.17 BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(sdl2) BuildRequires: pkgconfig(libpipewire-0.3) BuildRequires: pkgconfig(libavif) -#BuildRequires: (pkgconfig(wlroots) >= 0.18.0 with pkgconfig(wlroots) < 0.19.0) -#BuildRequires: (pkgconfig(libliftoff) >= 0.4.1 with pkgconfig(libliftoff) < 0.5) -BuildRequires: pkgconfig(libliftoff) +BuildRequires: pkgconfig(wlroots) +BuildRequires: pkgconfig(libliftoff) >= 0.4.1 BuildRequires: pkgconfig(libcap) BuildRequires: pkgconfig(hwdata) -BuildRequires: pkgconfig(libudev) -BuildRequires: pkgconfig(libseat) -BuildRequires: pkgconfig(libinput) -BuildRequires: xcb-util-wm-devel -BuildRequires: pkgconfig(xcb-errors) BuildRequires: pkgconfig(lcms2) BuildRequires: spirv-headers-devel # Enforce the the minimum EVR to contain fixes for all of: @@ -90,16 +90,21 @@ BuildRequires: git # libliftoff hasn't bumped soname, but API/ABI has changed for 0.2.0 release Requires: libliftoff%{?_isa} >= %{libliftoff_minver} Requires: xorg-x11-server-Xwayland -Requires: %{name}-libs = %{version}-%{release} -%ifarch %{ix86} -Requires: %{name}-libs(x86-32) = %{version}-%{release} -%endif +Requires: terra-gamescope-libs = %{version}-%{release} +Requires: terra-gamescope-libs(x86-32) = %{version}-%{release} Recommends: mesa-dri-drivers Recommends: mesa-vulkan-drivers +Provides: gamescope-legacy +Obsoletes: gamescope-legacy < 3.14.2 + %description Gamescope is the micro-compositor optimized for running video games on Wayland. +This specific build of Gamescope is patched to use SDL as the default backend instead of Wayland, and +includes a legacy wrapper script for older GPUs and extra configuration options. Please see +https://developer.fyralabs.com/terra/gamescope for more information. + %package libs Summary: libs for Gamescope %description libs @@ -120,21 +125,35 @@ sed -i 's^../thirdparty/SPIRV-Headers/include/spirv/^/usr/include/spirv/^' src/m %build cd gamescope export PKG_CONFIG_PATH=pkgconfig -%meson -Dpipewire=enabled -Dinput_emulation=enabled -Ddrm_backend=enabled -Drt_cap=enabled -Davif_screenshots=enabled -Dsdl2_backend=enabled +%if %{__isa_bits} == 64 +%meson --auto-features=enabled -Dforce_fallback_for=vkroots,wlroots,libliftoff +%else +%meson -Denable_gamescope=false -Denable_gamescope_wsi_layer=true +%endif %meson_build %install cd gamescope %meson_install --skip-subprojects +%if %{__isa_bits} == 64 +install -Dm755 %{SOURCE1} %{buildroot}%{_bindir}/gamescope-legacy +%endif + %files %license gamescope/LICENSE %doc gamescope/README.md +%if %{__isa_bits} == 64 %caps(cap_sys_nice=eip) %{_bindir}/gamescope %{_bindir}/gamescopectl %{_bindir}/gamescopestream %{_bindir}/gamescopereaper +%{_bindir}/gamescope-legacy +%endif %files libs %{_libdir}/libVkLayer_FROG_gamescope_wsi_*.so %{_datadir}/vulkan/implicit_layer.d/VkLayer_FROG_gamescope_wsi.*.json + +%changelog +%autochangelog diff --git a/anda/games/gamescope/update-patch.sh b/anda/games/gamescope/update-patch.sh new file mode 100755 index 0000000000..9238e8c5ce --- /dev/null +++ b/anda/games/gamescope/update-patch.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +curl -o ./1483.patch https://patch-diff.githubusercontent.com/raw/ValveSoftware/gamescope/pull/1483.patch \ No newline at end of file diff --git a/anda/games/gamescope/v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch b/anda/games/gamescope/v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch new file mode 100644 index 0000000000..ad97a5fcc0 --- /dev/null +++ b/anda/games/gamescope/v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch @@ -0,0 +1,39 @@ +From 35e001dc59a44227d670c667a85a6ef5472eee58 Mon Sep 17 00:00:00 2001 +From: antheas +Date: Sat, 20 Jul 2024 01:23:19 +0300 +Subject: [PATCH v2] always send ctrl+1/2 to steam's wayland session + +--- + src/wlserver.cpp | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/src/wlserver.cpp b/src/wlserver.cpp +index 1852be9..7de737d 100644 +--- a/src/wlserver.cpp ++++ b/src/wlserver.cpp +@@ -369,7 +369,12 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data) + keysym == XKB_KEY_XF86AudioLowerVolume || + keysym == XKB_KEY_XF86AudioRaiseVolume || + keysym == XKB_KEY_XF86PowerOff; +- if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && forbidden_key ) ++ ++ // Check for steam keys (ctrl + 1/2) ++ bool is_steamshortcut = (keyboard->wlr->modifiers.depressed & WLR_MODIFIER_CTRL) && (keysym == XKB_KEY_1 || ++ keysym == XKB_KEY_2); ++ ++ if ( ( event->state == WL_KEYBOARD_KEY_STATE_PRESSED || event->state == WL_KEYBOARD_KEY_STATE_RELEASED ) && (forbidden_key || is_steamshortcut) ) + { + // Always send volume+/- to root server only, to avoid it reaching the game. + struct wlr_surface *old_kb_surf = wlserver.kb_focus_surface; +@@ -378,6 +383,9 @@ static void wlserver_handle_key(struct wl_listener *listener, void *data) + { + wlserver_keyboardfocus( new_kb_surf, false ); + wlr_seat_set_keyboard( wlserver.wlr.seat, keyboard->wlr ); ++ // Send modifiers to steam for it to work ++ if (is_steamshortcut) ++ wlr_seat_keyboard_notify_modifiers(wlserver.wlr.seat, &keyboard->wlr->modifiers); + wlr_seat_keyboard_notify_key( wlserver.wlr.seat, event->time_msec, event->keycode, event->state ); + wlserver_keyboardfocus( old_kb_surf, false ); + return; +-- +2.45.2 diff --git a/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec b/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec index 97729503e2..51937e4161 100644 --- a/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec +++ b/anda/games/prismlauncher-nightly/prismlauncher-nightly.spec @@ -1,11 +1,11 @@ %global real_name prismlauncher %global nice_name PrismLauncher -%global commit 6352362907149d297684473f3d606b08ce1b93f5 +%global commit 685519d12f69f11461afae26817c8ea0fb3ae98b %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global libnbtplusplus_commit a5e8fd52b8bf4ab5d5bcc042b2a247867589985f -%global commit_date 20240721 +%global commit_date 20240827 %global snapshot_info %{commit_date}.%{shortcommit} %bcond_without qt6 diff --git a/anda/langs/go/albius/albius.spec b/anda/langs/go/albius/albius.spec index 1ce72ac161..037b5e8d56 100644 --- a/anda/langs/go/albius/albius.spec +++ b/anda/langs/go/albius/albius.spec @@ -1,6 +1,6 @@ %define debug_package %nil -%global commit cee36c6db378c380900fc7b901e2f7d0ea596cc0 -%global commit_date 20240724 +%global commit f7a1c8106dbc70020aa9e9df27efef81ed394139 +%global commit_date 20240811 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: albius diff --git a/anda/langs/go/xyproto-env/golang-github-xyproto-env.spec b/anda/langs/go/xyproto-env/golang-github-xyproto-env.spec index 82afcff3c7..77e39d77e2 100644 --- a/anda/langs/go/xyproto-env/golang-github-xyproto-env.spec +++ b/anda/langs/go/xyproto-env/golang-github-xyproto-env.spec @@ -4,7 +4,7 @@ # https://github.com/xyproto/env %global goipath github.com/xyproto/env -Version: 2.2.5 +Version: 2.5.0 %gometa -f @@ -15,7 +15,7 @@ Provide default values when fetching environment variables.} %global godocs README.md Name: golang-%{goname} -Release: 1%{?dist} +Release: 1%?dist Summary: Provide default values when fetching environment variables License: BSD-3-Clause diff --git a/anda/langs/nim/nim-nightly/nim-nightly.spec b/anda/langs/nim/nim-nightly/nim-nightly.spec index bd1fedbc2d..610e1e7f0a 100644 --- a/anda/langs/nim/nim-nightly/nim-nightly.spec +++ b/anda/langs/nim/nim-nightly/nim-nightly.spec @@ -1,8 +1,8 @@ %global csrc_commit 561b417c65791cd8356b5f73620914ceff845d10 -%global commit 469a6044c00ce657d2f543f292678b3c71e0b037 +%global commit 1244ffbf39e6d10abfd7f92b4e8f529e469408dc %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global ver 2.1.9 -%global commit_date 20240726 +%global ver 2.1.99 +%global commit_date 20240829 %global debug_package %nil Name: nim-nightly diff --git a/anda/langs/python/ruff/python3-ruff.spec b/anda/langs/python/ruff/python3-ruff.spec index 6cbfb90509..a54876dd77 100644 --- a/anda/langs/python/ruff/python3-ruff.spec +++ b/anda/langs/python/ruff/python3-ruff.spec @@ -1,7 +1,7 @@ %define debug_package %{nil} Name: python3-ruff -Version: 0.5.7 +Version: 0.6.2 Release: 1%?dist Summary: An extremely fast Python linter, written in Rust License: MIT diff --git a/anda/langs/rust/rnote/rnote.spec b/anda/langs/rust/rnote/rnote.spec index 1f908389a7..1a0893708c 100644 --- a/anda/langs/rust/rnote/rnote.spec +++ b/anda/langs/rust/rnote/rnote.spec @@ -1,3 +1,5 @@ +%global build_rustflags %build_rustflags -C link-arg=-fuse-ld=mold + Name: rnote Version: 0.11.0 Release: 1%?dist @@ -6,7 +8,7 @@ License: GPL-3.0 URL: https://github.com/flxzt/rnote Source0: %{url}/archive/refs/tags/v%version.tar.gz Requires: gtk4 -BuildRequires: cargo meson cmake libappstream-glib gcc-c++ pkgconfig(alsa) alsa-lib clang-devel python desktop-file-utils +BuildRequires: cargo meson cmake libappstream-glib gcc-c++ pkgconfig(alsa) alsa-lib clang-devel python desktop-file-utils mold BuildRequires: pkgconfig(glib-2.0) >= 2.66 BuildRequires: pkgconfig(gtk4) >= 4.7 BuildRequires: pkgconfig(libadwaita-1) >= 1.2 diff --git a/anda/langs/vala/vala-lint-nightly/vala-lint-nightly.spec b/anda/langs/vala/vala-lint-nightly/vala-lint-nightly.spec index 74db6063ff..d28f4ed86f 100644 --- a/anda/langs/vala/vala-lint-nightly/vala-lint-nightly.spec +++ b/anda/langs/vala/vala-lint-nightly/vala-lint-nightly.spec @@ -1,9 +1,9 @@ %global real_name vala-lint -%global commit 8ae2bb65fe66458263d94711ae4ddd978faece00 +%global commit 4ed1443c35a8a84445fb59292d539358365d8263 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240218 +%global commit_date 20240829 %global snapshot_info %{commit_date}.%{shortcommit} Name: vala-lint-nightly diff --git a/anda/lib/tdlib/tdlib-nightly.spec b/anda/lib/tdlib/tdlib-nightly.spec index 14eee3ef8f..9f8f547562 100644 --- a/anda/lib/tdlib/tdlib-nightly.spec +++ b/anda/lib/tdlib/tdlib-nightly.spec @@ -1,5 +1,5 @@ -%global commit 97ded01095246a3a693bc85bef4bca5d1af177dd -%global ver 1.8.33 +%global commit 9b6ff5863e5d0b2a07b50f4aa1a3344a51a1f80f +%global ver 1.8.35 %global commit_date 20240219 %global shortcommit %(c=%{commit}; echo ${c:0:7}) diff --git a/anda/misc/openbangla-keyboard/openbangla-keyboard-nightly.spec b/anda/misc/openbangla-keyboard/openbangla-keyboard-nightly.spec index de55e25547..a8e9afac27 100644 --- a/anda/misc/openbangla-keyboard/openbangla-keyboard-nightly.spec +++ b/anda/misc/openbangla-keyboard/openbangla-keyboard-nightly.spec @@ -1,6 +1,6 @@ %global ver 2.0.0 -%global commit c7aeeda40f528d647af0a019984897543ebb6d5e -%global commit_date 20240505 +%global commit c036b843513ead56c37463c7fde5875271751f22 +%global commit_date 20240817 %global shortcommit %(c=%{commit}; echo ${c:0:7}) Name: openbangla-keyboard-nightly diff --git a/anda/system/cros-keyboard-map/cros-keyboard-map.spec b/anda/system/cros-keyboard-map/cros-keyboard-map.spec index af99567b01..300f6139e6 100644 --- a/anda/system/cros-keyboard-map/cros-keyboard-map.spec +++ b/anda/system/cros-keyboard-map/cros-keyboard-map.spec @@ -1,69 +1,45 @@ -%global commit 5f56dd60b256061a036e5f5b494da570a299cdee -%global commit_date 20240708 -%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global commit_date 20240824 + +%global tree_commit b2e69368f96bdf7562dc1a95a0d863c794756842 +%global tree_shortcommit %(c=%{tree_commit}; echo ${c:0:7}) + +%global um_commit 46892acafb2fff3f3ace425d4694382c92645feb +%global um_shortcommit %(c=%{um_commit}; echo ${c:0:7}) + %global debug_package %{nil} %define __os_install_post %{nil} Name: cros-keyboard-map -Version: %commit_date.%shortcommit +Version: %commit_date.%tree_shortcommit.%um_shortcommit Release: 1%?dist -License: BSD-3-Clause +License: BSD-3-Clause and GPLv3 Summary: Utility to generate keyd configurations for use on Chromebooks -URL: https://github.com/WeirdTreeThing/cros-keyboard-map -Source0: https://github.com/WeirdTreeThing/cros-keyboard-map/archive/%commit/cros-keyboard-map-%commit.tar.gz +URL: https://github.com/Ultramarine-Linux/cros-keyboard-map +Source0: https://github.com/WeirdTreeThing/cros-keyboard-map/archive/%{tree_commit}/cros-keyboard-map-%{tree_commit}.tar.gz +Source1: https://github.com/Ultramarine-Linux/cros-keyboard-map/archive/%{um_commit}/cros-keyboard-map-%{um_commit}.tar.gz %{?systemd_requires} BuildRequires: systemd-rpm-macros Requires: keyd python3 python3-libfdt %description -Set of tools designed to help develop and debug software and firmware on Intel platforms with AudioDSP onboard. - -Related to alsa-utils which is also set of utilities but targets AdvancedLinuxSoundArchitecture (ALSA) audience in more general fashion. +Bash script and systemd service to apply WeirdTreeThing's Chromebook keyboard maps. %prep -%autosetup -n cros-keyboard-map-%commit +%autosetup -n cros-keyboard-map-%tree_commit +tar --strip-components=1 -zxvf %{SOURCE1} %install -mkdir -p %buildroot/etc/cros-keyboard-map/configs -install -Dm755 cros-keyboard-map.py %buildroot/etc/cros-keyboard-map/cros-keyboard-map.py -cp configs/* %buildroot/etc/cros-keyboard-map/configs - -mkdir -p %buildroot/usr/bin -tee %buildroot/usr/bin/um-generate-cros-keymap < /dev/null) -then - cp /etc/cros-keyboard-map/configs/cros-pixel.conf /etc/cros-keyboard-map/current.config -elif (grep -E "^(Sarien|Arcada)$" /sys/class/dmi/id/product_name &> /dev/null) -then - cp /etc/cros-keyboard-map/configs/cros-sarien.conf /etc/cros-keyboard-map/current.config -else - python3 /etc/cros-keyboard-map/cros-keyboard-map.py --file /etc/cros-keyboard-map/current.config -fi - -mkdir -p /etc/keyd -if [[ -f /etc/keyd/default.conf ]]; then - rm /etc/keyd/default.conf -fi -ln -s /etc/cros-keyboard-map/current.config /etc/keyd/default.conf -EOF - -mkdir -p %buildroot/etc/systemd/system -tee %buildroot/etc/systemd/system/cros-keyboard-map.service < +- Split off into seperate git repo. * Sat May 4 2024 Owen-sz - Initial package. diff --git a/anda/system/cros-keyboard-map/update.rhai b/anda/system/cros-keyboard-map/update.rhai index 46a9eeca30..aef26dd922 100644 --- a/anda/system/cros-keyboard-map/update.rhai +++ b/anda/system/cros-keyboard-map/update.rhai @@ -1,4 +1,5 @@ if filters.contains("nightly") { + rpm.global("tree_commit", gh_commit("WeirdTreeThing/cros-keyboard-map")); rpm.global("commit", gh_commit("WeirdTreeThing/cros-keyboard-map")); if rpm.changed() { rpm.release(); diff --git a/anda/system/duet-quirks/anda.hcl b/anda/system/duet-quirks/anda.hcl new file mode 100644 index 0000000000..1ad2b50c84 --- /dev/null +++ b/anda/system/duet-quirks/anda.hcl @@ -0,0 +1,8 @@ +project pkg { + rpm { + spec = "duet-quirks.spec" + } + labels { + nightly = "1" + } +} diff --git a/anda/system/duet-quirks/duet-quirks.spec b/anda/system/duet-quirks/duet-quirks.spec new file mode 100644 index 0000000000..fc1ff4c313 --- /dev/null +++ b/anda/system/duet-quirks/duet-quirks.spec @@ -0,0 +1,39 @@ +%global commit_date 20240824 +%global commit d22b585a81b8645f1d660b4db22c95231c4301cf +%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global debug_package %{nil} +%define __os_install_post %{nil} + +Name: duet-quirks +Version: %commit_date.%shortcommit +Release: 1%?dist + +License: CC-BY-SA-4.0 +Summary: Quirks for the Lenovo Duet Chromebooks on Ultramarine Linux +URL: https://github.com/Ultramarine-Linux/duet-quirks +Source0: https://github.com/Ultramarine-Linux/duet-quirks/archive/%{commit}/duet-quirks-%{commit}.tar.gz + +Requires: udev libinput + +BuildArch: noarch + +%description +Quirks for the Lenovo Duet Chromebooks on Ultramarine Linux. +Including a libinput rule for trackpad configuration and a udev rule for display rotation. + +%prep +%autosetup -n duet-quirks-%commit + +%install +install -Dm644 udev/61-cros-ec-accel.rules %buildroot%{_sysconfdir}/udev/61-cros-ec-accel.rules +install -Dm644 libinput/local-overrides.quirks %buildroot%{_sysconfdir}/libinput/local-overrides.quirks + +%files +%doc README.md +%license LICENSE +%{_sysconfdir}/udev/61-cros-ec-accel.rules +%{_sysconfdir}/libinput/local-overrides.quirks + +%changelog +* Sat Aug 25 2024 junefish +- Initial package diff --git a/anda/system/duet-quirks/update.rhai b/anda/system/duet-quirks/update.rhai new file mode 100644 index 0000000000..8b4075effd --- /dev/null +++ b/anda/system/duet-quirks/update.rhai @@ -0,0 +1,7 @@ +if filters.contains("nightly") { + rpm.global("commit", gh_commit("Ultramarine-Linux/duet-quirks")); + if rpm.changed() { + rpm.release(); + rpm.global("commit_date", date()); + } +} diff --git a/anda/system/mesa-freeworld/mesa-freeworld.spec b/anda/system/mesa-freeworld/mesa-freeworld.spec index cf3d81b85f..338eaa5065 100644 --- a/anda/system/mesa-freeworld/mesa-freeworld.spec +++ b/anda/system/mesa-freeworld/mesa-freeworld.spec @@ -68,7 +68,6 @@ algorithms and decoding only VC1 algorithm. # todo: set to 1 when mesa 24.2 gets in the repos %global with_gallium_video 1 - #%%global vulkan_drivers swrast%%{?base_vulkan}%%{?intel_platform_vulkan}%%{?extra_platform_vulkan}%%{?with_nvk:,nouveau} Name: %{srcname}-freeworld diff --git a/anda/system/nvidia-patch/nvidia-patch.spec b/anda/system/nvidia-patch/nvidia-patch.spec index 732b84889a..b5e1c535df 100644 --- a/anda/system/nvidia-patch/nvidia-patch.spec +++ b/anda/system/nvidia-patch/nvidia-patch.spec @@ -1,7 +1,7 @@ %global debug_package %{nil} -%global commit c7221dd770279275a06f34e68b39b8d237ea9b7b +%global commit fc299168b83bacd317ceeaf3a850ecf2f1b9d66f %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240719 +%global commit_date 20240811 %global patches %{_datadir}/src/nvidia-patch diff --git a/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec b/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec index d7fb4d6309..a2da677c6d 100644 --- a/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec +++ b/anda/system/opentabletdriver-nightly/opentabletdriver-nightly.spec @@ -1,7 +1,7 @@ -%global commit a60fa0cfd06148fc0c62c12fc11d9b55e15cb656 +%global commit 61495b1de79419c76e10b7b6685318f2a6396ac8 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240819 -%global ver 0.6.4.0 +%global commit_date 20240824 +%global ver v0.6.4.0 # We aren't using Mono but RPM expected Mono %global __requires_exclude_from ^/usr/lib/opentabletdriver/.*$ diff --git a/anda/system/opentabletdriver/update.rhai b/anda/system/opentabletdriver/update.rhai index e63c83c787..6d5b82e96b 100644 --- a/anda/system/opentabletdriver/update.rhai +++ b/anda/system/opentabletdriver/update.rhai @@ -1,3 +1,3 @@ -# todo: Check latest .NET runtime version from Fedora repos and set macros accordingly +// todo: Check latest .NET runtime version from Fedora repos and set macros accordingly rpm.version(gh("OpenTabletDriver/OpenTabletDriver")); diff --git a/anda/tools/keyd/keyd.spec b/anda/tools/keyd/keyd.spec index 116fca4c7a..2c3380e6bf 100644 --- a/anda/tools/keyd/keyd.spec +++ b/anda/tools/keyd/keyd.spec @@ -1,5 +1,5 @@ Name: keyd -Version: 2.5.0 +Version: 2.4.3 Release: 1%?dist Summary: Key remapping daemon for linux URL: https://github.com/rvaiya/keyd @@ -21,6 +21,7 @@ git clone --depth 1 -b v%version %url . %install %make_install PREFIX=%_prefix install -Dm644 keyd.service %buildroot%_unitdir/keyd.service +sed -i 's@local/@@g' %buildroot%_unitdir/keyd.service %post %systemd_post keyd.service diff --git a/anda/tools/yt-dlp/yt-dlp-nightly.spec b/anda/tools/yt-dlp/yt-dlp-nightly.spec index 4d4a022ac9..d42b44ff06 100644 --- a/anda/tools/yt-dlp/yt-dlp-nightly.spec +++ b/anda/tools/yt-dlp/yt-dlp-nightly.spec @@ -1,8 +1,8 @@ #bcond_without tests -%global commit 28d485714fef88937c82635438afba5db81f9089 +%global commit ad9a8115aa29a1a95c961b16fcf129a228d98f50 %global shortcommit %(c=%{commit}; echo ${c:0:7}) -%global commit_date 20240726 -%global ver 2024.07.25 +%global commit_date 20240829 +%global ver 2024.08.06 Name: yt-dlp-nightly Version: %ver^%commit_date.%shortcommit