summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew O'Neil2024-02-28 21:41:44 +1100
committerAndrew O'Neil2024-02-28 21:41:44 +1100
commiteb6e27008ae8d9b7bd38e77059b232b2512ad9db (patch)
treecac0ed176cfa37c09ef8eb87770d57392e7828e6
parent4d4bbb85156da6b5c251aee96784d4fa6f5116e5 (diff)
downloadaur-eb6e27008ae8d9b7bd38e77059b232b2512ad9db.tar.gz
Fix crash in games with valid HDR metadata - eg Control Ultimate Edition with unofficial HDR patch
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD5
-rw-r--r--fix_app_hdr_metadata.patch22
3 files changed, 29 insertions, 2 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 13192f103077..b6951dcf0df9 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = gamescope-amd-color
pkgdesc = SteamOS session compositing window manager, patched for experimental AMD color management
pkgver = 3.14.2
- pkgrel = 2
+ pkgrel = 3
url = https://github.com/ValveSoftware/gamescope
install = gamescope.install
arch = x86_64
@@ -45,8 +45,10 @@ pkgbase = gamescope-amd-color
source = git+https://github.com/ValveSoftware/gamescope.git#tag=3.14.2
source = amd_color_management.patch
source = openvr_2_only.patch
+ source = fix_app_hdr_metadata.patch
b2sums = SKIP
b2sums = a2df86c41ba2186df5a93a689f3af8af3e5bd2c5d99712a75e893d3d9ef99a553e8503c78cee3acb496f34785728f024cf8c6fe57f88ba12a3d3a6913deddcf0
b2sums = e8f886757d1e4fe690de583de007bfec812a19e87c91a7349e84eb94b0ef6f4bb9a9d71c81045164efdb680e23cf4d47e24f6f706dd9c1ee2f0385a9d12f3432
+ b2sums = eacfebc628ebe0eb59d6c2113900c4a6f7c4d69b0d80546469ec8daea21bb89db2523c9f9d5f5e796986fec0044aec2e9c44453e5206cd22bfd29f6e7aa1a870
pkgname = gamescope-amd-color
diff --git a/PKGBUILD b/PKGBUILD
index d70750c99836..52a7988fd829 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,7 +8,7 @@
pkgname=gamescope-amd-color
pkgver=3.14.2
-pkgrel=2
+pkgrel=3
pkgdesc='SteamOS session compositing window manager, patched for experimental AMD color management'
arch=(x86_64)
url=https://github.com/ValveSoftware/gamescope
@@ -61,11 +61,13 @@ source=(
git+https://github.com/ValveSoftware/gamescope.git#tag=${pkgver}
amd_color_management.patch
openvr_2_only.patch
+ fix_app_hdr_metadata.patch
)
b2sums=(
'SKIP'
'a2df86c41ba2186df5a93a689f3af8af3e5bd2c5d99712a75e893d3d9ef99a553e8503c78cee3acb496f34785728f024cf8c6fe57f88ba12a3d3a6913deddcf0'
'e8f886757d1e4fe690de583de007bfec812a19e87c91a7349e84eb94b0ef6f4bb9a9d71c81045164efdb680e23cf4d47e24f6f706dd9c1ee2f0385a9d12f3432'
+ 'eacfebc628ebe0eb59d6c2113900c4a6f7c4d69b0d80546469ec8daea21bb89db2523c9f9d5f5e796986fec0044aec2e9c44453e5206cd22bfd29f6e7aa1a870'
)
install=gamescope.install
@@ -77,6 +79,7 @@ prepare() {
patch --forward --strip=1 --input="${srcdir}/amd_color_management.patch"
patch --forward --strip=1 --input="${srcdir}/openvr_2_only.patch"
+ patch --forward --strip=1 --input="${srcdir}/fix_app_hdr_metadata.patch"
}
build() {
diff --git a/fix_app_hdr_metadata.patch b/fix_app_hdr_metadata.patch
new file mode 100644
index 000000000000..fb2e637917f5
--- /dev/null
+++ b/fix_app_hdr_metadata.patch
@@ -0,0 +1,22 @@
+From 6f0f4e34eab52a4a2ed9b6a3645474301a227efd Mon Sep 17 00:00:00 2001
+From: Andrew O'Neil <andy@andyofniall.net>
+Date: Wed, 28 Feb 2024 21:06:28 +1100
+Subject: [PATCH] Fix incorrect casting of HDR metadata blob
+
+---
+ src/steamcompmgr.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp
+index 628eb951e..a19582c68 100644
+--- a/src/steamcompmgr.cpp
++++ b/src/steamcompmgr.cpp
+@@ -7833,7 +7833,7 @@ steamcompmgr_main(int argc, char **argv)
+ std::vector<uint32_t> app_hdr_metadata_blob;
+ app_hdr_metadata_blob.resize((sizeof(hdr_metadata_infoframe) + (sizeof(uint32_t) - 1)) / sizeof(uint32_t));
+ memset(app_hdr_metadata_blob.data(), 0, sizeof(uint32_t) * app_hdr_metadata_blob.size());
+- memcpy(app_hdr_metadata_blob.data(), &app_hdr_metadata->View<hdr_metadata_infoframe>(), sizeof(hdr_metadata_infoframe));
++ memcpy(app_hdr_metadata_blob.data(), &app_hdr_metadata->View<hdr_output_metadata>().hdmi_metadata_type1, sizeof(hdr_metadata_infoframe));
+
+ XChangeProperty(root_ctx->dpy, root_ctx->root, root_ctx->atoms.gamescopeColorAppHDRMetadataFeedback, XA_CARDINAL, 32, PropModeReplace,
+ (unsigned char *)app_hdr_metadata_blob.data(), (int)app_hdr_metadata_blob.size() );