diff options
author | Andrew O'Neil | 2024-02-28 21:41:44 +1100 |
---|---|---|
committer | Andrew O'Neil | 2024-02-28 21:41:44 +1100 |
commit | eb6e27008ae8d9b7bd38e77059b232b2512ad9db (patch) | |
tree | cac0ed176cfa37c09ef8eb87770d57392e7828e6 | |
parent | 4d4bbb85156da6b5c251aee96784d4fa6f5116e5 (diff) | |
download | aur-eb6e27008ae8d9b7bd38e77059b232b2512ad9db.tar.gz |
Fix crash in games with valid HDR metadata - eg Control Ultimate Edition with unofficial HDR patch
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 5 | ||||
-rw-r--r-- | fix_app_hdr_metadata.patch | 22 |
3 files changed, 29 insertions, 2 deletions
@@ -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 @@ -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() ); |