mirror of
https://github.com/ublue-os/bazzite.git
synced 2025-02-09 18:40:24 +00:00
* chore: fixup deckhd patch (#1200) * Revert "chore: Add patch for libliftoff corruption issue" This reverts commit ebaa187b5ca99b8bbd47a7ddcbf34844aed2ea5a. * chore: Increase gamescope release version * Import latest changes from the btrfs deduplication script and update the method for reenabling rmlint simplifying the whole process --------- Co-authored-by: matte-schwartz <136293710+matte-schwartz@users.noreply.github.com> Co-authored-by: Kyle Gospodnetich <me@kylegospodneti.ch>
219 lines
8.5 KiB
Diff
219 lines
8.5 KiB
Diff
From 90f972dfb4de9c8245f6fc5370a294653de828cc Mon Sep 17 00:00:00 2001
|
|
From: Marco Rodolfi <marco.rodolfi@tuta.io>
|
|
Date: Thu, 2 May 2024 14:16:40 +0200
|
|
Subject: [PATCH 1/2] Rebase DHD on latest gamescope master
|
|
|
|
---
|
|
src/drm.cpp | 11 +++++++++--
|
|
src/gamescope_shared.h | 1 +
|
|
src/modegen.cpp | 34 ++++++++++++++++++++++++++++++----
|
|
3 files changed, 40 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/src/drm.cpp b/src/drm.cpp
|
|
index 511a571..6ee3bd3 100644
|
|
--- a/src/drm.cpp
|
|
+++ b/src/drm.cpp
|
|
@@ -2121,6 +2121,7 @@ namespace gamescope
|
|
( m_Mutable.szMakePNP == "WLC"sv && m_Mutable.szModel == "ANX7530 U"sv ) ||
|
|
( m_Mutable.szMakePNP == "ANX"sv && m_Mutable.szModel == "ANX7530 U"sv ) ||
|
|
( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "ANX7530 U"sv ) ||
|
|
+ ( m_Mutable.szMakePNP == "DHD"sv && m_Mutable.szModel == "DeckHD-1200p"sv ) ||
|
|
( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Jupiter"sv ) ||
|
|
( m_Mutable.szMakePNP == "VLV"sv && m_Mutable.szModel == "Galileo"sv );
|
|
const bool bLegionGoDisplay =
|
|
@@ -2132,6 +2133,7 @@ namespace gamescope
|
|
{
|
|
static constexpr uint32_t kPIDGalileoSDC = 0x3003;
|
|
static constexpr uint32_t kPIDGalileoBOE = 0x3004;
|
|
+ static constexpr uint32_t kPIDJupiterDHD = 0x4001;
|
|
|
|
if ( pProduct->product == kPIDGalileoSDC )
|
|
{
|
|
@@ -2120,6 +2122,10 @@ namespace gamescope
|
|
m_Mutable.eKnownDisplay = GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_BOE;
|
|
m_Mutable.ValidDynamicRefreshRates = std::span( s_kSteamDeckOLEDRates );
|
|
}
|
|
+ else if (pProduct-> product == kPIDJupiterDHD ) {
|
|
+ m_Mutable.eKnownDisplay = GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD_DHD;
|
|
+ m_Mutable.ValidDynamicRefreshRates = std::span( s_kSteamDeckLCDRates );
|
|
+ }
|
|
else
|
|
{
|
|
m_Mutable.eKnownDisplay = GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD;
|
|
@@ -2149,7 +2155,8 @@ namespace gamescope
|
|
drm_log.infof( "[colorimetry]: Steam Deck LCD detected. Using known colorimetry" );
|
|
m_Mutable.DisplayColorimetry = displaycolorimetry_steamdeck_measured;
|
|
}
|
|
- else
|
|
+ else if (m_Mutable.eKnownDisplay == GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_BOE ||
|
|
+ m_Mutable.eKnownDisplay == GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_SDC )
|
|
{
|
|
// Steam Deck OLED has calibrated chromaticity coordinates in the EDID
|
|
// for each unit.
|
|
@@ -2279,7 +2286,7 @@ namespace gamescope
|
|
.uMinContentLightLevel = nits_to_u16_dark( 0 ),
|
|
};
|
|
}
|
|
- else if ( eKnownDisplay == GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD )
|
|
+ else if ( eKnownDisplay == GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD || eKnownDisplay == GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD_DHD )
|
|
{
|
|
// Set up some HDR fallbacks for undocking
|
|
return BackendConnectorHDRInfo
|
|
diff --git a/src/gamescope_shared.h b/src/gamescope_shared.h
|
|
index f34174e59..3b11e82f6 100644
|
|
--- a/src/gamescope_shared.h
|
|
+++ b/src/gamescope_shared.h
|
|
@@ -8,6 +8,7 @@ namespace gamescope
|
|
{
|
|
GAMESCOPE_KNOWN_DISPLAY_UNKNOWN,
|
|
GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD, // Jupiter
|
|
+ GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD_DHD, // Jupiter Deck HD
|
|
GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_SDC, // Galileo SDC
|
|
GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_BOE, // Galileo BOE
|
|
};
|
|
diff --git a/src/modegen.cpp b/src/modegen.cpp
|
|
index d174c2d21..d08622555 100644
|
|
--- a/src/modegen.cpp
|
|
+++ b/src/modegen.cpp
|
|
@@ -293,6 +293,21 @@ unsigned int galileo_boe_vfp[] =
|
|
172,152,136,120,100,84,68,52,36,20,8
|
|
};
|
|
|
|
+#define JUPITER_BOE_PID 0x3001
|
|
+#define JUPITER_B_PID 0x3002
|
|
+#define JUPITER_HFP 40
|
|
+#define JUPITER_HSYNC 4
|
|
+#define JUPITER_HBP 0
|
|
+#define JUPITER_VFP 30
|
|
+#define JUPITER_VSYNC 4
|
|
+#define JUPITER_VBP 8
|
|
+#define JUPITER_DHD_PID 0x4001
|
|
+#define JUPITER_DHD_HFP 40
|
|
+#define JUPITER_DHD_HSYNC 20
|
|
+#define JUPITER_DHD_HBP 40
|
|
+#define JUPITER_DHD_VFP 18
|
|
+#define JUPITER_DHD_VSYNC 2
|
|
+#define JUPITER_DHD_VBP 20
|
|
#define GALILEO_MIN_REFRESH 45
|
|
#define GALILEO_SDC_PID 0x3003
|
|
#define GALILEO_SDC_VSYNC 1
|
|
@@ -344,7 +359,18 @@ void generate_fixed_mode(drmModeModeInfo *mode, const drmModeModeInfo *base, int
|
|
mode->vsync_end = mode->vsync_start + vsync;
|
|
mode->vtotal = mode->vsync_end + vbp;
|
|
} else {
|
|
- if ( eKnownDisplay == gamescope::GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD )
|
|
+ if ( eKnownDisplay == gamescope:: GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD_DHD ) {
|
|
+ mode->hdisplay = 1200;
|
|
+ mode->hsync_start = mode->hdisplay + JUPITER_DHD_HFP;
|
|
+ mode->hsync_end = mode->hsync_start + JUPITER_DHD_HSYNC;
|
|
+ mode->htotal = mode->hsync_end + JUPITER_DHD_HBP;
|
|
+
|
|
+ mode->vdisplay = 1920;
|
|
+ mode->vsync_start = mode->vdisplay + JUPITER_DHD_VFP;
|
|
+ mode->vsync_end = mode->vsync_start + JUPITER_DHD_VSYNC;
|
|
+ mode->vtotal = mode->vsync_end + JUPITER_DHD_VBP;
|
|
+ }
|
|
+ else if ( eKnownDisplay == gamescope::GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD )
|
|
{
|
|
mode->hdisplay = 800;
|
|
mode->hsync_start = 840;
|
|
@@ -352,9 +378,9 @@ void generate_fixed_mode(drmModeModeInfo *mode, const drmModeModeInfo *base, int
|
|
mode->htotal = 884;
|
|
|
|
mode->vdisplay = 1280;
|
|
- mode->vsync_start = 1310;
|
|
- mode->vsync_end = 1314;
|
|
- mode->vtotal = 1322;
|
|
+ mode->vsync_start = mode->vdisplay + JUPITER_VFP;
|
|
+ mode->vsync_end = mode->vsync_start + JUPITER_VSYNC;
|
|
+ mode->vtotal = mode->vsync_end + JUPITER_VBP;
|
|
}
|
|
|
|
mode->clock = ( ( mode->htotal * mode->vtotal * vrefresh ) + 999 ) / 1000;
|
|
|
|
From a01b1937fe2f898d3aa8628ca6a38465da29e78b Mon Sep 17 00:00:00 2001
|
|
From: Marco Rodolfi <marco.rodolfi@tuta.io>
|
|
Date: Fri, 3 May 2024 10:23:30 +0200
|
|
Subject: [PATCH 2/2] Couple of stylistic fixes and corrected a timing typo
|
|
from the original patch
|
|
|
|
---
|
|
src/gamescope_shared.h | 2 +-
|
|
src/modegen.cpp | 16 ++++++++++------
|
|
2 files changed, 11 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/src/gamescope_shared.h b/src/gamescope_shared.h
|
|
index 3b11e82f6..60e38293c 100644
|
|
--- a/src/gamescope_shared.h
|
|
+++ b/src/gamescope_shared.h
|
|
@@ -8,7 +8,7 @@ namespace gamescope
|
|
{
|
|
GAMESCOPE_KNOWN_DISPLAY_UNKNOWN,
|
|
GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD, // Jupiter
|
|
- GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD_DHD, // Jupiter Deck HD
|
|
+ GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD_DHD, // Jupiter Deck HD
|
|
GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_SDC, // Galileo SDC
|
|
GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_OLED_BOE, // Galileo BOE
|
|
};
|
|
diff --git a/src/modegen.cpp b/src/modegen.cpp
|
|
index d08622555..5dd113697 100644
|
|
--- a/src/modegen.cpp
|
|
+++ b/src/modegen.cpp
|
|
@@ -293,14 +293,16 @@ unsigned int galileo_boe_vfp[] =
|
|
172,152,136,120,100,84,68,52,36,20,8
|
|
};
|
|
|
|
+//SD LCD Stock Timings
|
|
#define JUPITER_BOE_PID 0x3001
|
|
#define JUPITER_B_PID 0x3002
|
|
#define JUPITER_HFP 40
|
|
#define JUPITER_HSYNC 4
|
|
-#define JUPITER_HBP 0
|
|
+#define JUPITER_HBP 40
|
|
#define JUPITER_VFP 30
|
|
#define JUPITER_VSYNC 4
|
|
#define JUPITER_VBP 8
|
|
+//SD LCD DeckHD Timings
|
|
#define JUPITER_DHD_PID 0x4001
|
|
#define JUPITER_DHD_HFP 40
|
|
#define JUPITER_DHD_HSYNC 20
|
|
@@ -308,13 +310,15 @@ unsigned int galileo_boe_vfp[] =
|
|
#define JUPITER_DHD_VFP 18
|
|
#define JUPITER_DHD_VSYNC 2
|
|
#define JUPITER_DHD_VBP 20
|
|
-#define GALILEO_MIN_REFRESH 45
|
|
+//SD OLED SDC Timings
|
|
#define GALILEO_SDC_PID 0x3003
|
|
#define GALILEO_SDC_VSYNC 1
|
|
#define GALILEO_SDC_VBP 22
|
|
+//SD OLED BOE Timings
|
|
#define GALILEO_BOE_PID 0x3004
|
|
#define GALILEO_BOE_VSYNC 2
|
|
#define GALILEO_BOE_VBP 30
|
|
+#define GALILEO_MIN_REFRESH 45
|
|
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
|
|
|
|
unsigned int get_galileo_vfp( int vrefresh, unsigned int * vfp_array, unsigned int num_rates )
|
|
@@ -359,7 +363,7 @@ void generate_fixed_mode(drmModeModeInfo *mode, const drmModeModeInfo *base, int
|
|
mode->vsync_end = mode->vsync_start + vsync;
|
|
mode->vtotal = mode->vsync_end + vbp;
|
|
} else {
|
|
- if ( eKnownDisplay == gamescope:: GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD_DHD ) {
|
|
+ if ( eKnownDisplay == gamescope::GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD_DHD ) {
|
|
mode->hdisplay = 1200;
|
|
mode->hsync_start = mode->hdisplay + JUPITER_DHD_HFP;
|
|
mode->hsync_end = mode->hsync_start + JUPITER_DHD_HSYNC;
|
|
@@ -373,9 +377,9 @@ void generate_fixed_mode(drmModeModeInfo *mode, const drmModeModeInfo *base, int
|
|
else if ( eKnownDisplay == gamescope::GAMESCOPE_KNOWN_DISPLAY_STEAM_DECK_LCD )
|
|
{
|
|
mode->hdisplay = 800;
|
|
- mode->hsync_start = 840;
|
|
- mode->hsync_end = 844;
|
|
- mode->htotal = 884;
|
|
+ mode->hsync_start = mode->hdisplay + JUPITER_HFP;
|
|
+ mode->hsync_end = mode->hsync_start + JUPITER_HSYNC;
|
|
+ mode->htotal = mode->hsync_end + JUPITER_HBP;
|
|
|
|
mode->vdisplay = 1280;
|
|
mode->vsync_start = mode->vdisplay + JUPITER_VFP;
|