summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2025-01-01 16:39:27 -0500
committerAndrew Opalach <andrew@akon.city> 2025-01-01 16:39:27 -0500
commit298debac881c1e7ca5e3a28834f32ff3e74e45f6 (patch)
treec28d35b674196d2fac22da7a3ac0eb3f0eda200d
parent30676d6ded6448c7e1581057bcf3263daffc8e5b (diff)
downloadcamu-298debac881c1e7ca5e3a28834f32ff3e74e45f6.tar.gz
camu-298debac881c1e7ca5e3a28834f32ff3e74e45f6.tar.bz2
camu-298debac881c1e7ca5e3a28834f32ff3e74e45f6.zip
Add libplacebo patches to the flake
Signed-off-by: Andrew Opalach <andrew@akon.city>
-rw-r--r--flake.nix18
-rw-r--r--subprojects/packagefiles/libplacebo/glClientWaitSync_0_return.diff12
-rw-r--r--subprojects/packagefiles/libplacebo/info_priv_hash.diff14
3 files changed, 43 insertions, 1 deletions
diff --git a/flake.nix b/flake.nix
index 45de752..f2cb2bf 100644
--- a/flake.nix
+++ b/flake.nix
@@ -16,12 +16,28 @@
};
outputs = { self, nixpkgs, nixos-hardware, nixos-wsl, home-manager }: let
+ overlays = [
+ (self: super: {
+ libplacebo = super.libplacebo.overrideAttrs (old: {
+ patches = [
+ ./subprojects/packagefiles/libplacebo/cache_ref_rect.diff
+ ./subprojects/packagefiles/libplacebo/fix_rotate.diff
+ ./subprojects/packagefiles/libplacebo/glClientWaitSync_0_return.diff
+ ./subprojects/packagefiles/libplacebo/info_priv_hash.diff
+ ];
+ });
+ })
+ ];
forAllSupportedSystems = function:
nixpkgs.lib.genAttrs [
"x86_64-linux"
"i686-linux"
"aarch64-linux"
- ] (system: function nixpkgs.legacyPackages.${system});
+ ] (system:
+ function (import nixpkgs {
+ inherit system;
+ inherit overlays;
+ }));
forAllDevSystems = function:
nixpkgs.lib.genAttrs [
"x86_64-linux"
diff --git a/subprojects/packagefiles/libplacebo/glClientWaitSync_0_return.diff b/subprojects/packagefiles/libplacebo/glClientWaitSync_0_return.diff
new file mode 100644
index 0000000..e2ddb49
--- /dev/null
+++ b/subprojects/packagefiles/libplacebo/glClientWaitSync_0_return.diff
@@ -0,0 +1,12 @@
+diff --git a/src/opengl/utils.c b/src/opengl/utils.c
+index d96a3e7..c292a70 100644
+--- a/src/opengl/utils.c
++++ b/src/opengl/utils.c
+@@ -58,6 +58,7 @@ void gl_poll_callbacks(pl_gpu gpu)
+ gl_check_err(gpu, "gl_poll_callbacks"); // NOTE: will recurse!
+ return;
+
++ case 0:
+ case GL_TIMEOUT_EXPIRED:
+ return;
+
diff --git a/subprojects/packagefiles/libplacebo/info_priv_hash.diff b/subprojects/packagefiles/libplacebo/info_priv_hash.diff
new file mode 100644
index 0000000..4e7350f
--- /dev/null
+++ b/subprojects/packagefiles/libplacebo/info_priv_hash.diff
@@ -0,0 +1,14 @@
+diff --git a/src/renderer.c b/src/renderer.c
+index 7622523..ecd4227 100644
+--- a/src/renderer.c
++++ b/src/renderer.c
+@@ -3248,6 +3248,9 @@ static struct params_info render_params_info(const struct pl_render_params *para
+ HASH_PTR(params.color_adjustment, &pl_color_adjustment_neutral, true);
+ HASH_PTR(params.color_map_params, &pl_color_map_default_params, true);
+ HASH_PTR(params.peak_detect_params, NULL, false);
++ intptr_t info_priv = (intptr_t)params.info_priv;
++ intptr_t *info_priv_ptr = &info_priv;
++ HASH_PTR(info_priv_ptr, NULL, false);
+
+ // Hash all hooks
+ for (int i = 0; i < params.num_hooks; i++) {