Merge branch 'testing' into unstable

This commit is contained in:
Kyle Gospodnetich 2024-08-05 22:19:47 -07:00
commit a31ec761d7
20 changed files with 12023 additions and 217 deletions

View File

@ -57,16 +57,6 @@ jobs:
echo "tag=${TAG}" >> $GITHUB_OUTPUT
- name: Set EXTRA_BOOT_PARAMS
id: generate-extra-params
shell: bash
run: |
EXTRA_BOOT_PARAMS=""
if [[ "${{ matrix.image_name }}" =~ "deck" ]]; then
EXTRA_BOOT_PARAMS="inst.resolution=1280x800"
fi
echo "extra-boot-params=${EXTRA_BOOT_PARAMS}" >> $GITHUB_OUTPUT
- name: Set Flatpaks Directory Shortname
id: generate-flatpak-dir-shortname
shell: bash
@ -110,8 +100,14 @@ jobs:
${image} /temp_flatpak_install_dir/script.sh
docker rmi ${image}
- name: Setup Bazzite Repo
id: setup-bazzite-repo
shell: bash
run: |
curl -Lo ${{ github.workspace }}/bazzite.repo https://copr.fedorainfracloud.org/coprs/kylegospo/bazzite/repo/fedora-${{ matrix.major_version }}/kylegospo-bazzite-fedora-${{ matrix.major_version }}.repo
- name: Build ISOs
uses: jasonn3/build-container-installer@v1.2.1
uses: jasonn3/build-container-installer@v1.2.2
id: build
with:
arch: x86_64
@ -128,7 +124,8 @@ jobs:
flatpak_remote_refs_dir: ${{ steps.generate-flatpak-dir-shortname.outputs.flatpak-dir-shortname }}
enable_flatpak_dependencies: "false"
extra_boot_params: ${{ steps.generate-extra-params.outputs.extra-boot-params }}
additional_templates: '/github/workspace/installer/lorax_templates/remove_root_password_prompt.tmpl'
additional_templates: '/github/workspace/installer/lorax_templates/remove_root_password_prompt.tmpl /github/workspace/installer/lorax_templates/set_default_user.tmpl'
repos: '/github/workspace/bazzite.repo /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/fedora-updates.repo'
- name: Move ISOs to Upload Directory
id: upload-directory

View File

@ -500,7 +500,8 @@ RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
RUN --mount=type=cache,dst=/var/cache/rpm-ostree \
if grep -q "kinoite" <<< "${BASE_IMAGE_NAME}"; then \
rpm-ostree install \
qt && \
qt \
krdp && \
rpm-ostree override remove \
plasma-welcome && \
rpm-ostree override replace \

View File

@ -0,0 +1 @@
append usr/share/anaconda/interactive-defaults.ks "\\nuser --name=bazzite --password=bazzite --plaintext --groups=wheel"

View File

@ -0,0 +1,31 @@
From d1424ea9ffa5d51d1cfa004b0861e345c4300902 Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Wed, 6 Mar 2024 17:26:45 -0800
Subject: [PATCH] bootupd: call bootupctl with --update-firmware
This is required to write an entry to the EFI boot manager,
which we ought to do (anaconda does it when installing the
bootloader itself). Without this, boot of the installed system
will only work if it's configured to try and boot from the
hard disk using the fallback path.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
.../modules/payloads/payload/rpm_ostree/installation.py | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/pyanaconda/modules/payloads/payload/rpm_ostree/installation.py b/pyanaconda/modules/payloads/payload/rpm_ostree/installation.py
index 0ac8583b78..f5ea666cf2 100644
--- a/pyanaconda/modules/payloads/payload/rpm_ostree/installation.py
+++ b/pyanaconda/modules/payloads/payload/rpm_ostree/installation.py
@@ -520,6 +520,7 @@ class ConfigureBootloader(Task):
"install",
"--auto",
"--write-uuid",
+ "--update-firmware",
"--device",
dev_data.path,
"/",
--
2.44.0

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,35 @@
diff -Naur a/pyanaconda/display.py b/pyanaconda/display.py
--- a/pyanaconda/display.py
+++ b/pyanaconda/display.py
@@ -237,6 +237,14 @@
:param str runres: a resolution specification string
:param gui_mode: an Anaconda display mode
"""
+
+ # Get product name
+ with open("/sys/devices/virtual/dmi/id/product_name") as f:
+ dmi = f.read().strip()
+
+ if "Jupiter" in dmi or "Galileo" in dmi:
+ runres = "1280x800"
+
if runres and gui_mode and not flags.usevnc:
set_x_resolution(runres)
diff -Naur a/pyanaconda/ui/gui/__init__.py b/pyanaconda/ui/gui/__init__.py
--- a/pyanaconda/ui/gui/__init__.py
+++ b/pyanaconda/ui/gui/__init__.py
@@ -576,6 +576,13 @@
if not primary_monitor:
return
+ with open("/sys/devices/virtual/dmi/id/product_name") as f:
+ dmi = f.read().strip()
+
+ if "Jupiter" in dmi or "Galileo" in dmi:
+ util.setenv("GDK_SCALE", "1")
+ return
+
monitor_geometry = primary_monitor.get_geometry()
monitor_scale = primary_monitor.get_scale_factor()
monitor_width_mm = primary_monitor.get_width_mm()

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,37 @@
/* Anaconda gtk style overrides for Fedora */
/* vendor-specific colors */
@define-color fedora #51a2da;
/* logo and sidebar classes */
/* The sidebar consists of three parts: a background, a logo, and a product logo,
* rendered in that order. The product logo is empty by default and is intended
* to be overridden by a stylesheet in product.img.
*/
.logo-sidebar {
background-image: url('/usr/share/anaconda/pixmaps/sidebar-bg.png');
background-color: @fedora;
background-repeat: no-repeat;
}
/* Add a logo to the sidebar */
.logo {
background-image: url('/usr/share/anaconda/pixmaps/sidebar-logo.png');
background-position: 50% 20px;
background-repeat: no-repeat;
background-color: transparent;
}
/* This is a placeholder to be filled by a product-specific logo. */
.product-logo {
background-image: none;
background-color: transparent;
}
AnacondaSpokeWindow #nav-box {
background-color: @fedora;
background-image: url('/usr/share/anaconda/pixmaps/topbar-bg.png');
background-repeat: repeat;
color: white;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -1,7 +1,7 @@
From c06cdd847679c930ee6197514970bc21f523e853 Mon Sep 17 00:00:00 2001
From e7a17c36620343d3bd21eba9c571f2551b8b69c0 Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 96484dc..2b5e9b3 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 a2e1985..43b9023 100644
--- a/src/wlserver.cpp
+++ b/src/wlserver.cpp
@@ -73,6 +73,7 @@
static LogScope wl_log("wlserver");
@@ -77,6 +77,7 @@ using namespace std::literals;
extern gamescope::ConVar<bool> cv_drm_debug_disable_explicit_sync;
//#define GAMESCOPE_SWAPCHAIN_DEBUG
+gamescope::ConVar<bool> 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
@@ -2598,6 +2599,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 7a8c155..0859a21 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 );
@@ -306,6 +306,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<bool> g_bPendingTouchMovement;
@ -101,10 +101,10 @@ index db7d491..da67bf7 100644
2.45.2
From 34f22c6a52dbed8662132e4bdfd8a29dd1b7825c Mon Sep 17 00:00:00 2001
From c781f3bea1940f76f28f4714ee4d10b9024909cd Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 2b5e9b3..4e63245 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 e4738f9..8fe13fd 100644
--- a/src/steamcompmgr.cpp
+++ b/src/steamcompmgr.cpp
@@ -349,6 +349,8 @@ bool g_bForceHDR10OutputDebug = false;
@@ -354,6 +354,8 @@ bool g_bForceHDR10OutputDebug = false;
gamescope::ConVar<bool> 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)
@@ -5364,6 +5366,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)
@@ -7210,6 +7219,8 @@ steamcompmgr_main(int argc, char **argv)
bForceWindowsFullscreen = true;
} else if (strcmp(opt_name, "hdr-enabled") == 0) {
cv_hdr_enabled = true;
@ -173,10 +173,10 @@ index 9ee265d..bec4268 100644
2.45.2
From 4c5657cca9a37fee0eee1d86ef3c2a6e5acef09c Mon Sep 17 00:00:00 2001
From 06ea33eeac6023ac32a4e89cfb6a704e4fd28e9b Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 <boukehaarsma23@gmail.com>
---
@ -187,10 +187,10 @@ Co-authored-by: Bouke Sybren Haarsma <boukehaarsma23@gmail.com>
4 files changed, 53 insertions(+), 1 deletion(-)
diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp
index 92f01ca..4c72dc1 100644
index ee2cbd3..f2a832d 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 4e63245..5e39e03 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -128,6 +128,7 @@ const struct option *gamescope_options = (struct option[]){
@ -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 43b9023..f554554 100644
--- a/src/wlserver.cpp
+++ b/src/wlserver.cpp
@@ -2530,6 +2530,29 @@ static void apply_touchscreen_orientation(double *x, double *y )
@@ -2560,6 +2560,29 @@ static void apply_touchscreen_orientation(double *x, double *y )
break;
}
@ -323,10 +323,10 @@ index 62da656..2998aed 100644
2.45.2
From 897032bb4b8d8d5c11d67f9844a09a604b2c4333 Mon Sep 17 00:00:00 2001
From 9e0fe1c9b9f82e63fb0255b32c1aefe3048c78e7 Mon Sep 17 00:00:00 2001
From: Bouke Sybren Haarsma <boukehaarsma23@gmail.com>
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,7 +335,7 @@ 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 6c86349..920c92f 100644
--- a/src/backend.h
+++ b/src/backend.h
@@ -17,6 +17,7 @@ struct wlr_buffer;
@ -346,7 +346,7 @@ index 9c2db15..046eb10 100644
namespace gamescope
{
@@ -213,6 +214,8 @@ namespace gamescope
@@ -218,6 +219,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 863b03f..a11f598 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 5e39e03..2ac48ca 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -129,6 +129,7 @@ const struct option *gamescope_options = (struct option[]){
@ -419,10 +419,10 @@ index fac3df2..8bea38c 100644
2.45.2
From 2178f85676ba25434e8c39adc3848e3f7355acec Mon Sep 17 00:00:00 2001
From c3da8fe380e2f7c8c7152032d496d89eebd57ff6 Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 f554554..43b9023 100644
--- a/src/wlserver.cpp
+++ b/src/wlserver.cpp
@@ -2530,29 +2530,6 @@ static void apply_touchscreen_orientation(double *x, double *y )
@@ -2560,29 +2560,6 @@ static void apply_touchscreen_orientation(double *x, double *y )
break;
}
@ -467,10 +467,10 @@ index 2998aed..62da656 100644
2.45.2
From 261124a5a85ad80b0d7b15926f230bacbca21b22 Mon Sep 17 00:00:00 2001
From 7db5dc7e8ed1f1bfdae777c4c7f30928f3d96461 Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 f2a832d..32e8a78 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 2ac48ca..28bcc6f 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -132,6 +132,7 @@ const struct option *gamescope_options = (struct option[]){
@ -579,10 +579,10 @@ index 5492cae..0207a51 100644
2.45.2
From db4804880ea0fdf810979aea3153e2f45dc97bfe Mon Sep 17 00:00:00 2001
From 01eff9f4c19dbaa336faf4faf504b5bd9fde8d1c Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 ++++++++++++
@ -621,10 +621,10 @@ index 012c48c..eab8a84 100644
</interface>
</protocol>
diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp
index e4caebb..70d5cdf 100644
index 32e8a78..f952b65 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,7 +635,7 @@ index e4caebb..70d5cdf 100644
{
m_ChosenOrientation = g_DesiredInternalOrientation;
}
@@ -2935,6 +2937,25 @@ bool drm_update_color_mgmt(struct drm_t *drm)
@@ -2961,6 +2963,25 @@ bool drm_update_color_mgmt(struct drm_t *drm)
return true;
}
@ -662,10 +662,10 @@ index e4caebb..70d5cdf 100644
{
drm->pending.mode_id = 0;
diff --git a/src/gamescope_shared.h b/src/gamescope_shared.h
index ed30d8c..d04a907 100644
index a11f598..c1f8c79 100644
--- a/src/gamescope_shared.h
+++ b/src/gamescope_shared.h
@@ -62,6 +62,16 @@ enum GamescopePanelOrientation
@@ -65,6 +65,16 @@ enum GamescopePanelOrientation
GAMESCOPE_PANEL_ORIENTATION_AUTO,
};
@ -679,11 +679,11 @@ index ed30d8c..d04a907 100644
+ GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_AUTO,
+};
+
// Disable partial composition for now until we get
// composite priorities working in libliftoff + also
// use the proper libliftoff composite plane system.
struct GamescopeTimelinePoint
{
struct wlr_drm_syncobj_timeline *pTimeline = nullptr;
diff --git a/src/main.cpp b/src/main.cpp
index a9e1969..4469ac1 100644
index 28bcc6f..ab16459 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -397,6 +397,7 @@ static gamescope::GamescopeScreenType force_panel_type(const char *str)
@ -695,10 +695,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 43b9023..e6d6a20 100644
--- a/src/wlserver.cpp
+++ b/src/wlserver.cpp
@@ -1101,6 +1101,55 @@ static void gamescope_control_take_screenshot( struct wl_client *client, struct
@@ -1119,6 +1119,55 @@ static void gamescope_control_take_screenshot( struct wl_client *client, struct
} );
}
@ -754,7 +754,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 = {
@@ -1128,6 +1177,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,
@ -766,10 +766,10 @@ index 62da656..96bb7fc 100644
2.45.2
From ef9f07b932c8be1d391b9688b1b31edbb73e86ce Mon Sep 17 00:00:00 2001
From 69dcb30139aae557093515722ddc5d47960a9c06 Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 +791,7 @@ index eab8a84..7f5578b 100644
<entry name="normal" value="1"/>
<entry name="left" value="2"/>
diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp
index 70d5cdf..7af994e 100644
index f952b65..d2e1e98 100644
--- a/src/Backends/DRMBackend.cpp
+++ b/src/Backends/DRMBackend.cpp
@@ -318,6 +318,9 @@ namespace gamescope
@ -805,10 +805,10 @@ 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 c1f8c79..a11f598 100644
--- a/src/gamescope_shared.h
+++ b/src/gamescope_shared.h
@@ -62,16 +62,6 @@ enum GamescopePanelOrientation
@@ -65,16 +65,6 @@ enum GamescopePanelOrientation
GAMESCOPE_PANEL_ORIENTATION_AUTO,
};
@ -822,14 +822,14 @@ index d04a907..ed30d8c 100644
- GAMESCOPE_PANEL_EXTERNAL_ORIENTATION_AUTO,
-};
-
// Disable partial composition for now until we get
// composite priorities working in libliftoff + also
// use the proper libliftoff composite plane system.
struct GamescopeTimelinePoint
{
struct wlr_drm_syncobj_timeline *pTimeline = nullptr;
diff --git a/src/wlserver.cpp b/src/wlserver.cpp
index 96bb7fc..959f63b 100644
index e6d6a20..666498e 100644
--- a/src/wlserver.cpp
+++ b/src/wlserver.cpp
@@ -74,6 +74,8 @@ static LogScope wl_log("wlserver");
@@ -78,6 +78,8 @@ extern gamescope::ConVar<bool> cv_drm_debug_disable_explicit_sync;
//#define GAMESCOPE_SWAPCHAIN_DEBUG
gamescope::ConVar<bool> cv_touch_gestures( "enable_touch_gestures", false, "Enable/Disable the usage of touch gestures" );
@ -838,7 +838,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
@@ -1125,43 +1127,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 +914,7 @@ index 96bb7fc..959f63b 100644
}
}
//drm_set_orientation(&g_DRM, isRotated);
@@ -2554,34 +2556,61 @@ const std::shared_ptr<wlserver_vk_swapchain_feedback>& wlserver_surface_swapchai
@@ -2584,34 +2586,61 @@ const std::shared_ptr<wlserver_vk_swapchain_feedback>& wlserver_surface_swapchai
/* Handle the orientation of the touch inputs */
static void apply_touchscreen_orientation(double *x, double *y )
{
@ -1006,20 +1006,20 @@ index 96bb7fc..959f63b 100644
2.45.2
From 8950969d8c62982f03bf8452a503276960f2fa33 Mon Sep 17 00:00:00 2001
From 7cd3173fc56f3f3e6bcc3af121fc7eb2a7f65d26 Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 d2e1e98..8a739ff 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 )
{
@ -1036,30 +1036,29 @@ index 7af994e..30150fb 100644
2.45.2
From 3e51d6f0ae7603e322024783143329dc46835901 Mon Sep 17 00:00:00 2001
From 5652820c268a3632653034ef5b6d6a820b07aad4 Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 666498e..236f8d7 100644
--- a/src/wlserver.cpp
+++ b/src/wlserver.cpp
@@ -71,7 +71,8 @@
@@ -71,6 +71,8 @@
#include <set>
static LogScope wl_log("wlserver");
-
+bool pending_gesture = false;
+bool pending_osk = false;
//#define GAMESCOPE_SWAPCHAIN_DEBUG
gamescope::ConVar<bool> 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 )
using namespace std::literals;
@@ -439,6 +441,39 @@ void wlserver_open_steam_menu( bool qam )
XTestFakeKeyEvent(server->get_xdisplay(), XKeysymToKeycode( server->get_xdisplay(), XK_Control_L ), False, CurrentTime);
}
@ -1099,7 +1098,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
@@ -2679,32 +2714,46 @@ void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool
if ( bAlwaysWarpCursor )
wlserver_mousewarp( tx, ty, time, false );
@ -1170,20 +1169,20 @@ index 959f63b..131cd72 100644
2.45.2
From d25a36dabc8e1d8144413980d915d0e71d313434 Mon Sep 17 00:00:00 2001
From 0897536808301c73f0c694cc21e923c569e828a7 Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 8fe13fd..c29403d 100644
--- a/src/steamcompmgr.cpp
+++ b/src/steamcompmgr.cpp
@@ -7175,7 +7175,7 @@ steamcompmgr_main(int argc, char **argv)
@@ -7219,7 +7219,7 @@ steamcompmgr_main(int argc, char **argv)
bForceWindowsFullscreen = true;
} else if (strcmp(opt_name, "hdr-enabled") == 0) {
cv_hdr_enabled = true;
@ -1196,10 +1195,10 @@ index bec4268..10c0a75 100644
2.45.2
From 6d6afedd56a3f7b578cac1af7eaf93af931e0500 Mon Sep 17 00:00:00 2001
From 044e5d20ddac5b8144e1937a2e0411189090e82a Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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,7 +1206,7 @@ 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 236f8d7..a900857 100644
--- a/src/wlserver.cpp
+++ b/src/wlserver.cpp
@@ -71,7 +71,8 @@
@ -1218,9 +1217,9 @@ index 131cd72..9afe488 100644
+bool pending_gesture_x = false;
+bool pending_gesture_y = false;
bool pending_osk = false;
//#define GAMESCOPE_SWAPCHAIN_DEBUG
gamescope::ConVar<bool> 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 )
using namespace std::literals;
@@ -2678,6 +2679,16 @@ static void apply_touchscreen_orientation(double *x, double *y )
*y = ty;
}
@ -1237,7 +1236,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
@@ -2716,43 +2727,55 @@ void wlserver_touchmotion( double x, double y, int touch_id, uint32_t time, bool
if ( cv_touch_gestures )
{
@ -1316,10 +1315,10 @@ index 131cd72..9afe488 100644
2.45.2
From 58e24b2f2ac33eb2388ef734835c6b02e437e563 Mon Sep 17 00:00:00 2001
From 9eae1549e5a539dd2612ab5ca9581ce59e8b1f42 Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 +1327,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 a900857..ee9f9d0 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
@@ -1202,8 +1202,9 @@ static void gamescope_control_rotate_display( struct wl_client *client, struct w
wl_log.errorf("Invalid target orientation selected");
}
}
@ -1344,10 +1343,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 0859a21..31fca64 100644
--- a/src/wlserver.hpp
+++ b/src/wlserver.hpp
@@ -294,7 +294,8 @@ extern std::atomic<bool> g_bPendingTouchMovement;
@@ -309,7 +309,8 @@ extern std::atomic<bool> g_bPendingTouchMovement;
extern gamescope::ConVar<bool> cv_touch_gestures;
void wlserver_open_steam_menu( bool qam );
@ -1361,10 +1360,10 @@ index da67bf7..688d05c 100644
2.45.2
From 768e5689e12c2f57766d27d72b4fad03d54fc01c Mon Sep 17 00:00:00 2001
From 027b3a3b5940a8294c383c65e112247e63f2bcd8 Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 +1371,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 8a739ff..0866bb1 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 +1401,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 +1409,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
{
@ -1422,20 +1421,20 @@ index 30150fb..1a2668f 100644
2.45.2
From d6e4cf239f0f2113d1f3071a8d4766a810497617 Mon Sep 17 00:00:00 2001
From beab0c8c80c3700d73cddd6806f15893969f0b40 Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 0866bb1..cdd600f 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)) {
@ -1448,10 +1447,10 @@ index 1a2668f..825812e 100644
2.45.2
From 8983b3621dd81d4633a50a798b7794c6ae9d693b Mon Sep 17 00:00:00 2001
From dd024170f46671f390091c9b4833d5563dd16251 Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 +1459,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 cdd600f..bc4746b 100644
--- a/src/Backends/DRMBackend.cpp
+++ b/src/Backends/DRMBackend.cpp
@@ -318,13 +318,20 @@ namespace gamescope
@ -1488,7 +1487,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 +1503,10 @@ index 825812e..2668ad7 100644
m_ChosenOrientation = g_DesiredExternalOrientation;
}
diff --git a/src/wlserver.cpp b/src/wlserver.cpp
index e963bea..74d8209 100644
index ee9f9d0..146088a 100644
--- a/src/wlserver.cpp
+++ b/src/wlserver.cpp
@@ -2596,29 +2596,57 @@ static void apply_touchscreen_orientation(double *x, double *y )
@@ -2627,29 +2627,57 @@ static void apply_touchscreen_orientation(double *x, double *y )
double ty = 0;
// Use internal screen always for orientation purposes.
@ -1591,10 +1590,10 @@ index e963bea..74d8209 100644
2.45.2
From 57057c9e5dc4ac026259726145d5b6e480368699 Mon Sep 17 00:00:00 2001
From b77e5214db01ab13c0a01df5a11c2631ff8a1154 Mon Sep 17 00:00:00 2001
From: Matthew Anderson <ruinairas1992@gmail.com>
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 +1603,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 bc4746b..19819d4 100644
--- a/src/Backends/DRMBackend.cpp
+++ b/src/Backends/DRMBackend.cpp
@@ -56,6 +56,7 @@ static constexpr bool k_bUseCursorPlane = false;
@ -1632,7 +1631,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 +1653,10 @@ index 2668ad7..9df20ae 100644
m_ChosenOrientation = g_DesiredInternalOrientation;
}
diff --git a/src/wlserver.cpp b/src/wlserver.cpp
index 74d8209..3d4b239 100644
index 146088a..cbaf89a 100644
--- a/src/wlserver.cpp
+++ b/src/wlserver.cpp
@@ -2600,26 +2600,29 @@ static void apply_touchscreen_orientation(double *x, double *y )
@@ -2631,26 +2631,29 @@ static void apply_touchscreen_orientation(double *x, double *y )
{
if ( g_ForcedScreenType == gamescope::GAMESCOPE_SCREEN_TYPE_EXTERNAL )
{
@ -1707,10 +1706,10 @@ index 74d8209..3d4b239 100644
}
else
diff --git a/src/wlserver.hpp b/src/wlserver.hpp
index 688d05c..ae55963 100644
index 31fca64..82eb0e5 100644
--- a/src/wlserver.hpp
+++ b/src/wlserver.hpp
@@ -296,6 +296,7 @@ extern gamescope::ConVar<bool> cv_touch_gestures;
@@ -311,6 +311,7 @@ extern gamescope::ConVar<bool> 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;
@ -1722,17 +1721,17 @@ index 688d05c..ae55963 100644
2.45.2
From 41242b5ee7fa33cae22f30f5bcf5e27169bd8145 Mon Sep 17 00:00:00 2001
From 7508322c78f06e1fe67ccfeb0abb733f4661126b Mon Sep 17 00:00:00 2001
From: Bouke Sybren Haarsma <boukehaarsma23@gmail.com>
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 ab16459..58c77e5 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -465,6 +465,7 @@ static enum gamescope::GamescopeBackend parse_backend_name(const char *str)
@ -1747,10 +1746,10 @@ index 4469ac1..e455225 100644
2.45.2
From e528844eb590f8183fdfffaf9a7af39f33dc2213 Mon Sep 17 00:00:00 2001
From d8b9484c8468f4a31556af8903f03cc428982eef Mon Sep 17 00:00:00 2001
From: Bouke Sybren Haarsma <boukehaarsma23@gmail.com>
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 +1757,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 c29403d..cd6e690 100644
--- a/src/steamcompmgr.cpp
+++ b/src/steamcompmgr.cpp
@@ -1579,7 +1579,7 @@ bool MouseCursor::getTexture()
@@ -1610,7 +1610,7 @@ bool MouseCursor::getTexture()
{
pixels[i * image->width + j] = image->pixels[i * image->width + j];
}
@ -1770,7 +1769,7 @@ index 10c0a75..1bc9008 100644
std::vector<uint32_t> 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)
@@ -2290,7 +2290,7 @@ paint_all(bool async)
}
}
}
@ -1779,7 +1778,7 @@ index 10c0a75..1bc9008 100644
int nOldLayerCount = frameInfo.layerCount;
uint32_t flags = 0;
@@ -2265,7 +2265,7 @@ paint_all(bool async)
@@ -2298,7 +2298,7 @@ paint_all(bool async)
flags |= PaintWindowFlag::BasePlane;
paint_window(w, w, &frameInfo, global_focus.cursor, flags);
update_touch_scaling( &frameInfo );
@ -1788,7 +1787,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)
@@ -2311,7 +2311,7 @@ paint_all(bool async)
float opacityScale = g_bPendingFade
? 0.0f
: ((currentTime - fadeOutStartTime) / (float)g_FadeOutDuration);
@ -1797,7 +1796,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)
@@ -2385,34 +2385,6 @@ paint_all(bool async)
if ( overlay == global_focus.inputFocusWindow )
update_touch_scaling( &frameInfo );
}
@ -1832,7 +1831,7 @@ index 10c0a75..1bc9008 100644
if (notification)
{
@@ -2957,7 +2929,7 @@ win_maybe_a_dropdown( steamcompmgr_win_t *w )
@@ -2994,7 +2966,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 +1840,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 )
@@ -3009,12 +2981,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 +1855,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
@@ -3106,7 +3078,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 +1864,7 @@ index 10c0a75..1bc9008 100644
static bool
pick_primary_focus_and_override(focus_t *out, Window focusControlWindow, const std::vector<steamcompmgr_win_t*>& vecPossibleFocusWindows, bool globalFocus, const std::vector<uint32_t>& ctxFocusControlAppIDs)
@@ -3210,7 +3182,7 @@ found:;
@@ -3247,7 +3219,7 @@ found:;
if ( focus )
{
@ -1874,7 +1873,7 @@ index 10c0a75..1bc9008 100644
out->focusWindow = focus;
else
focus->outdatedInteractiveFocus = true;
@@ -3253,9 +3225,9 @@ found:;
@@ -3290,9 +3262,9 @@ found:;
override_focus = fake_override;
goto found2;
}
@ -1886,7 +1885,7 @@ index 10c0a75..1bc9008 100644
found2:;
resolveTransientOverrides( true );
}
@@ -4514,7 +4486,7 @@ finish_destroy_win(xwayland_ctx_t *ctx, Window id, bool gone)
@@ -4554,7 +4526,7 @@ finish_destroy_win(xwayland_ctx_t *ctx, Window id, bool gone)
{
if (gone)
finish_unmap_win (ctx, w);
@ -1895,7 +1894,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)
@@ -4611,7 +4583,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 +1903,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)
@@ -5220,7 +5192,7 @@ handle_property_notify(xwayland_ctx_t *ctx, XPropertyEvent *ev)
{
get_win_type(ctx, w);
MakeFocusDirty();
@ -1913,7 +1912,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 )
@@ -6130,7 +6102,7 @@ void handle_done_commits_xdg( bool vblank, uint64_t vblank_idx )
commits_before_their_time.push_back( entry );
continue;
}
@ -1922,7 +1921,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)
@@ -6983,7 +6955,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 +1930,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()
@@ -7748,7 +7720,7 @@ void steamcompmgr_send_frame_done_to_focus_window()
{
wlserver_lock();
wlserver_send_frame_done( global_focus.focusWindow->xwayland().surface.main_surface , &now );
@ -1944,20 +1943,20 @@ index 10c0a75..1bc9008 100644
2.45.2
From 1dbcfed76f4b80d8a9f6570819b5af7917c786fc Mon Sep 17 00:00:00 2001
From 7eac5235caa7cb6664f637017879af95cde34ad7 Mon Sep 17 00:00:00 2001
From: Kyle Gospodnetich <me@kylegospodneti.ch>
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 19819d4..476efef 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 );
@ -1970,20 +1969,20 @@ index ff1858b..f5a452e 100644
2.45.2
From 3b0408f6ec7307e7a38f2c795b932d0dc05f2d72 Mon Sep 17 00:00:00 2001
From 6db019cb96bde2d961d0408170817354915a51f5 Mon Sep 17 00:00:00 2001
From: Kyle Gospodnetich <me@kylegospodneti.ch>
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 476efef..cf2a613 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 );

View File

@ -1,35 +0,0 @@
From e31b8dea137d2cedd4cf71fede560feb2ad3ffc5 Mon Sep 17 00:00:00 2001
From: Joshua Ashton <joshua@froggi.es>
Date: Fri, 2 Aug 2024 21:11:11 +0100
Subject: [PATCH] DRMBackend: Fix mode fallback on connector changes
---
src/Backends/DRMBackend.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/Backends/DRMBackend.cpp b/src/Backends/DRMBackend.cpp
index 2712994ef..ee2cbd3d9 100644
--- a/src/Backends/DRMBackend.cpp
+++ b/src/Backends/DRMBackend.cpp
@@ -1040,6 +1040,9 @@ static bool setup_best_connector(struct drm_t *drm, bool force, bool initial)
return false;
}
+ // Don't allow rollback of mode_id after connector change
+ drm->current.mode_id = drm->pending.mode_id;
+
const struct wlserver_output_info wlserver_output_info = {
.description = description,
.phys_width = (int) best->GetModeConnector()->mmWidth,
@@ -2876,6 +2879,11 @@ bool drm_set_connector( struct drm_t *drm, gamescope::CDRMConnector *conn )
return false;
}
+ // If we are changing connector, zero out the current and pending mode IDs.
+ // So we don't try to use one mode from the old connector on the new one if we roll back.
+ drm->pending.mode_id = nullptr;
+ drm->current.mode_id = nullptr;
+
drm->pConnector = conn;
drm->needs_modeset = true;

View File

@ -2,11 +2,12 @@
%global _default_patch_fuzz 2
%global build_timestamp %(date +"%Y%m%d")
%global toolchain clang
%global gamescope_tag 3.14.26
Name: gamescope
Version: 100.%{gamescope_tag}
Release: 20.bazzite
Release: 21.bazzite
Summary: Micro-compositor for video games on Wayland
License: BSD
@ -15,25 +16,25 @@ URL: https://github.com/ValveSoftware/gamescope
# Create stb.pc to satisfy dependency('stb')
Source0: stb.pc
Patch0: 0001-cstdint.patch
# https://github.com/ValveSoftware/gamescope
Patch0: upstream.patch
Patch1: 0001-cstdint.patch
# https://github.com/ChimeraOS/gamescope
Patch1: chimeraos.patch
Patch2: chimeraos.patch
# https://hhd.dev/
Patch2: disable-steam-touch-click-atom.patch
Patch3: v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch
Patch3: disable-steam-touch-click-atom.patch
Patch4: v2-0001-always-send-ctrl-1-2-to-steam-s-wayland-session.patch
# https://github.com/ValveSoftware/gamescope/issues/1398
Patch4: drm-Separate-BOE-and-SDC-OLED-Deck-panel-rates.patch
Patch5: drm-Separate-BOE-and-SDC-OLED-Deck-panel-rates.patch
# https://github.com/ValveSoftware/gamescope/pull/1444
Patch5: 1444.patch
# https://github.com/ValveSoftware/gamescope/commit/e31b8dea137d2cedd4cf71fede560feb2ad3ffc5
Patch6: e31b8dea137d2cedd4cf71fede560feb2ad3ffc5.patch
Patch6: 1444.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
@ -114,7 +115,11 @@ sed -i 's^../thirdparty/SPIRV-Headers/include/spirv/^/usr/include/spirv/^' src/m
%build
cd gamescope
export PKG_CONFIG_PATH=pkgconfig
%if %{__isa_bits} == 64
%meson -Dpipewire=enabled -Dinput_emulation=enabled -Ddrm_backend=enabled -Drt_cap=enabled -Davif_screenshots=enabled -Dsdl2_backend=enabled
%else
%meson -Denable_gamescope=false -Denable_gamescope_wsi_layer=true
%endif
%meson_build
%install
@ -124,10 +129,12 @@ cd gamescope
%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
%endif
%files libs
%{_libdir}/libVkLayer_FROG_gamescope_wsi_*.so

File diff suppressed because it is too large Load Diff

View File

@ -66,7 +66,7 @@
Name: mesa
Summary: Mesa graphics libraries
%global ver 24.1.4
%global ver 24.1.5
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)}
Release: 100.bazzite.{{{ git_dir_version }}}
License: MIT AND BSD-3-Clause AND SGI-B-2.0

View File

@ -3,6 +3,7 @@
%global build_timestamp %(date +"%Y%m%d")
%global rel_build git.%{build_timestamp}.%{shortcommit}%{?dist}
%define _disable_source_fetch 0
%global toolchain clang
Name: scx-scheds
Version: 1.0.1
@ -13,7 +14,7 @@ License: GPL=2.0
URL: https://github.com/sched-ext/scx
Source0: %{URL}/archive/%{commit}.tar.gz
BuildRequires: gcc
BuildRequires: clang
BuildRequires: git
BuildRequires: meson >= 1.2
BuildRequires: python

View File

@ -3,6 +3,7 @@
set -oue pipefail
IMAGE_PRETTY_NAME="Bazzite"
IMAGE_LIKE="rhel centos fedora bluefin aurora nobara ultramarine"
HOME_URL="https://bazzite.gg"
DOCUMENTATION_URL="https://docs.bazzite.gg"
SUPPORT_URL="https://discord.bazzite.gg"
@ -46,7 +47,7 @@ EOF
# OS Release File
sed -i "s/^VARIANT_ID=.*/VARIANT_ID=$IMAGE_NAME/" /usr/lib/os-release
sed -i "s/^PRETTY_NAME=.*/PRETTY_NAME=\"Bazzite (FROM Fedora ${BASE_IMAGE_NAME^} $FEDORA_MAJOR_VERSION)\"/" /usr/lib/os-release
sed -i "s/^PRETTY_NAME=.*/PRETTY_NAME=\"Bazzite $FEDORA_MAJOR_VERSION (FROM Fedora ${BASE_IMAGE_NAME^})\"/" /usr/lib/os-release
sed -i "s/^NAME=.*/NAME=\"$IMAGE_PRETTY_NAME\"/" /usr/lib/os-release
sed -i "s|^HOME_URL=.*|HOME_URL=\"$HOME_URL\"|" /usr/lib/os-release
sed -i "s|^DOCUMENTATION_URL=.*|DOCUMENTATION_URL=\"$DOCUMENTATION_URL\"|" /usr/lib/os-release
@ -54,7 +55,7 @@ sed -i "s|^SUPPORT_URL=.*|SUPPORT_URL=\"$SUPPORT_URL\"|" /usr/lib/os-release
sed -i "s|^BUG_REPORT_URL=.*|BUG_REPORT_URL=\"$BUG_SUPPORT_URL\"|" /usr/lib/os-release
sed -i "s|^CPE_NAME=\"cpe:/o:fedoraproject:fedora|CPE_NAME=\"cpe:/o:universal-blue:${IMAGE_PRETTY_NAME,}|" /usr/lib/os-release
sed -i "s/^DEFAULT_HOSTNAME=.*/DEFAULT_HOSTNAME=\"${IMAGE_PRETTY_NAME,}\"/" /usr/lib/os-release
sed -i "s/^ID=fedora/ID=${IMAGE_PRETTY_NAME,}\nID_LIKE=\"rhel centos fedora\"/" /usr/lib/os-release
sed -i "s/^ID=fedora/ID=${IMAGE_PRETTY_NAME,}\nID_LIKE=\"${IMAGE_LIKE}\"/" /usr/lib/os-release
sed -i "s/^LOGO=.*/LOGO=$LOGO_ICON/" /usr/lib/os-release
sed -i "s/^ANSI_COLOR=.*/ANSI_COLOR=\"$LOGO_COLOR\"/" /usr/lib/os-release
sed -i "/^REDHAT_BUGZILLA_PRODUCT=/d; /^REDHAT_BUGZILLA_PRODUCT_VERSION=/d; /^REDHAT_SUPPORT_PRODUCT=/d; /^REDHAT_SUPPORT_PRODUCT_VERSION=/d" /usr/lib/os-release

View File

@ -6,6 +6,7 @@ brew "fd"
brew "gh"
brew "glab"
brew "rg"
brew "tealdeer"
brew "ugrep"
brew "yq"
brew "zoxide"
brew "zoxide"