From cf4908c4b98171f9e019892c6032878a4f3abedf Mon Sep 17 00:00:00 2001 From: Gwyn Ciesla Date: Mon, 19 Feb 2018 16:21:54 +0000 Subject: [PATCH 01/46] Added the README --- README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..463a556 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# libplacebo + +The libplacebo package \ No newline at end of file From 1ca1e8598dd9354853fafd35b88249ac93bfa602 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Mon, 19 Feb 2018 20:13:16 +0100 Subject: [PATCH 02/46] Initial import --- .gitignore | 1 + libplacebo.spec | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 68 insertions(+) create mode 100644 .gitignore create mode 100644 libplacebo.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ff2511 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/libplacebo-0.4.0.tar.gz diff --git a/libplacebo.spec b/libplacebo.spec new file mode 100644 index 0000000..8d08ec7 --- /dev/null +++ b/libplacebo.spec @@ -0,0 +1,66 @@ +Name: libplacebo +Version: 0.4.0 +Release: 1%{?dist} +Summary: Reusable library for GPU-accelerated video/image rendering primitives + +License: LGPLv2+ +URL: https://github.com/haasn/libplacebo +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: meson +BuildRequires: vulkan-devel + + +%description +libplacebo is essentially the core rendering algorithms and ideas of +mpv turned into a library. This grew out of an interest to accomplish +the following goals: + +- Clean up mpv's internal API and make it reusable for other projects. +- Provide a standard library of useful GPU-accelerated image processing + primitives based on GLSL, so projects like VLC or Firefox can use them + without incurring a heavy dependency on `libmpv`. +- Rewrite core parts of mpv's GPU-accelerated video renderer on top of + redesigned abstractions. (Basically, I wanted to eliminate code smell + like `shader_cache.c` and totally redesign `gpu/video.c`) + + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +The %{name}-devel package contains libraries and header files for +developing applications that use %{name}. + + +%prep +%autosetup -p1 + + +%build +%meson +%meson_build + + +%install +%meson_install + + +%ldconfig_scriptlets + + +%files +%license LICENSE +%doc README.md +%{_libdir}/*.so.* + +%files devel +%{_includedir}/* +%{_libdir}/*.so +%{_libdir}/pkgconfig/libplacebo.pc + + +%changelog +* Mon Feb 12 2018 Nicolas Chauvet - 0.4.0-1 +- Initial spec file diff --git a/sources b/sources new file mode 100644 index 0000000..f8fbdeb --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (libplacebo-0.4.0.tar.gz) = 4dfcdfaa2e52d68b65219ed6ba8895388a6caadd996212cbe5389b7a2ed54296422ead3ad5b4f4495209e7bfb132cc15d6e6a0ac2edcf0ecae5562912c026710 From 566da35f0ce5ba62be2f1ed3a2a25048f1ed768a Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Mon, 21 May 2018 16:33:59 +0200 Subject: [PATCH 03/46] Fix build on EL7 --- libplacebo.spec | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/libplacebo.spec b/libplacebo.spec index 8d08ec7..dc843cc 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,6 +1,6 @@ Name: libplacebo Version: 0.4.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -8,7 +8,16 @@ URL: https://github.com/haasn/libplacebo Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz BuildRequires: meson +# Use a more modern compiler toolchain on EL7 +%if 0%{?rhel} == 7 +BuildRequires: devtoolset-7-toolchain, devtoolset-7-libatomic-devel +# Vulkan is optional, but only available on theses arches for EL7 +%ifarch x86_64 ppc64le BuildRequires: vulkan-devel +%endif +%else # Fedora +BuildRequires: vulkan-devel +%endif %description @@ -37,8 +46,17 @@ developing applications that use %{name}. %prep %autosetup -p1 +%if 0%{?rhel} == 7 +. /opt/rh/devtoolset-7/enable +%endif + %build + +%if 0%{?rhel} == 7 +. /opt/rh/devtoolset-7/enable +%endif + %meson %meson_build @@ -62,5 +80,8 @@ developing applications that use %{name}. %changelog +* Mon May 21 2018 Nicolas Chauvet - 0.4.0-2 +- Fix build on EL7 + * Mon Feb 12 2018 Nicolas Chauvet - 0.4.0-1 - Initial spec file From 60e12a2e69cab5f7ad3ffbd290bc5a98e6f2add9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 13 Jul 2018 08:39:51 +0000 Subject: [PATCH 04/46] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- libplacebo.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libplacebo.spec b/libplacebo.spec index dc843cc..c4b60fa 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,6 +1,6 @@ Name: libplacebo Version: 0.4.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -80,6 +80,9 @@ developing applications that use %{name}. %changelog +* Fri Jul 13 2018 Fedora Release Engineering - 0.4.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Mon May 21 2018 Nicolas Chauvet - 0.4.0-2 - Fix build on EL7 From e067f1f1f0cb024445d7c7e277a4c5f0634f4292 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Tue, 17 Jul 2018 13:01:12 +0200 Subject: [PATCH 05/46] Update to 0.5.0 --- .gitignore | 1 + libplacebo.spec | 8 ++++++-- sources | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 5ff2511..f87759f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /libplacebo-0.4.0.tar.gz +/libplacebo-0.5.0.tar.gz diff --git a/libplacebo.spec b/libplacebo.spec index c4b60fa..5ed37e5 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,12 +1,13 @@ Name: libplacebo -Version: 0.4.0 -Release: 3%{?dist} +Version: 0.5.0 +Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ URL: https://github.com/haasn/libplacebo Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +BuildRequires: gcc BuildRequires: meson # Use a more modern compiler toolchain on EL7 %if 0%{?rhel} == 7 @@ -80,6 +81,9 @@ developing applications that use %{name}. %changelog +* Tue Jul 17 2018 Nicolas Chauvet - 0.5.0-1 +- Update to 0.5.0 + * Fri Jul 13 2018 Fedora Release Engineering - 0.4.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild diff --git a/sources b/sources index f8fbdeb..abe22b9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-0.4.0.tar.gz) = 4dfcdfaa2e52d68b65219ed6ba8895388a6caadd996212cbe5389b7a2ed54296422ead3ad5b4f4495209e7bfb132cc15d6e6a0ac2edcf0ecae5562912c026710 +SHA512 (libplacebo-0.5.0.tar.gz) = af9d3c67dba60c42929f66230aebbc6815c087faf15cc3de9b245a47721fb419a8126ae2baf1423985bfc0052649793810b0beb75622b191c624e84bdfe60296 From a524956ffa3836139353e32185e52ed19d4e3b16 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Mon, 1 Oct 2018 16:23:30 +0200 Subject: [PATCH 06/46] Update to 0.6.0 --- .gitignore | 3 +-- libplacebo.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index f87759f..4a604c5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -/libplacebo-0.4.0.tar.gz -/libplacebo-0.5.0.tar.gz +/libplacebo-*.tar.gz diff --git a/libplacebo.spec b/libplacebo.spec index 5ed37e5..76482c5 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,5 +1,5 @@ Name: libplacebo -Version: 0.5.0 +Version: 0.6.0 Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives @@ -81,6 +81,9 @@ developing applications that use %{name}. %changelog +* Mon Oct 01 2018 Nicolas Chauvet - 0.6.0-1 +- Update to 0.6.0 + * Tue Jul 17 2018 Nicolas Chauvet - 0.5.0-1 - Update to 0.5.0 diff --git a/sources b/sources index abe22b9..82d8604 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-0.5.0.tar.gz) = af9d3c67dba60c42929f66230aebbc6815c087faf15cc3de9b245a47721fb419a8126ae2baf1423985bfc0052649793810b0beb75622b191c624e84bdfe60296 +SHA512 (libplacebo-0.6.0.tar.gz) = 7a5bad9b68553e7d7a9e0d89867d651ec211b0d5478d9c5398e95f39956569829004755b0276d0d8cad6bd7c290016cff454d1449f58a477046dba6c638e59d6 From 2d6c2aa1004d10bbd347960cabc4e8942c6ac2fe Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Mon, 1 Oct 2018 16:31:31 +0200 Subject: [PATCH 07/46] Add c++ --- libplacebo.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/libplacebo.spec b/libplacebo.spec index 76482c5..5fc03c0 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -8,6 +8,7 @@ URL: https://github.com/haasn/libplacebo Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz BuildRequires: gcc +BuildRequires: gcc-c++ BuildRequires: meson # Use a more modern compiler toolchain on EL7 %if 0%{?rhel} == 7 From 903e1d786f86146054cd4fabab95c6451f3f67a1 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Mon, 1 Oct 2018 16:42:16 +0200 Subject: [PATCH 08/46] Add glslang-devel --- libplacebo.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/libplacebo.spec b/libplacebo.spec index 5fc03c0..95076e8 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -19,6 +19,7 @@ BuildRequires: vulkan-devel %endif %else # Fedora BuildRequires: vulkan-devel +BuildRequires: glslang-devel %endif From e423f1e6676effe0a5c3d1efa4b3e430529775e4 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Mon, 1 Oct 2018 16:49:55 +0200 Subject: [PATCH 09/46] Add lcms2-devel --- libplacebo.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/libplacebo.spec b/libplacebo.spec index 95076e8..68e42c3 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -10,6 +10,7 @@ Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: meson +BuildRequires: lcms2-devel # Use a more modern compiler toolchain on EL7 %if 0%{?rhel} == 7 BuildRequires: devtoolset-7-toolchain, devtoolset-7-libatomic-devel From 2d36b684071961ab1e929bb73ea1fd13dce53f49 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Tue, 2 Oct 2018 18:46:52 +0200 Subject: [PATCH 10/46] Add shaderc --- libplacebo.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/libplacebo.spec b/libplacebo.spec index 68e42c3..3bcbacd 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -11,6 +11,7 @@ BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: meson BuildRequires: lcms2-devel +BuildRequires: shaderc-devel # Use a more modern compiler toolchain on EL7 %if 0%{?rhel} == 7 BuildRequires: devtoolset-7-toolchain, devtoolset-7-libatomic-devel From 8fe8f702a71025f86301b542f9e2fa55707bb309 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Tue, 2 Oct 2018 18:53:04 +0200 Subject: [PATCH 11/46] fixup libshaderc-devel --- libplacebo.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libplacebo.spec b/libplacebo.spec index 3bcbacd..02e451a 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -11,7 +11,7 @@ BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: meson BuildRequires: lcms2-devel -BuildRequires: shaderc-devel +BuildRequires: libshaderc-devel # Use a more modern compiler toolchain on EL7 %if 0%{?rhel} == 7 BuildRequires: devtoolset-7-toolchain, devtoolset-7-libatomic-devel From 7a0f68e7de49d4b2dbe5284920a6d8fd03e86ff1 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Wed, 3 Oct 2018 12:33:16 +0200 Subject: [PATCH 12/46] backports + WAR older shaderc --- 0002-WAR-older-shaderc.patch | 25 + libplacebo-0.6.0-backports.patch | 1043 ++++++++++++++++++++++++++++++ libplacebo.spec | 2 + 3 files changed, 1070 insertions(+) create mode 100644 0002-WAR-older-shaderc.patch create mode 100644 libplacebo-0.6.0-backports.patch diff --git a/0002-WAR-older-shaderc.patch b/0002-WAR-older-shaderc.patch new file mode 100644 index 0000000..8245cff --- /dev/null +++ b/0002-WAR-older-shaderc.patch @@ -0,0 +1,25 @@ +From 72a8c1c547a8f40eb8a84485ab26a01b16f14fcd Mon Sep 17 00:00:00 2001 +From: Nicolas Chauvet +Date: Wed, 3 Oct 2018 12:28:48 +0200 +Subject: [PATCH 2/2] WAR older shaderc + +--- + src/spirv_shaderc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/spirv_shaderc.c b/src/spirv_shaderc.c +index c86679a..910d76c 100644 +--- a/src/spirv_shaderc.c ++++ b/src/spirv_shaderc.c +@@ -46,7 +46,7 @@ static bool shaderc_init(struct spirv_compiler *spirv) + goto error; + + shaderc_compile_options_set_optimization_level(p->opts, +- shaderc_optimization_level_performance); ++ shaderc_optimization_level_zero); + + int ver, rev; + shaderc_get_spv_version(&ver, &rev); +-- +2.17.1 + diff --git a/libplacebo-0.6.0-backports.patch b/libplacebo-0.6.0-backports.patch new file mode 100644 index 0000000..6c910c7 --- /dev/null +++ b/libplacebo-0.6.0-backports.patch @@ -0,0 +1,1043 @@ +From e2b9c2942da619d7f188492676b806501202eea1 Mon Sep 17 00:00:00 2001 +From: Nicolas Chauvet +Date: Wed, 3 Oct 2018 10:30:37 +0200 +Subject: [PATCH] Squashed commit of the following: + +commit b6104e121006290f146177e1847ccd7826d2b6f6 +Author: Niklas Haas +Date: Sat Sep 29 18:18:49 2018 +0200 + + common: switch to explicit includes + + Since we no longer need the GCC pragma for symbol visibility, there's + also no more reason to have common.h import everything under the sun - + so only have modules import what they actually use. + + This speeds up compilation a tiny bit. + +commit 6835ae5d2ffb5e8a5257992e0a606d9209721e66 +Author: Niklas Haas +Date: Sat Sep 29 18:08:45 2018 +0200 + + meson: use a linker script for symbol visibility + + This prevents us from re-exporting e.g. glslang symbols, thereby + properly fixing #42. + +commit 1484190ce490dbd277cd55b586e1952dd4d1d0d0 +Author: Niklas Haas +Date: Sat Sep 29 17:47:48 2018 +0200 + + meson: build C++ with -fvisibility=hidden as well + +commit de715031efe61d9399b8ad8468364e6798c5a11f +Author: Niklas Haas +Date: Sat Sep 29 02:59:29 2018 +0200 + + tests: add test cases for std140/std430 packing + + To avoid introducing regressions in the future, now that I'm sure it + works as it's supposed to. + +commit e6e7be86e8d7585f8178544a2fc3c4eaca5b336e +Author: Niklas Haas +Date: Sat Sep 29 02:59:16 2018 +0200 + + gpu: add clarifying comment on pl_var_layout + +commit 6c5c652a7a2baeb1fb8be74ca8794ce510b86ac2 +Author: Niklas Haas +Date: Sat Sep 29 03:02:16 2018 +0200 + + vulkan: add VK_NVX_raytracing boilerplate + +commit e6a3f6f06fa62bd8eeb542ae82f34666f6b1c05e +Author: Niklas Haas +Date: Sat Sep 29 01:18:47 2018 +0200 + + dispatch: fix std140/std430 packing rules + + Actually, turns out our rules were wrong after all: vec3 only consumes 3 + words even though it's aligned to 4, which we were not correctly + accounting for. + + So in the struct { vec3; float; vec2 } the float and vec3 can be packed + into the same vec4, whereas our code was assuming the vec3 consumed all + four words (like its alignment). + +commit 792a21f9027af1d529d44b3a463c2b90ab38b451 +Author: Niklas Haas +Date: Sat Sep 29 00:40:02 2018 +0200 + + dispatch: use explicit offsets for push constants + + In the distant past this was a compile error, but it seems that has been + fixed in glslang etc. + + Using explicit offsets is both safer and actually solves some very real + driver bugs w.r.t wrong std430 packing. + +commit 693b346e2a10d7e33104da8e00173c9224cc94d6 +Author: Niklas Haas +Date: Fri Sep 28 22:50:43 2018 +0200 + + shaders: fix compilation on clang + + Clang doesn't like using sqrt in a constexpr, so just hard-code the + constant. Whatever. + +commit 6875a9c833f93bf803ca35a5115c2116e91e61d5 +Author: Niklas Haas +Date: Fri Sep 28 22:18:00 2018 +0200 + + shaders: improve the seeding + + Seeding by gl_FragCoord was very bad since the PRNG seed generation + performs horribly for large inputs. (mpv avoided this problem since it + was seeding with the [0,1)-scaled texture coordinates, but we don't have + access to those here) + + Also, multiplying the temporal index by pi also resulted in relatively + cyclic patterns, since pi is well-approximated by 22/7. + + A simple way to salvage the situation without major code changes is to + just use fract(phi * x) to turn an integer counter into a quasi-random + floating point input. Since phi is the most irrational number this does + not generate any visually obvious patterns at realistic scales. + +commit 5278a77eacb35559b65aca656c060b42c1fe5926 +Author: Niklas Haas +Date: Fri Sep 28 18:18:15 2018 +0200 + + glslang: update for new glslang version + + This adds some new members to this struct. I still have zero clue why + they don't provide this structure for us, so we don't have to copy/paste + it from example code.. + +commit 2345f60b9350c1ff5d64a682bbd0144cbf7f92f9 +Author: Sebastian Ramacher +Date: Fri Sep 28 17:43:52 2018 +0200 + + meson: require version 0.47 + + Type 'feature' for get_option was introduced in meson 0.47, so require + it. + +commit 17ded744c2459294fc900a4309645b90f0296fc8 +Author: Niklas Haas +Date: Fri Sep 28 03:27:18 2018 +0200 + + vulkan: treat empty device name like NULL + + Right now, an empty device name would reject all devices except one + that's literally empty. This change makes that case behave more sanely. + +commit cc394dd0aa0f72ab530164150e70e8c4b3f56d3a +Author: Niklas Haas +Date: Fri Sep 28 00:23:38 2018 +0200 + + travis: avoid meson 0.48.0 + + This breaks the test suite + + cf. mesonbuild/meson#4248 +--- + .travis.yml | 2 +- + meson.build | 1 + + src/colorspace.c | 1 + + src/common.c | 1 + + src/common.h | 24 ---- + src/context.h | 1 + + src/dispatch.c | 2 +- + src/dispatch.h | 1 + + src/dither.c | 1 + + src/filters.c | 2 + + src/glsl/glslang.cc | 12 ++ + src/gpu.c | 30 ++--- + src/gpu.h | 2 + + src/include/libplacebo/gpu.h | 2 + + src/lcms.h | 2 + + src/libplacebo.sym | 219 +++++++++++++++++++++++++++++++++++ + src/meson.build | 10 +- + src/renderer.c | 2 + + src/shaders.c | 12 +- + src/shaders.h | 2 + + src/shaders/colorspace.c | 3 + + src/shaders/sampling.c | 2 + + src/spirv.h | 2 + + src/swapchain.h | 1 + + src/tests/bench.c | 5 + + src/tests/colorspace.c | 1 + + src/tests/dither.c | 1 + + src/tests/filters.c | 1 + + src/tests/gpu_tests.h | 6 + + src/tests/tests.h | 1 + + src/tests/utils.c | 62 ++++++++++ + src/tests/vulkan.c | 1 + + src/utils/upload.c | 2 + + src/vulkan/common.h | 2 + + src/vulkan/context.c | 2 +- + src/vulkan/utils.c | 3 + + 36 files changed, 378 insertions(+), 46 deletions(-) + create mode 100644 src/libplacebo.sym + +diff --git a/.travis.yml b/.travis.yml +index e0e3e17..2b0b09f 100644 +--- a/.travis.yml ++++ b/.travis.yml +@@ -33,4 +33,4 @@ install: + - export PATH="`pwd`/bin:${PATH}" + - pyenv global system 3.6 + - wget https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-linux.zip && unzip -q ninja-linux.zip -d bin +- - pip3 install meson ++ - pip3 install 'meson != 0.48.0' +diff --git a/meson.build b/meson.build +index 720e988..b96d7ed 100644 +--- a/meson.build ++++ b/meson.build +@@ -1,6 +1,7 @@ + project('libplacebo', ['c', 'cpp'], + license: 'LGPL2.1+', + default_options: ['c_std=c99'], ++ meson_version: '>=0.47', + ) + + subdir('src') +diff --git a/src/colorspace.c b/src/colorspace.c +index ee97f74..20d28b5 100644 +--- a/src/colorspace.c ++++ b/src/colorspace.c +@@ -18,6 +18,7 @@ + #include + + #include "common.h" ++#include + + bool pl_color_system_is_ycbcr_like(enum pl_color_system sys) + { +diff --git a/src/common.c b/src/common.c +index f787494..13d0f4f 100644 +--- a/src/common.c ++++ b/src/common.c +@@ -16,6 +16,7 @@ + */ + + #include "common.h" ++#include + + void pl_rect2d_normalize(struct pl_rect2d *rc) + { +diff --git a/src/common.h b/src/common.h +index b336cac..d5439d2 100644 +--- a/src/common.h ++++ b/src/common.h +@@ -28,30 +28,6 @@ + #include "config.h" + #include "pl_assert.h" + +-// Include all of the symbols that should be public in a way that marks them +-// as being externally visible. (Otherwise, all symbols are hidden by default) +-#pragma GCC visibility push(default) +- +-#include "include/libplacebo/colorspace.h" +-#include "include/libplacebo/common.h" +-#include "include/libplacebo/context.h" +-#include "include/libplacebo/dispatch.h" +-#include "include/libplacebo/dither.h" +-#include "include/libplacebo/filters.h" +-#include "include/libplacebo/gpu.h" +-#include "include/libplacebo/renderer.h" +-#include "include/libplacebo/shaders.h" +-#include "include/libplacebo/shaders/colorspace.h" +-#include "include/libplacebo/shaders/sampling.h" +-#include "include/libplacebo/swapchain.h" +-#include "include/libplacebo/utils/upload.h" +- +-#if PL_HAVE_VULKAN +-#include "include/libplacebo/vulkan.h" +-#endif +- +-#pragma GCC visibility pop +- + // Align up to the nearest multiple of an arbitrary alignment, which may also + // be 0 to signal no alignment requirements. + #define PL_ALIGN(x, align) ((align) ? ((x) + (align) - 1) / (align) * (align) : (x)) +diff --git a/src/context.h b/src/context.h +index 939c5ce..9223d3d 100644 +--- a/src/context.h ++++ b/src/context.h +@@ -21,6 +21,7 @@ + #include "bstr/bstr.h" + + #include "common.h" ++#include + + struct pl_context { + struct pl_context_params params; +diff --git a/src/dispatch.c b/src/dispatch.c +index 323b526..f2beeaf 100644 +--- a/src/dispatch.c ++++ b/src/dispatch.c +@@ -313,7 +313,7 @@ static void generate_shaders(struct pl_dispatch *dp, struct pass *pass, + struct pass_var *pv = &pass->vars[i]; + if (pv->type != PASS_VAR_PUSHC) + continue; +- ADD(glsl, "/*offset=%zu*/ ", pv->layout.offset); ++ ADD(glsl, " layout(offset=%zu) ", pv->layout.offset); + add_var(dp, glsl, var); + } + ADD(glsl, "};\n"); +diff --git a/src/dispatch.h b/src/dispatch.h +index 1db70ad..c2fa0c3 100644 +--- a/src/dispatch.h ++++ b/src/dispatch.h +@@ -18,6 +18,7 @@ + #pragma once + + #include "common.h" ++#include + + // Like `pl_dispatch_begin`, but has an extra `unique` parameter. If this is + // true, the generated shader will be uniquely namespaced `unique` and may be +diff --git a/src/dither.c b/src/dither.c +index e2b54ae..4f739c9 100644 +--- a/src/dither.c ++++ b/src/dither.c +@@ -30,6 +30,7 @@ + #include + + #include "common.h" ++#include + + void pl_generate_bayer_matrix(float *data, int size) + { +diff --git a/src/filters.c b/src/filters.c +index 7f7aca4..bfaf7f2 100644 +--- a/src/filters.c ++++ b/src/filters.c +@@ -39,6 +39,8 @@ + #include "common.h" + #include "context.h" + ++#include ++ + bool pl_filter_function_eq(const struct pl_filter_function *a, + const struct pl_filter_function *b) + { +diff --git a/src/glsl/glslang.cc b/src/glsl/glslang.cc +index d0fd081..8b98bf6 100644 +--- a/src/glsl/glslang.cc ++++ b/src/glsl/glslang.cc +@@ -192,6 +192,18 @@ const TBuiltInResource DefaultTBuiltInResource = { + /* .MaxCullDistances = */ 8, + /* .MaxCombinedClipAndCullDistances = */ 8, + /* .MaxSamples = */ 4, ++#if GLSLANG_PATCH_LEVEL >= 2892 ++ /* .maxMeshOutputVerticesNV = */ 256, ++ /* .maxMeshOutputPrimitivesNV = */ 512, ++ /* .maxMeshWorkGroupSizeX_NV = */ 32, ++ /* .maxMeshWorkGroupSizeY_NV = */ 1, ++ /* .maxMeshWorkGroupSizeZ_NV = */ 1, ++ /* .maxTaskWorkGroupSizeX_NV = */ 32, ++ /* .maxTaskWorkGroupSizeY_NV = */ 1, ++ /* .maxTaskWorkGroupSizeZ_NV = */ 1, ++ /* .maxMeshViewCountNV = */ 4, ++#endif ++ + /* .limits = */ { + /* .nonInductiveForLoops = */ 1, + /* .whileLoops = */ 1, +diff --git a/src/gpu.c b/src/gpu.c +index f34d6ab..9308c5c 100644 +--- a/src/gpu.c ++++ b/src/gpu.c +@@ -1057,22 +1057,23 @@ struct pl_var_layout std140_layout(const struct pl_gpu *gpu, size_t offset, + + // std140 packing rules: + // 1. The size of generic values is their size in bytes +- // 2. The size of vectors is the vector length * the base count, with the +- // exception of *vec3 which is always the same size as *vec4 ++ // 2. The size of vectors is the vector length * the base count + // 3. Matrices are treated like arrays of column vectors + // 4. The size of array rows is that of the element size rounded up to + // the nearest multiple of vec4 +- // 5. All values are aligned to a multiple of their size (stride for arrays) +- size_t size = el_size * var->dim_v; ++ // 5. All values are aligned to a multiple of their size (stride for arrays), ++ // with the exception of vec3 which is aligned like vec4 ++ size_t stride = el_size * var->dim_v; ++ size_t align = stride; + if (var->dim_v == 3) +- size += el_size; ++ align += el_size; + if (var->dim_m * var->dim_a > 1) +- size = PL_ALIGN2(size, sizeof(float[4])); ++ stride = align = PL_ALIGN2(stride, sizeof(float[4])); + + return (struct pl_var_layout) { +- .offset = PL_ALIGN2(offset, size), +- .stride = size, +- .size = size * var->dim_m * var->dim_a, ++ .offset = PL_ALIGN2(offset, align), ++ .stride = stride, ++ .size = stride * var->dim_m * var->dim_a, + }; + } + +@@ -1083,14 +1084,15 @@ struct pl_var_layout std430_layout(const struct pl_gpu *gpu, size_t offset, + + // std430 packing rules: like std140, except arrays/matrices are always + // "tightly" packed, even arrays/matrices of vec3s +- size_t size = el_size * var->dim_v; ++ size_t stride = el_size * var->dim_v; ++ size_t align = stride; + if (var->dim_v == 3 && var->dim_m == 1 && var->dim_a == 1) +- size += el_size; ++ align += el_size; + + return (struct pl_var_layout) { +- .offset = PL_ALIGN2(offset, size), +- .stride = size, +- .size = size * var->dim_m * var->dim_a, ++ .offset = PL_ALIGN2(offset, align), ++ .stride = stride, ++ .size = stride * var->dim_m * var->dim_a, + }; + } + +diff --git a/src/gpu.h b/src/gpu.h +index a45ed90..408d263 100644 +--- a/src/gpu.h ++++ b/src/gpu.h +@@ -18,6 +18,8 @@ + #pragma once + + #include "common.h" ++#include ++#include + + #define GPU_PFN(name) __typeof__(pl_##name) *name + struct pl_gpu_fns { +diff --git a/src/include/libplacebo/gpu.h b/src/include/libplacebo/gpu.h +index a4377fa..21e13f8 100644 +--- a/src/include/libplacebo/gpu.h ++++ b/src/include/libplacebo/gpu.h +@@ -507,6 +507,8 @@ struct pl_var pl_var_from_fmt(const struct pl_fmt *fmt, const char *name); + // distinction between the columns of a matrix and the rows of an array. For + // example, a mat2[10] and a vec2[20] share the same pl_var_layout - the stride + // would be sizeof(vec2) and the size would be sizeof(vec2) * 2 * 10. ++// ++// For non-array/matrix types, `stride` is equal to `size`. + + struct pl_var_layout { + size_t offset; // the starting offset of the first byte +diff --git a/src/lcms.h b/src/lcms.h +index 2c727fc..c96aa64 100644 +--- a/src/lcms.h ++++ b/src/lcms.h +@@ -20,6 +20,8 @@ + #include "common.h" + #include "bstr/bstr.h" + ++#include ++ + // Compute a transformation from one color profile to another, and fill the + // provided array by the resulting 3DLUT. The array must have room for four + // components per sample. +diff --git a/src/libplacebo.sym b/src/libplacebo.sym +new file mode 100644 +index 0000000..c5c3490 +--- /dev/null ++++ b/src/libplacebo.sym +@@ -0,0 +1,219 @@ ++{ ++ global: ++ pl_3dlut_apply; ++ pl_3dlut_default_params; ++ pl_3dlut_update; ++ pl_bit_encoding_equal; ++ pl_buf_create; ++ pl_buf_destroy; ++ pl_buf_poll; ++ pl_buf_read; ++ pl_buf_storage_layout; ++ pl_buf_uniform_layout; ++ pl_buf_write; ++ pl_chroma_location_offset; ++ pl_color_adjustment_neutral; ++ pl_color_light_is_scene_referred; ++ pl_color_map_default_params; ++ pl_color_primaries_guess; ++ pl_color_primaries_is_wide_gamut; ++ pl_color_repr_decode; ++ pl_color_repr_equal; ++ pl_color_repr_hdtv; ++ pl_color_repr_jpeg; ++ pl_color_repr_merge; ++ pl_color_repr_normalize; ++ pl_color_repr_rgb; ++ pl_color_repr_sdtv; ++ pl_color_repr_uhdtv; ++ pl_color_repr_unknown; ++ pl_color_space_bt2020_hlg; ++ pl_color_space_bt709; ++ pl_color_space_equal; ++ pl_color_space_hdr10; ++ pl_color_space_infer; ++ pl_color_space_merge; ++ pl_color_space_monitor; ++ pl_color_space_srgb; ++ pl_color_space_unknown; ++ pl_color_system_guess_ycbcr; ++ pl_color_system_is_linear; ++ pl_color_system_is_ycbcr_like; ++ pl_color_transfer_nominal_peak; ++ pl_context_create; ++ pl_context_default_params; ++ pl_context_destroy; ++ pl_deband_default_params; ++ pl_desc_access_glsl_name; ++ pl_desc_namespace; ++ pl_dispatch_abort; ++ pl_dispatch_begin; ++ pl_dispatch_compute; ++ pl_dispatch_create; ++ pl_dispatch_destroy; ++ pl_dispatch_finish; ++ pl_dither_default_params; ++ pl_filter_bicubic; ++ pl_filter_box; ++ pl_filter_catmull_rom; ++ pl_filter_config_eq; ++ pl_filter_ewa_ginseng; ++ pl_filter_ewa_hann; ++ pl_filter_ewa_jinc; ++ pl_filter_ewa_lanczos; ++ pl_filter_ewa_robidoux; ++ pl_filter_ewa_robidouxsharp; ++ pl_filter_free; ++ pl_filter_function_bcspline; ++ pl_filter_function_bicubic; ++ pl_filter_function_blackman; ++ pl_filter_function_box; ++ pl_filter_function_catmull_rom; ++ pl_filter_function_eq; ++ pl_filter_function_gaussian; ++ pl_filter_function_hamming; ++ pl_filter_function_hann; ++ pl_filter_function_jinc; ++ pl_filter_function_kaiser; ++ pl_filter_function_mitchell; ++ pl_filter_function_robidoux; ++ pl_filter_function_robidouxsharp; ++ pl_filter_function_sinc; ++ pl_filter_function_sphinx; ++ pl_filter_function_spline16; ++ pl_filter_function_spline36; ++ pl_filter_function_spline64; ++ pl_filter_function_triangle; ++ pl_filter_function_welch; ++ pl_filter_gaussian; ++ pl_filter_generate; ++ pl_filter_ginseng; ++ pl_filter_haasnsoft; ++ pl_filter_lanczos; ++ pl_filter_mitchell; ++ pl_filter_robidoux; ++ pl_filter_robidouxsharp; ++ pl_filter_sample; ++ pl_filter_sinc; ++ pl_filter_spline16; ++ pl_filter_spline36; ++ pl_filter_spline64; ++ pl_filter_triangle; ++ pl_find_fmt; ++ pl_find_named_filter; ++ pl_find_named_filter_function; ++ pl_find_named_fmt; ++ pl_find_vertex_fmt; ++ pl_fmt_is_ordered; ++ pl_generate_bayer_matrix; ++ pl_generate_blue_noise; ++ pl_get_color_mapping_matrix; ++ pl_get_cone_matrix; ++ pl_get_rgb2xyz_matrix; ++ pl_get_xyz2rgb_matrix; ++ pl_gpu_flush; ++ pl_icc_profile_equal; ++ pl_log_color; ++ pl_log_simple; ++ pl_matrix2x2_apply; ++ pl_matrix2x2_identity; ++ pl_matrix3x3_apply; ++ pl_matrix3x3_identity; ++ pl_matrix3x3_invert; ++ pl_matrix3x3_mul; ++ pl_matrix3x3_scale; ++ pl_named_filter_functions; ++ pl_named_filters; ++ pl_optimal_transfer_stride; ++ pl_pass_create; ++ pl_pass_destroy; ++ pl_pass_run; ++ pl_plane_data_from_mask; ++ pl_plane_find_fmt; ++ pl_push_constant_layout; ++ pl_raw_primaries_get; ++ pl_rect2d_normalize; ++ pl_rect3d_normalize; ++ pl_render_default_params; ++ pl_renderer_create; ++ pl_renderer_destroy; ++ pl_renderer_flush_cache; ++ pl_render_image; ++ pl_render_target_from_swapchain; ++ pl_shader_alloc; ++ pl_shader_color_map; ++ pl_shader_cone_distort; ++ pl_shader_deband; ++ pl_shader_decode_color; ++ pl_shader_delinearize; ++ pl_shader_dither; ++ pl_shader_encode_color; ++ pl_shader_finalize; ++ pl_shader_free; ++ pl_shader_is_compute; ++ pl_shader_linearize; ++ pl_shader_obj_destroy; ++ pl_shader_output_size; ++ pl_shader_reset; ++ pl_shader_sample_bicubic; ++ pl_shader_sample_direct; ++ pl_shader_sample_ortho; ++ pl_shader_sample_polar; ++ pl_shader_sigmoidize; ++ pl_shader_signature; ++ pl_shader_unsigmoidize; ++ pl_sigmoid_default_params; ++ pl_swapchain_destroy; ++ pl_swapchain_latency; ++ pl_swapchain_start_frame; ++ pl_swapchain_submit_frame; ++ pl_swapchain_swap_buffers; ++ pl_tex_blit; ++ pl_tex_clear; ++ pl_tex_create; ++ pl_tex_destroy; ++ pl_tex_download; ++ pl_tex_invalidate; ++ pl_tex_upload; ++ pl_transform2x2_apply; ++ pl_transform2x2_identity; ++ pl_transform3x3_apply; ++ pl_transform3x3_identity; ++ pl_transform3x3_invert; ++ pl_transform3x3_scale; ++ pl_upload_plane; ++ pl_var_float; ++ pl_var_from_fmt; ++ pl_var_glsl_type_name; ++ pl_var_host_layout; ++ pl_var_mat2; ++ pl_var_mat3; ++ pl_var_mat4; ++ pl_var_type_size; ++ pl_var_uint; ++ pl_var_vec2; ++ pl_var_vec3; ++ pl_var_vec4; ++ pl_vision_achromatopsia; ++ pl_vision_deuteranomaly; ++ pl_vision_deuteranopia; ++ pl_vision_monochromacy; ++ pl_vision_normal; ++ pl_vision_protanomaly; ++ pl_vision_protanopia; ++ pl_vision_tritanomaly; ++ pl_vision_tritanopia; ++ pl_vk_inst_create; ++ pl_vk_inst_default_params; ++ pl_vk_inst_destroy; ++ pl_vulkan_create; ++ pl_vulkan_create_swapchain; ++ pl_vulkan_default_params; ++ pl_vulkan_destroy; ++ pl_vulkan_hold; ++ pl_vulkan_release; ++ pl_vulkan_wrap; ++ ++ local: ++ *; ++}; +diff --git a/src/meson.build b/src/meson.build +index b920abf..f2d7577 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -6,8 +6,7 @@ version = majorver + '.' + apiver + '.' + fixver + + c_opts = [ + '-D_ISOC99_SOURCE', '-D_GNU_SOURCE', '-D_XOPEN_SOURCE=700', +- '-U__STRICT_ANSI__', '-fvisibility=hidden', +- '-Wmissing-prototypes', '-Wno-pointer-sign' ++ '-U__STRICT_ANSI__', '-Wmissing-prototypes', '-Wno-pointer-sign' + ] + + # glslang needs c++11 +@@ -199,15 +198,21 @@ configure_file( + configuration: conf, + ) + ++# Symbol visibility ++symfile = 'libplacebo.sym' ++vflag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), symfile) ++ + # Build process + add_project_arguments(build_opts + c_opts, language: 'c') + add_project_arguments(build_opts + cpp_opts, language: 'cpp') + inc = include_directories('./include') ++ + lib = library('placebo', sources, + install: true, + dependencies: build_deps, + soversion: apiver, + include_directories: inc, ++ link_args: vflag, + ) + + # Install process +@@ -228,6 +233,7 @@ if get_option('tests') + foreach t : tests + e = executable('test.' + t, 'tests/' + t, + dependencies: build_deps + tdeps, ++ objects: lib.extract_all_objects(), + include_directories: inc + ) + +diff --git a/src/renderer.c b/src/renderer.c +index 753f3b9..9400d77 100644 +--- a/src/renderer.c ++++ b/src/renderer.c +@@ -21,6 +21,8 @@ + #include "shaders.h" + #include "dispatch.h" + ++#include ++ + enum { + // The scalers for each plane are set up to be just the index itself + SCALER_PLANE0 = 0, +diff --git a/src/shaders.c b/src/shaders.c +index 767b649..a21efc5 100644 +--- a/src/shaders.c ++++ b/src/shaders.c +@@ -490,9 +490,13 @@ ident_t sh_prng(struct pl_shader *sh, bool temporal, ident_t *p_state) + " return fract(state * 1.0/41.0); \n" + "}\n", permute, randfun, permute); + ++ // Phi is the most irrational number, so it's a good candidate for ++ // generating seed values to the PRNG ++ static const double phi = 1.618033988749895; ++ + const char *seed = "0.0"; + if (temporal) { +- float seedval = modff(M_PI * sh->index, &(float){0}); ++ float seedval = modff(phi * sh->index, &(float){0}); + seed = sh_var(sh, (struct pl_shader_var) { + .var = pl_var_float("seed"), + .data = &seedval, +@@ -501,8 +505,10 @@ ident_t sh_prng(struct pl_shader *sh, bool temporal, ident_t *p_state) + } + + ident_t state = sh_fresh(sh, "prng"); +- GLSL("vec3 %s_m = vec3(gl_FragCoord.xy, %s) + vec3(1.0); \n" +- "float %s = %s(%s(%s(%s_m.x) + %s_m.y) + %s_m.z); \n", ++ GLSL("vec2 init = fract(gl_FragCoord.xy * vec2(%f)); \n" ++ "vec3 %s_m = vec3(init, %s) + vec3(1.0); \n" ++ "float %s = %s(%s(%s(%s_m.x) + %s_m.y) + %s_m.z); \n", ++ phi, + state, seed, + state, permute, permute, permute, state, state, state); + +diff --git a/src/shaders.h b/src/shaders.h +index 6b355c5..9c82831 100644 +--- a/src/shaders.h ++++ b/src/shaders.h +@@ -24,6 +24,8 @@ + #include "context.h" + #include "gpu.h" + ++#include ++ + // This represents an identifier (e.g. name of function, uniform etc.) for + // a shader resource. The generated identifiers are immutable, but only live + // until pl_shader_reset - so make copies when passing to external stuff. +diff --git a/src/shaders/colorspace.c b/src/shaders/colorspace.c +index bb74bed..cd2eb52 100644 +--- a/src/shaders/colorspace.c ++++ b/src/shaders/colorspace.c +@@ -18,6 +18,9 @@ + #include + #include "shaders.h" + ++#include ++#include ++ + void pl_shader_decode_color(struct pl_shader *sh, struct pl_color_repr *repr, + const struct pl_color_adjustment *params) + { +diff --git a/src/shaders/sampling.c b/src/shaders/sampling.c +index e68fa21..6f3cd81 100644 +--- a/src/shaders/sampling.c ++++ b/src/shaders/sampling.c +@@ -18,6 +18,8 @@ + #include + #include "shaders.h" + ++#include ++ + const struct pl_deband_params pl_deband_default_params = { + .iterations = 1, + .threshold = 4.0, +diff --git a/src/spirv.h b/src/spirv.h +index d1ecc39..b96e39b 100644 +--- a/src/spirv.h ++++ b/src/spirv.h +@@ -20,6 +20,8 @@ + #include "common.h" + #include "context.h" + ++#include ++ + enum glsl_shader_stage { + GLSL_SHADER_VERTEX, + GLSL_SHADER_FRAGMENT, +diff --git a/src/swapchain.h b/src/swapchain.h +index d71e909..82a4edc 100644 +--- a/src/swapchain.h ++++ b/src/swapchain.h +@@ -18,6 +18,7 @@ + #pragma once + + #include "common.h" ++#include + + #define SW_PFN(name) __typeof__(pl_swapchain_##name) *name + struct pl_sw_fns { +diff --git a/src/tests/bench.c b/src/tests/bench.c +index 4e7008a..523e719 100644 +--- a/src/tests/bench.c ++++ b/src/tests/bench.c +@@ -1,6 +1,11 @@ + #include "tests.h" + #include + ++#include ++#include ++#include ++#include ++ + #define TEX_SIZE 2048 + #define CUBE_SIZE 64 + #define NUM_FBOS 10 +diff --git a/src/tests/colorspace.c b/src/tests/colorspace.c +index 670df3a..f52f917 100644 +--- a/src/tests/colorspace.c ++++ b/src/tests/colorspace.c +@@ -1,4 +1,5 @@ + #include "tests.h" ++#include + + int main() + { +diff --git a/src/tests/dither.c b/src/tests/dither.c +index d827746..8865beb 100644 +--- a/src/tests/dither.c ++++ b/src/tests/dither.c +@@ -1,4 +1,5 @@ + #include "tests.h" ++#include + + #define SHIFT 4 + #define SIZE (1 << SHIFT) +diff --git a/src/tests/filters.c b/src/tests/filters.c +index 57d1c4b..e0a221e 100644 +--- a/src/tests/filters.c ++++ b/src/tests/filters.c +@@ -1,4 +1,5 @@ + #include "tests.h" ++#include + + int main() + { +diff --git a/src/tests/gpu_tests.h b/src/tests/gpu_tests.h +index b69c693..1d5d22f 100644 +--- a/src/tests/gpu_tests.h ++++ b/src/tests/gpu_tests.h +@@ -1,6 +1,12 @@ + #include "tests.h" + #include "shaders.h" + ++#include ++#include ++#include ++#include ++#include ++ + static void pl_test_roundtrip(const struct pl_gpu *gpu, const struct pl_tex *tex, + float *src, float *dst) + { +diff --git a/src/tests/tests.h b/src/tests/tests.h +index 9b27e4c..2653e26 100644 +--- a/src/tests/tests.h ++++ b/src/tests/tests.h +@@ -18,6 +18,7 @@ + #pragma once + + #include "common.h" ++#include + + #include + #include +diff --git a/src/tests/utils.c b/src/tests/utils.c +index bf62f60..e7e1029 100644 +--- a/src/tests/utils.c ++++ b/src/tests/utils.c +@@ -1,4 +1,7 @@ + #include "tests.h" ++#include "gpu.h" ++ ++#include + + int main() + { +@@ -25,4 +28,63 @@ int main() + REQUIRE(data.component_size[i] == 10); + REQUIRE(data.component_map[i] == i); + } ++ ++ // Test GLSL structure packing ++ struct pl_var vec1 = pl_var_float(""), ++ vec2 = pl_var_vec2(""), ++ vec3 = pl_var_vec3(""), ++ mat2 = pl_var_mat2(""), ++ mat3 = pl_var_mat3(""); ++ ++ struct pl_var_layout layout; ++ layout = std140_layout(NULL, 0, &vec2); ++ REQUIRE(layout.offset == 0); ++ REQUIRE(layout.stride == 2 * sizeof(float)); ++ REQUIRE(layout.size == 2 * sizeof(float)); ++ ++ layout = std140_layout(NULL, 3 * sizeof(float), &vec3); ++ REQUIRE(layout.offset == 4 * sizeof(float)); ++ REQUIRE(layout.stride == 3 * sizeof(float)); ++ REQUIRE(layout.size == 3 * sizeof(float)); ++ ++ layout = std140_layout(NULL, 2 * sizeof(float), &mat3); ++ REQUIRE(layout.offset == 4 * sizeof(float)); ++ REQUIRE(layout.stride == 4 * sizeof(float)); ++ REQUIRE(layout.size == 3 * 4 * sizeof(float)); ++ ++ layout = std430_layout(NULL, 2 * sizeof(float), &mat3); ++ REQUIRE(layout.offset == 4 * sizeof(float)); ++ REQUIRE(layout.stride == 3 * sizeof(float)); ++ REQUIRE(layout.size == 3 * 3 * sizeof(float)); ++ ++ layout = std140_layout(NULL, 3 * sizeof(float), &vec1); ++ REQUIRE(layout.offset == 3 * sizeof(float)); ++ REQUIRE(layout.stride == sizeof(float)); ++ REQUIRE(layout.size == sizeof(float)); ++ ++ struct pl_var vec2a = vec2; ++ vec2a.dim_a = 50; ++ ++ layout = std140_layout(NULL, sizeof(float), &vec2a); ++ REQUIRE(layout.offset == 4 * sizeof(float)); ++ REQUIRE(layout.stride == 4 * sizeof(float)); ++ REQUIRE(layout.size == 50 * 4 * sizeof(float)); ++ ++ layout = std430_layout(NULL, sizeof(float), &vec2a); ++ REQUIRE(layout.offset == 2 * sizeof(float)); ++ REQUIRE(layout.stride == 2 * sizeof(float)); ++ REQUIRE(layout.size == 50 * 2 * sizeof(float)); ++ ++ struct pl_var mat2a = mat2; ++ mat2a.dim_a = 20; ++ ++ layout = std140_layout(NULL, 5 * sizeof(float), &mat2a); ++ REQUIRE(layout.offset == 8 * sizeof(float)); ++ REQUIRE(layout.stride == 4 * sizeof(float)); ++ REQUIRE(layout.size == 20 * 2 * 4 * sizeof(float)); ++ ++ layout = std430_layout(NULL, 5 * sizeof(float), &mat2a); ++ REQUIRE(layout.offset == 6 * sizeof(float)); ++ REQUIRE(layout.stride == 2 * sizeof(float)); ++ REQUIRE(layout.size == 20 * 2 * 2 * sizeof(float)); + } +diff --git a/src/tests/vulkan.c b/src/tests/vulkan.c +index b928afe..c29ed3c 100644 +--- a/src/tests/vulkan.c ++++ b/src/tests/vulkan.c +@@ -1,4 +1,5 @@ + #include "gpu_tests.h" ++#include + + int main() + { +diff --git a/src/utils/upload.c b/src/utils/upload.c +index e25a2fd..43867d4 100644 +--- a/src/utils/upload.c ++++ b/src/utils/upload.c +@@ -21,6 +21,8 @@ + #include "common.h" + #include "gpu.h" + ++#include ++ + struct comp { + int order; // e.g. 0, 1, 2, 3 for RGBA + int size; // size in bits +diff --git a/src/vulkan/common.h b/src/vulkan/common.h +index 04d6e27..a7bd4b5 100644 +--- a/src/vulkan/common.h ++++ b/src/vulkan/common.h +@@ -20,6 +20,8 @@ + #include "../common.h" + #include "../context.h" + ++#include ++ + // Vulkan allows the optional use of a custom allocator. We don't need one but + // mark this parameter with a better name in case we ever decide to change this + // in the future. (And to make the code more readable) +diff --git a/src/vulkan/context.c b/src/vulkan/context.c +index 41bb1c7..3d4756c 100644 +--- a/src/vulkan/context.c ++++ b/src/vulkan/context.c +@@ -287,7 +287,7 @@ static bool find_physical_device(struct vk_ctx *vk, + continue; + } + +- if (params->device_name) { ++ if (params->device_name && params->device_name[0] != '\0') { + if (strcmp(params->device_name, props.deviceName) == 0) { + vk->physd = devices[i]; + best = 10; // high number... +diff --git a/src/vulkan/utils.c b/src/vulkan/utils.c +index c663a5c..7c138fe 100644 +--- a/src/vulkan/utils.c ++++ b/src/vulkan/utils.c +@@ -145,6 +145,9 @@ const char *vk_obj_str(VkDebugReportObjectTypeEXT obj) + CASE(OBJECT_TABLE_NVX, VkObjectTableNVX); + CASE(INDIRECT_COMMANDS_LAYOUT_NVX, VkIndirectCommandsLayoutNVX); + #endif ++#ifdef VK_NVX_raytracing ++ CASE(ACCELERATION_STRUCTURE_NVX, VkAccelerationStructureNVX); ++#endif + + // Included to satisfy the switch coverage check + case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT: +-- +2.17.1 + diff --git a/libplacebo.spec b/libplacebo.spec index 02e451a..db503cc 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -6,6 +6,8 @@ Summary: Reusable library for GPU-accelerated video/image rendering primi License: LGPLv2+ URL: https://github.com/haasn/libplacebo Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +Patch0: libplacebo-0.6.0-backports.patch +Patch1: 0002-WAR-older-shaderc.patch BuildRequires: gcc BuildRequires: gcc-c++ From 67d5d856cee781c2099f38594e492f8280c9d836 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Wed, 3 Oct 2018 18:33:13 +0200 Subject: [PATCH 13/46] Update build --- 0002-WAR-older-shaderc.patch | 25 ------------------------- libplacebo.spec | 9 ++++++--- 2 files changed, 6 insertions(+), 28 deletions(-) delete mode 100644 0002-WAR-older-shaderc.patch diff --git a/0002-WAR-older-shaderc.patch b/0002-WAR-older-shaderc.patch deleted file mode 100644 index 8245cff..0000000 --- a/0002-WAR-older-shaderc.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 72a8c1c547a8f40eb8a84485ab26a01b16f14fcd Mon Sep 17 00:00:00 2001 -From: Nicolas Chauvet -Date: Wed, 3 Oct 2018 12:28:48 +0200 -Subject: [PATCH 2/2] WAR older shaderc - ---- - src/spirv_shaderc.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/spirv_shaderc.c b/src/spirv_shaderc.c -index c86679a..910d76c 100644 ---- a/src/spirv_shaderc.c -+++ b/src/spirv_shaderc.c -@@ -46,7 +46,7 @@ static bool shaderc_init(struct spirv_compiler *spirv) - goto error; - - shaderc_compile_options_set_optimization_level(p->opts, -- shaderc_optimization_level_performance); -+ shaderc_optimization_level_zero); - - int ver, rev; - shaderc_get_spv_version(&ver, &rev); --- -2.17.1 - diff --git a/libplacebo.spec b/libplacebo.spec index db503cc..7112462 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,19 +1,18 @@ Name: libplacebo Version: 0.6.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ URL: https://github.com/haasn/libplacebo Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz Patch0: libplacebo-0.6.0-backports.patch -Patch1: 0002-WAR-older-shaderc.patch BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: meson BuildRequires: lcms2-devel -BuildRequires: libshaderc-devel +BuildRequires: libshaderc-devel > 2018.0 # Use a more modern compiler toolchain on EL7 %if 0%{?rhel} == 7 BuildRequires: devtoolset-7-toolchain, devtoolset-7-libatomic-devel @@ -87,6 +86,10 @@ developing applications that use %{name}. %changelog +* Wed Oct 03 2018 Nicolas Chauvet - 0.6.0-2 +- Drop WAR patch +- Enforce the shaderc version + * Mon Oct 01 2018 Nicolas Chauvet - 0.6.0-1 - Update to 0.6.0 From 6c0ad421a6eabc3e16c9b7b145ed57f0eabf6c5f Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Thu, 4 Oct 2018 08:26:17 +0200 Subject: [PATCH 14/46] Fix version requires --- libplacebo.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libplacebo.spec b/libplacebo.spec index 7112462..0745fb1 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -12,7 +12,7 @@ BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: meson BuildRequires: lcms2-devel -BuildRequires: libshaderc-devel > 2018.0 +BuildRequires: libshaderc-devel >= 2018.0-1 # Use a more modern compiler toolchain on EL7 %if 0%{?rhel} == 7 BuildRequires: devtoolset-7-toolchain, devtoolset-7-libatomic-devel From 2c5126a0734d66488e82378dc8dc5638b37aafc0 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 1 Feb 2019 07:58:13 +0000 Subject: [PATCH 15/46] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- libplacebo.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libplacebo.spec b/libplacebo.spec index 0745fb1..35f6250 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,6 +1,6 @@ Name: libplacebo Version: 0.6.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -86,6 +86,9 @@ developing applications that use %{name}. %changelog +* Fri Feb 01 2019 Fedora Release Engineering - 0.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Wed Oct 03 2018 Nicolas Chauvet - 0.6.0-2 - Drop WAR patch - Enforce the shaderc version From 64b5706e6f47c7204374c3a2c9f723c7398a21b9 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Sat, 6 Apr 2019 17:58:48 +0200 Subject: [PATCH 16/46] Update libplacebo --- libplacebo-0.6.0-backports.patch | 1043 ------------------------------ libplacebo.spec | 10 +- sources | 2 +- 3 files changed, 7 insertions(+), 1048 deletions(-) delete mode 100644 libplacebo-0.6.0-backports.patch diff --git a/libplacebo-0.6.0-backports.patch b/libplacebo-0.6.0-backports.patch deleted file mode 100644 index 6c910c7..0000000 --- a/libplacebo-0.6.0-backports.patch +++ /dev/null @@ -1,1043 +0,0 @@ -From e2b9c2942da619d7f188492676b806501202eea1 Mon Sep 17 00:00:00 2001 -From: Nicolas Chauvet -Date: Wed, 3 Oct 2018 10:30:37 +0200 -Subject: [PATCH] Squashed commit of the following: - -commit b6104e121006290f146177e1847ccd7826d2b6f6 -Author: Niklas Haas -Date: Sat Sep 29 18:18:49 2018 +0200 - - common: switch to explicit includes - - Since we no longer need the GCC pragma for symbol visibility, there's - also no more reason to have common.h import everything under the sun - - so only have modules import what they actually use. - - This speeds up compilation a tiny bit. - -commit 6835ae5d2ffb5e8a5257992e0a606d9209721e66 -Author: Niklas Haas -Date: Sat Sep 29 18:08:45 2018 +0200 - - meson: use a linker script for symbol visibility - - This prevents us from re-exporting e.g. glslang symbols, thereby - properly fixing #42. - -commit 1484190ce490dbd277cd55b586e1952dd4d1d0d0 -Author: Niklas Haas -Date: Sat Sep 29 17:47:48 2018 +0200 - - meson: build C++ with -fvisibility=hidden as well - -commit de715031efe61d9399b8ad8468364e6798c5a11f -Author: Niklas Haas -Date: Sat Sep 29 02:59:29 2018 +0200 - - tests: add test cases for std140/std430 packing - - To avoid introducing regressions in the future, now that I'm sure it - works as it's supposed to. - -commit e6e7be86e8d7585f8178544a2fc3c4eaca5b336e -Author: Niklas Haas -Date: Sat Sep 29 02:59:16 2018 +0200 - - gpu: add clarifying comment on pl_var_layout - -commit 6c5c652a7a2baeb1fb8be74ca8794ce510b86ac2 -Author: Niklas Haas -Date: Sat Sep 29 03:02:16 2018 +0200 - - vulkan: add VK_NVX_raytracing boilerplate - -commit e6a3f6f06fa62bd8eeb542ae82f34666f6b1c05e -Author: Niklas Haas -Date: Sat Sep 29 01:18:47 2018 +0200 - - dispatch: fix std140/std430 packing rules - - Actually, turns out our rules were wrong after all: vec3 only consumes 3 - words even though it's aligned to 4, which we were not correctly - accounting for. - - So in the struct { vec3; float; vec2 } the float and vec3 can be packed - into the same vec4, whereas our code was assuming the vec3 consumed all - four words (like its alignment). - -commit 792a21f9027af1d529d44b3a463c2b90ab38b451 -Author: Niklas Haas -Date: Sat Sep 29 00:40:02 2018 +0200 - - dispatch: use explicit offsets for push constants - - In the distant past this was a compile error, but it seems that has been - fixed in glslang etc. - - Using explicit offsets is both safer and actually solves some very real - driver bugs w.r.t wrong std430 packing. - -commit 693b346e2a10d7e33104da8e00173c9224cc94d6 -Author: Niklas Haas -Date: Fri Sep 28 22:50:43 2018 +0200 - - shaders: fix compilation on clang - - Clang doesn't like using sqrt in a constexpr, so just hard-code the - constant. Whatever. - -commit 6875a9c833f93bf803ca35a5115c2116e91e61d5 -Author: Niklas Haas -Date: Fri Sep 28 22:18:00 2018 +0200 - - shaders: improve the seeding - - Seeding by gl_FragCoord was very bad since the PRNG seed generation - performs horribly for large inputs. (mpv avoided this problem since it - was seeding with the [0,1)-scaled texture coordinates, but we don't have - access to those here) - - Also, multiplying the temporal index by pi also resulted in relatively - cyclic patterns, since pi is well-approximated by 22/7. - - A simple way to salvage the situation without major code changes is to - just use fract(phi * x) to turn an integer counter into a quasi-random - floating point input. Since phi is the most irrational number this does - not generate any visually obvious patterns at realistic scales. - -commit 5278a77eacb35559b65aca656c060b42c1fe5926 -Author: Niklas Haas -Date: Fri Sep 28 18:18:15 2018 +0200 - - glslang: update for new glslang version - - This adds some new members to this struct. I still have zero clue why - they don't provide this structure for us, so we don't have to copy/paste - it from example code.. - -commit 2345f60b9350c1ff5d64a682bbd0144cbf7f92f9 -Author: Sebastian Ramacher -Date: Fri Sep 28 17:43:52 2018 +0200 - - meson: require version 0.47 - - Type 'feature' for get_option was introduced in meson 0.47, so require - it. - -commit 17ded744c2459294fc900a4309645b90f0296fc8 -Author: Niklas Haas -Date: Fri Sep 28 03:27:18 2018 +0200 - - vulkan: treat empty device name like NULL - - Right now, an empty device name would reject all devices except one - that's literally empty. This change makes that case behave more sanely. - -commit cc394dd0aa0f72ab530164150e70e8c4b3f56d3a -Author: Niklas Haas -Date: Fri Sep 28 00:23:38 2018 +0200 - - travis: avoid meson 0.48.0 - - This breaks the test suite - - cf. mesonbuild/meson#4248 ---- - .travis.yml | 2 +- - meson.build | 1 + - src/colorspace.c | 1 + - src/common.c | 1 + - src/common.h | 24 ---- - src/context.h | 1 + - src/dispatch.c | 2 +- - src/dispatch.h | 1 + - src/dither.c | 1 + - src/filters.c | 2 + - src/glsl/glslang.cc | 12 ++ - src/gpu.c | 30 ++--- - src/gpu.h | 2 + - src/include/libplacebo/gpu.h | 2 + - src/lcms.h | 2 + - src/libplacebo.sym | 219 +++++++++++++++++++++++++++++++++++ - src/meson.build | 10 +- - src/renderer.c | 2 + - src/shaders.c | 12 +- - src/shaders.h | 2 + - src/shaders/colorspace.c | 3 + - src/shaders/sampling.c | 2 + - src/spirv.h | 2 + - src/swapchain.h | 1 + - src/tests/bench.c | 5 + - src/tests/colorspace.c | 1 + - src/tests/dither.c | 1 + - src/tests/filters.c | 1 + - src/tests/gpu_tests.h | 6 + - src/tests/tests.h | 1 + - src/tests/utils.c | 62 ++++++++++ - src/tests/vulkan.c | 1 + - src/utils/upload.c | 2 + - src/vulkan/common.h | 2 + - src/vulkan/context.c | 2 +- - src/vulkan/utils.c | 3 + - 36 files changed, 378 insertions(+), 46 deletions(-) - create mode 100644 src/libplacebo.sym - -diff --git a/.travis.yml b/.travis.yml -index e0e3e17..2b0b09f 100644 ---- a/.travis.yml -+++ b/.travis.yml -@@ -33,4 +33,4 @@ install: - - export PATH="`pwd`/bin:${PATH}" - - pyenv global system 3.6 - - wget https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-linux.zip && unzip -q ninja-linux.zip -d bin -- - pip3 install meson -+ - pip3 install 'meson != 0.48.0' -diff --git a/meson.build b/meson.build -index 720e988..b96d7ed 100644 ---- a/meson.build -+++ b/meson.build -@@ -1,6 +1,7 @@ - project('libplacebo', ['c', 'cpp'], - license: 'LGPL2.1+', - default_options: ['c_std=c99'], -+ meson_version: '>=0.47', - ) - - subdir('src') -diff --git a/src/colorspace.c b/src/colorspace.c -index ee97f74..20d28b5 100644 ---- a/src/colorspace.c -+++ b/src/colorspace.c -@@ -18,6 +18,7 @@ - #include - - #include "common.h" -+#include - - bool pl_color_system_is_ycbcr_like(enum pl_color_system sys) - { -diff --git a/src/common.c b/src/common.c -index f787494..13d0f4f 100644 ---- a/src/common.c -+++ b/src/common.c -@@ -16,6 +16,7 @@ - */ - - #include "common.h" -+#include - - void pl_rect2d_normalize(struct pl_rect2d *rc) - { -diff --git a/src/common.h b/src/common.h -index b336cac..d5439d2 100644 ---- a/src/common.h -+++ b/src/common.h -@@ -28,30 +28,6 @@ - #include "config.h" - #include "pl_assert.h" - --// Include all of the symbols that should be public in a way that marks them --// as being externally visible. (Otherwise, all symbols are hidden by default) --#pragma GCC visibility push(default) -- --#include "include/libplacebo/colorspace.h" --#include "include/libplacebo/common.h" --#include "include/libplacebo/context.h" --#include "include/libplacebo/dispatch.h" --#include "include/libplacebo/dither.h" --#include "include/libplacebo/filters.h" --#include "include/libplacebo/gpu.h" --#include "include/libplacebo/renderer.h" --#include "include/libplacebo/shaders.h" --#include "include/libplacebo/shaders/colorspace.h" --#include "include/libplacebo/shaders/sampling.h" --#include "include/libplacebo/swapchain.h" --#include "include/libplacebo/utils/upload.h" -- --#if PL_HAVE_VULKAN --#include "include/libplacebo/vulkan.h" --#endif -- --#pragma GCC visibility pop -- - // Align up to the nearest multiple of an arbitrary alignment, which may also - // be 0 to signal no alignment requirements. - #define PL_ALIGN(x, align) ((align) ? ((x) + (align) - 1) / (align) * (align) : (x)) -diff --git a/src/context.h b/src/context.h -index 939c5ce..9223d3d 100644 ---- a/src/context.h -+++ b/src/context.h -@@ -21,6 +21,7 @@ - #include "bstr/bstr.h" - - #include "common.h" -+#include - - struct pl_context { - struct pl_context_params params; -diff --git a/src/dispatch.c b/src/dispatch.c -index 323b526..f2beeaf 100644 ---- a/src/dispatch.c -+++ b/src/dispatch.c -@@ -313,7 +313,7 @@ static void generate_shaders(struct pl_dispatch *dp, struct pass *pass, - struct pass_var *pv = &pass->vars[i]; - if (pv->type != PASS_VAR_PUSHC) - continue; -- ADD(glsl, "/*offset=%zu*/ ", pv->layout.offset); -+ ADD(glsl, " layout(offset=%zu) ", pv->layout.offset); - add_var(dp, glsl, var); - } - ADD(glsl, "};\n"); -diff --git a/src/dispatch.h b/src/dispatch.h -index 1db70ad..c2fa0c3 100644 ---- a/src/dispatch.h -+++ b/src/dispatch.h -@@ -18,6 +18,7 @@ - #pragma once - - #include "common.h" -+#include - - // Like `pl_dispatch_begin`, but has an extra `unique` parameter. If this is - // true, the generated shader will be uniquely namespaced `unique` and may be -diff --git a/src/dither.c b/src/dither.c -index e2b54ae..4f739c9 100644 ---- a/src/dither.c -+++ b/src/dither.c -@@ -30,6 +30,7 @@ - #include - - #include "common.h" -+#include - - void pl_generate_bayer_matrix(float *data, int size) - { -diff --git a/src/filters.c b/src/filters.c -index 7f7aca4..bfaf7f2 100644 ---- a/src/filters.c -+++ b/src/filters.c -@@ -39,6 +39,8 @@ - #include "common.h" - #include "context.h" - -+#include -+ - bool pl_filter_function_eq(const struct pl_filter_function *a, - const struct pl_filter_function *b) - { -diff --git a/src/glsl/glslang.cc b/src/glsl/glslang.cc -index d0fd081..8b98bf6 100644 ---- a/src/glsl/glslang.cc -+++ b/src/glsl/glslang.cc -@@ -192,6 +192,18 @@ const TBuiltInResource DefaultTBuiltInResource = { - /* .MaxCullDistances = */ 8, - /* .MaxCombinedClipAndCullDistances = */ 8, - /* .MaxSamples = */ 4, -+#if GLSLANG_PATCH_LEVEL >= 2892 -+ /* .maxMeshOutputVerticesNV = */ 256, -+ /* .maxMeshOutputPrimitivesNV = */ 512, -+ /* .maxMeshWorkGroupSizeX_NV = */ 32, -+ /* .maxMeshWorkGroupSizeY_NV = */ 1, -+ /* .maxMeshWorkGroupSizeZ_NV = */ 1, -+ /* .maxTaskWorkGroupSizeX_NV = */ 32, -+ /* .maxTaskWorkGroupSizeY_NV = */ 1, -+ /* .maxTaskWorkGroupSizeZ_NV = */ 1, -+ /* .maxMeshViewCountNV = */ 4, -+#endif -+ - /* .limits = */ { - /* .nonInductiveForLoops = */ 1, - /* .whileLoops = */ 1, -diff --git a/src/gpu.c b/src/gpu.c -index f34d6ab..9308c5c 100644 ---- a/src/gpu.c -+++ b/src/gpu.c -@@ -1057,22 +1057,23 @@ struct pl_var_layout std140_layout(const struct pl_gpu *gpu, size_t offset, - - // std140 packing rules: - // 1. The size of generic values is their size in bytes -- // 2. The size of vectors is the vector length * the base count, with the -- // exception of *vec3 which is always the same size as *vec4 -+ // 2. The size of vectors is the vector length * the base count - // 3. Matrices are treated like arrays of column vectors - // 4. The size of array rows is that of the element size rounded up to - // the nearest multiple of vec4 -- // 5. All values are aligned to a multiple of their size (stride for arrays) -- size_t size = el_size * var->dim_v; -+ // 5. All values are aligned to a multiple of their size (stride for arrays), -+ // with the exception of vec3 which is aligned like vec4 -+ size_t stride = el_size * var->dim_v; -+ size_t align = stride; - if (var->dim_v == 3) -- size += el_size; -+ align += el_size; - if (var->dim_m * var->dim_a > 1) -- size = PL_ALIGN2(size, sizeof(float[4])); -+ stride = align = PL_ALIGN2(stride, sizeof(float[4])); - - return (struct pl_var_layout) { -- .offset = PL_ALIGN2(offset, size), -- .stride = size, -- .size = size * var->dim_m * var->dim_a, -+ .offset = PL_ALIGN2(offset, align), -+ .stride = stride, -+ .size = stride * var->dim_m * var->dim_a, - }; - } - -@@ -1083,14 +1084,15 @@ struct pl_var_layout std430_layout(const struct pl_gpu *gpu, size_t offset, - - // std430 packing rules: like std140, except arrays/matrices are always - // "tightly" packed, even arrays/matrices of vec3s -- size_t size = el_size * var->dim_v; -+ size_t stride = el_size * var->dim_v; -+ size_t align = stride; - if (var->dim_v == 3 && var->dim_m == 1 && var->dim_a == 1) -- size += el_size; -+ align += el_size; - - return (struct pl_var_layout) { -- .offset = PL_ALIGN2(offset, size), -- .stride = size, -- .size = size * var->dim_m * var->dim_a, -+ .offset = PL_ALIGN2(offset, align), -+ .stride = stride, -+ .size = stride * var->dim_m * var->dim_a, - }; - } - -diff --git a/src/gpu.h b/src/gpu.h -index a45ed90..408d263 100644 ---- a/src/gpu.h -+++ b/src/gpu.h -@@ -18,6 +18,8 @@ - #pragma once - - #include "common.h" -+#include -+#include - - #define GPU_PFN(name) __typeof__(pl_##name) *name - struct pl_gpu_fns { -diff --git a/src/include/libplacebo/gpu.h b/src/include/libplacebo/gpu.h -index a4377fa..21e13f8 100644 ---- a/src/include/libplacebo/gpu.h -+++ b/src/include/libplacebo/gpu.h -@@ -507,6 +507,8 @@ struct pl_var pl_var_from_fmt(const struct pl_fmt *fmt, const char *name); - // distinction between the columns of a matrix and the rows of an array. For - // example, a mat2[10] and a vec2[20] share the same pl_var_layout - the stride - // would be sizeof(vec2) and the size would be sizeof(vec2) * 2 * 10. -+// -+// For non-array/matrix types, `stride` is equal to `size`. - - struct pl_var_layout { - size_t offset; // the starting offset of the first byte -diff --git a/src/lcms.h b/src/lcms.h -index 2c727fc..c96aa64 100644 ---- a/src/lcms.h -+++ b/src/lcms.h -@@ -20,6 +20,8 @@ - #include "common.h" - #include "bstr/bstr.h" - -+#include -+ - // Compute a transformation from one color profile to another, and fill the - // provided array by the resulting 3DLUT. The array must have room for four - // components per sample. -diff --git a/src/libplacebo.sym b/src/libplacebo.sym -new file mode 100644 -index 0000000..c5c3490 ---- /dev/null -+++ b/src/libplacebo.sym -@@ -0,0 +1,219 @@ -+{ -+ global: -+ pl_3dlut_apply; -+ pl_3dlut_default_params; -+ pl_3dlut_update; -+ pl_bit_encoding_equal; -+ pl_buf_create; -+ pl_buf_destroy; -+ pl_buf_poll; -+ pl_buf_read; -+ pl_buf_storage_layout; -+ pl_buf_uniform_layout; -+ pl_buf_write; -+ pl_chroma_location_offset; -+ pl_color_adjustment_neutral; -+ pl_color_light_is_scene_referred; -+ pl_color_map_default_params; -+ pl_color_primaries_guess; -+ pl_color_primaries_is_wide_gamut; -+ pl_color_repr_decode; -+ pl_color_repr_equal; -+ pl_color_repr_hdtv; -+ pl_color_repr_jpeg; -+ pl_color_repr_merge; -+ pl_color_repr_normalize; -+ pl_color_repr_rgb; -+ pl_color_repr_sdtv; -+ pl_color_repr_uhdtv; -+ pl_color_repr_unknown; -+ pl_color_space_bt2020_hlg; -+ pl_color_space_bt709; -+ pl_color_space_equal; -+ pl_color_space_hdr10; -+ pl_color_space_infer; -+ pl_color_space_merge; -+ pl_color_space_monitor; -+ pl_color_space_srgb; -+ pl_color_space_unknown; -+ pl_color_system_guess_ycbcr; -+ pl_color_system_is_linear; -+ pl_color_system_is_ycbcr_like; -+ pl_color_transfer_nominal_peak; -+ pl_context_create; -+ pl_context_default_params; -+ pl_context_destroy; -+ pl_deband_default_params; -+ pl_desc_access_glsl_name; -+ pl_desc_namespace; -+ pl_dispatch_abort; -+ pl_dispatch_begin; -+ pl_dispatch_compute; -+ pl_dispatch_create; -+ pl_dispatch_destroy; -+ pl_dispatch_finish; -+ pl_dither_default_params; -+ pl_filter_bicubic; -+ pl_filter_box; -+ pl_filter_catmull_rom; -+ pl_filter_config_eq; -+ pl_filter_ewa_ginseng; -+ pl_filter_ewa_hann; -+ pl_filter_ewa_jinc; -+ pl_filter_ewa_lanczos; -+ pl_filter_ewa_robidoux; -+ pl_filter_ewa_robidouxsharp; -+ pl_filter_free; -+ pl_filter_function_bcspline; -+ pl_filter_function_bicubic; -+ pl_filter_function_blackman; -+ pl_filter_function_box; -+ pl_filter_function_catmull_rom; -+ pl_filter_function_eq; -+ pl_filter_function_gaussian; -+ pl_filter_function_hamming; -+ pl_filter_function_hann; -+ pl_filter_function_jinc; -+ pl_filter_function_kaiser; -+ pl_filter_function_mitchell; -+ pl_filter_function_robidoux; -+ pl_filter_function_robidouxsharp; -+ pl_filter_function_sinc; -+ pl_filter_function_sphinx; -+ pl_filter_function_spline16; -+ pl_filter_function_spline36; -+ pl_filter_function_spline64; -+ pl_filter_function_triangle; -+ pl_filter_function_welch; -+ pl_filter_gaussian; -+ pl_filter_generate; -+ pl_filter_ginseng; -+ pl_filter_haasnsoft; -+ pl_filter_lanczos; -+ pl_filter_mitchell; -+ pl_filter_robidoux; -+ pl_filter_robidouxsharp; -+ pl_filter_sample; -+ pl_filter_sinc; -+ pl_filter_spline16; -+ pl_filter_spline36; -+ pl_filter_spline64; -+ pl_filter_triangle; -+ pl_find_fmt; -+ pl_find_named_filter; -+ pl_find_named_filter_function; -+ pl_find_named_fmt; -+ pl_find_vertex_fmt; -+ pl_fmt_is_ordered; -+ pl_generate_bayer_matrix; -+ pl_generate_blue_noise; -+ pl_get_color_mapping_matrix; -+ pl_get_cone_matrix; -+ pl_get_rgb2xyz_matrix; -+ pl_get_xyz2rgb_matrix; -+ pl_gpu_flush; -+ pl_icc_profile_equal; -+ pl_log_color; -+ pl_log_simple; -+ pl_matrix2x2_apply; -+ pl_matrix2x2_identity; -+ pl_matrix3x3_apply; -+ pl_matrix3x3_identity; -+ pl_matrix3x3_invert; -+ pl_matrix3x3_mul; -+ pl_matrix3x3_scale; -+ pl_named_filter_functions; -+ pl_named_filters; -+ pl_optimal_transfer_stride; -+ pl_pass_create; -+ pl_pass_destroy; -+ pl_pass_run; -+ pl_plane_data_from_mask; -+ pl_plane_find_fmt; -+ pl_push_constant_layout; -+ pl_raw_primaries_get; -+ pl_rect2d_normalize; -+ pl_rect3d_normalize; -+ pl_render_default_params; -+ pl_renderer_create; -+ pl_renderer_destroy; -+ pl_renderer_flush_cache; -+ pl_render_image; -+ pl_render_target_from_swapchain; -+ pl_shader_alloc; -+ pl_shader_color_map; -+ pl_shader_cone_distort; -+ pl_shader_deband; -+ pl_shader_decode_color; -+ pl_shader_delinearize; -+ pl_shader_dither; -+ pl_shader_encode_color; -+ pl_shader_finalize; -+ pl_shader_free; -+ pl_shader_is_compute; -+ pl_shader_linearize; -+ pl_shader_obj_destroy; -+ pl_shader_output_size; -+ pl_shader_reset; -+ pl_shader_sample_bicubic; -+ pl_shader_sample_direct; -+ pl_shader_sample_ortho; -+ pl_shader_sample_polar; -+ pl_shader_sigmoidize; -+ pl_shader_signature; -+ pl_shader_unsigmoidize; -+ pl_sigmoid_default_params; -+ pl_swapchain_destroy; -+ pl_swapchain_latency; -+ pl_swapchain_start_frame; -+ pl_swapchain_submit_frame; -+ pl_swapchain_swap_buffers; -+ pl_tex_blit; -+ pl_tex_clear; -+ pl_tex_create; -+ pl_tex_destroy; -+ pl_tex_download; -+ pl_tex_invalidate; -+ pl_tex_upload; -+ pl_transform2x2_apply; -+ pl_transform2x2_identity; -+ pl_transform3x3_apply; -+ pl_transform3x3_identity; -+ pl_transform3x3_invert; -+ pl_transform3x3_scale; -+ pl_upload_plane; -+ pl_var_float; -+ pl_var_from_fmt; -+ pl_var_glsl_type_name; -+ pl_var_host_layout; -+ pl_var_mat2; -+ pl_var_mat3; -+ pl_var_mat4; -+ pl_var_type_size; -+ pl_var_uint; -+ pl_var_vec2; -+ pl_var_vec3; -+ pl_var_vec4; -+ pl_vision_achromatopsia; -+ pl_vision_deuteranomaly; -+ pl_vision_deuteranopia; -+ pl_vision_monochromacy; -+ pl_vision_normal; -+ pl_vision_protanomaly; -+ pl_vision_protanopia; -+ pl_vision_tritanomaly; -+ pl_vision_tritanopia; -+ pl_vk_inst_create; -+ pl_vk_inst_default_params; -+ pl_vk_inst_destroy; -+ pl_vulkan_create; -+ pl_vulkan_create_swapchain; -+ pl_vulkan_default_params; -+ pl_vulkan_destroy; -+ pl_vulkan_hold; -+ pl_vulkan_release; -+ pl_vulkan_wrap; -+ -+ local: -+ *; -+}; -diff --git a/src/meson.build b/src/meson.build -index b920abf..f2d7577 100644 ---- a/src/meson.build -+++ b/src/meson.build -@@ -6,8 +6,7 @@ version = majorver + '.' + apiver + '.' + fixver - - c_opts = [ - '-D_ISOC99_SOURCE', '-D_GNU_SOURCE', '-D_XOPEN_SOURCE=700', -- '-U__STRICT_ANSI__', '-fvisibility=hidden', -- '-Wmissing-prototypes', '-Wno-pointer-sign' -+ '-U__STRICT_ANSI__', '-Wmissing-prototypes', '-Wno-pointer-sign' - ] - - # glslang needs c++11 -@@ -199,15 +198,21 @@ configure_file( - configuration: conf, - ) - -+# Symbol visibility -+symfile = 'libplacebo.sym' -+vflag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), symfile) -+ - # Build process - add_project_arguments(build_opts + c_opts, language: 'c') - add_project_arguments(build_opts + cpp_opts, language: 'cpp') - inc = include_directories('./include') -+ - lib = library('placebo', sources, - install: true, - dependencies: build_deps, - soversion: apiver, - include_directories: inc, -+ link_args: vflag, - ) - - # Install process -@@ -228,6 +233,7 @@ if get_option('tests') - foreach t : tests - e = executable('test.' + t, 'tests/' + t, - dependencies: build_deps + tdeps, -+ objects: lib.extract_all_objects(), - include_directories: inc - ) - -diff --git a/src/renderer.c b/src/renderer.c -index 753f3b9..9400d77 100644 ---- a/src/renderer.c -+++ b/src/renderer.c -@@ -21,6 +21,8 @@ - #include "shaders.h" - #include "dispatch.h" - -+#include -+ - enum { - // The scalers for each plane are set up to be just the index itself - SCALER_PLANE0 = 0, -diff --git a/src/shaders.c b/src/shaders.c -index 767b649..a21efc5 100644 ---- a/src/shaders.c -+++ b/src/shaders.c -@@ -490,9 +490,13 @@ ident_t sh_prng(struct pl_shader *sh, bool temporal, ident_t *p_state) - " return fract(state * 1.0/41.0); \n" - "}\n", permute, randfun, permute); - -+ // Phi is the most irrational number, so it's a good candidate for -+ // generating seed values to the PRNG -+ static const double phi = 1.618033988749895; -+ - const char *seed = "0.0"; - if (temporal) { -- float seedval = modff(M_PI * sh->index, &(float){0}); -+ float seedval = modff(phi * sh->index, &(float){0}); - seed = sh_var(sh, (struct pl_shader_var) { - .var = pl_var_float("seed"), - .data = &seedval, -@@ -501,8 +505,10 @@ ident_t sh_prng(struct pl_shader *sh, bool temporal, ident_t *p_state) - } - - ident_t state = sh_fresh(sh, "prng"); -- GLSL("vec3 %s_m = vec3(gl_FragCoord.xy, %s) + vec3(1.0); \n" -- "float %s = %s(%s(%s(%s_m.x) + %s_m.y) + %s_m.z); \n", -+ GLSL("vec2 init = fract(gl_FragCoord.xy * vec2(%f)); \n" -+ "vec3 %s_m = vec3(init, %s) + vec3(1.0); \n" -+ "float %s = %s(%s(%s(%s_m.x) + %s_m.y) + %s_m.z); \n", -+ phi, - state, seed, - state, permute, permute, permute, state, state, state); - -diff --git a/src/shaders.h b/src/shaders.h -index 6b355c5..9c82831 100644 ---- a/src/shaders.h -+++ b/src/shaders.h -@@ -24,6 +24,8 @@ - #include "context.h" - #include "gpu.h" - -+#include -+ - // This represents an identifier (e.g. name of function, uniform etc.) for - // a shader resource. The generated identifiers are immutable, but only live - // until pl_shader_reset - so make copies when passing to external stuff. -diff --git a/src/shaders/colorspace.c b/src/shaders/colorspace.c -index bb74bed..cd2eb52 100644 ---- a/src/shaders/colorspace.c -+++ b/src/shaders/colorspace.c -@@ -18,6 +18,9 @@ - #include - #include "shaders.h" - -+#include -+#include -+ - void pl_shader_decode_color(struct pl_shader *sh, struct pl_color_repr *repr, - const struct pl_color_adjustment *params) - { -diff --git a/src/shaders/sampling.c b/src/shaders/sampling.c -index e68fa21..6f3cd81 100644 ---- a/src/shaders/sampling.c -+++ b/src/shaders/sampling.c -@@ -18,6 +18,8 @@ - #include - #include "shaders.h" - -+#include -+ - const struct pl_deband_params pl_deband_default_params = { - .iterations = 1, - .threshold = 4.0, -diff --git a/src/spirv.h b/src/spirv.h -index d1ecc39..b96e39b 100644 ---- a/src/spirv.h -+++ b/src/spirv.h -@@ -20,6 +20,8 @@ - #include "common.h" - #include "context.h" - -+#include -+ - enum glsl_shader_stage { - GLSL_SHADER_VERTEX, - GLSL_SHADER_FRAGMENT, -diff --git a/src/swapchain.h b/src/swapchain.h -index d71e909..82a4edc 100644 ---- a/src/swapchain.h -+++ b/src/swapchain.h -@@ -18,6 +18,7 @@ - #pragma once - - #include "common.h" -+#include - - #define SW_PFN(name) __typeof__(pl_swapchain_##name) *name - struct pl_sw_fns { -diff --git a/src/tests/bench.c b/src/tests/bench.c -index 4e7008a..523e719 100644 ---- a/src/tests/bench.c -+++ b/src/tests/bench.c -@@ -1,6 +1,11 @@ - #include "tests.h" - #include - -+#include -+#include -+#include -+#include -+ - #define TEX_SIZE 2048 - #define CUBE_SIZE 64 - #define NUM_FBOS 10 -diff --git a/src/tests/colorspace.c b/src/tests/colorspace.c -index 670df3a..f52f917 100644 ---- a/src/tests/colorspace.c -+++ b/src/tests/colorspace.c -@@ -1,4 +1,5 @@ - #include "tests.h" -+#include - - int main() - { -diff --git a/src/tests/dither.c b/src/tests/dither.c -index d827746..8865beb 100644 ---- a/src/tests/dither.c -+++ b/src/tests/dither.c -@@ -1,4 +1,5 @@ - #include "tests.h" -+#include - - #define SHIFT 4 - #define SIZE (1 << SHIFT) -diff --git a/src/tests/filters.c b/src/tests/filters.c -index 57d1c4b..e0a221e 100644 ---- a/src/tests/filters.c -+++ b/src/tests/filters.c -@@ -1,4 +1,5 @@ - #include "tests.h" -+#include - - int main() - { -diff --git a/src/tests/gpu_tests.h b/src/tests/gpu_tests.h -index b69c693..1d5d22f 100644 ---- a/src/tests/gpu_tests.h -+++ b/src/tests/gpu_tests.h -@@ -1,6 +1,12 @@ - #include "tests.h" - #include "shaders.h" - -+#include -+#include -+#include -+#include -+#include -+ - static void pl_test_roundtrip(const struct pl_gpu *gpu, const struct pl_tex *tex, - float *src, float *dst) - { -diff --git a/src/tests/tests.h b/src/tests/tests.h -index 9b27e4c..2653e26 100644 ---- a/src/tests/tests.h -+++ b/src/tests/tests.h -@@ -18,6 +18,7 @@ - #pragma once - - #include "common.h" -+#include - - #include - #include -diff --git a/src/tests/utils.c b/src/tests/utils.c -index bf62f60..e7e1029 100644 ---- a/src/tests/utils.c -+++ b/src/tests/utils.c -@@ -1,4 +1,7 @@ - #include "tests.h" -+#include "gpu.h" -+ -+#include - - int main() - { -@@ -25,4 +28,63 @@ int main() - REQUIRE(data.component_size[i] == 10); - REQUIRE(data.component_map[i] == i); - } -+ -+ // Test GLSL structure packing -+ struct pl_var vec1 = pl_var_float(""), -+ vec2 = pl_var_vec2(""), -+ vec3 = pl_var_vec3(""), -+ mat2 = pl_var_mat2(""), -+ mat3 = pl_var_mat3(""); -+ -+ struct pl_var_layout layout; -+ layout = std140_layout(NULL, 0, &vec2); -+ REQUIRE(layout.offset == 0); -+ REQUIRE(layout.stride == 2 * sizeof(float)); -+ REQUIRE(layout.size == 2 * sizeof(float)); -+ -+ layout = std140_layout(NULL, 3 * sizeof(float), &vec3); -+ REQUIRE(layout.offset == 4 * sizeof(float)); -+ REQUIRE(layout.stride == 3 * sizeof(float)); -+ REQUIRE(layout.size == 3 * sizeof(float)); -+ -+ layout = std140_layout(NULL, 2 * sizeof(float), &mat3); -+ REQUIRE(layout.offset == 4 * sizeof(float)); -+ REQUIRE(layout.stride == 4 * sizeof(float)); -+ REQUIRE(layout.size == 3 * 4 * sizeof(float)); -+ -+ layout = std430_layout(NULL, 2 * sizeof(float), &mat3); -+ REQUIRE(layout.offset == 4 * sizeof(float)); -+ REQUIRE(layout.stride == 3 * sizeof(float)); -+ REQUIRE(layout.size == 3 * 3 * sizeof(float)); -+ -+ layout = std140_layout(NULL, 3 * sizeof(float), &vec1); -+ REQUIRE(layout.offset == 3 * sizeof(float)); -+ REQUIRE(layout.stride == sizeof(float)); -+ REQUIRE(layout.size == sizeof(float)); -+ -+ struct pl_var vec2a = vec2; -+ vec2a.dim_a = 50; -+ -+ layout = std140_layout(NULL, sizeof(float), &vec2a); -+ REQUIRE(layout.offset == 4 * sizeof(float)); -+ REQUIRE(layout.stride == 4 * sizeof(float)); -+ REQUIRE(layout.size == 50 * 4 * sizeof(float)); -+ -+ layout = std430_layout(NULL, sizeof(float), &vec2a); -+ REQUIRE(layout.offset == 2 * sizeof(float)); -+ REQUIRE(layout.stride == 2 * sizeof(float)); -+ REQUIRE(layout.size == 50 * 2 * sizeof(float)); -+ -+ struct pl_var mat2a = mat2; -+ mat2a.dim_a = 20; -+ -+ layout = std140_layout(NULL, 5 * sizeof(float), &mat2a); -+ REQUIRE(layout.offset == 8 * sizeof(float)); -+ REQUIRE(layout.stride == 4 * sizeof(float)); -+ REQUIRE(layout.size == 20 * 2 * 4 * sizeof(float)); -+ -+ layout = std430_layout(NULL, 5 * sizeof(float), &mat2a); -+ REQUIRE(layout.offset == 6 * sizeof(float)); -+ REQUIRE(layout.stride == 2 * sizeof(float)); -+ REQUIRE(layout.size == 20 * 2 * 2 * sizeof(float)); - } -diff --git a/src/tests/vulkan.c b/src/tests/vulkan.c -index b928afe..c29ed3c 100644 ---- a/src/tests/vulkan.c -+++ b/src/tests/vulkan.c -@@ -1,4 +1,5 @@ - #include "gpu_tests.h" -+#include - - int main() - { -diff --git a/src/utils/upload.c b/src/utils/upload.c -index e25a2fd..43867d4 100644 ---- a/src/utils/upload.c -+++ b/src/utils/upload.c -@@ -21,6 +21,8 @@ - #include "common.h" - #include "gpu.h" - -+#include -+ - struct comp { - int order; // e.g. 0, 1, 2, 3 for RGBA - int size; // size in bits -diff --git a/src/vulkan/common.h b/src/vulkan/common.h -index 04d6e27..a7bd4b5 100644 ---- a/src/vulkan/common.h -+++ b/src/vulkan/common.h -@@ -20,6 +20,8 @@ - #include "../common.h" - #include "../context.h" - -+#include -+ - // Vulkan allows the optional use of a custom allocator. We don't need one but - // mark this parameter with a better name in case we ever decide to change this - // in the future. (And to make the code more readable) -diff --git a/src/vulkan/context.c b/src/vulkan/context.c -index 41bb1c7..3d4756c 100644 ---- a/src/vulkan/context.c -+++ b/src/vulkan/context.c -@@ -287,7 +287,7 @@ static bool find_physical_device(struct vk_ctx *vk, - continue; - } - -- if (params->device_name) { -+ if (params->device_name && params->device_name[0] != '\0') { - if (strcmp(params->device_name, props.deviceName) == 0) { - vk->physd = devices[i]; - best = 10; // high number... -diff --git a/src/vulkan/utils.c b/src/vulkan/utils.c -index c663a5c..7c138fe 100644 ---- a/src/vulkan/utils.c -+++ b/src/vulkan/utils.c -@@ -145,6 +145,9 @@ const char *vk_obj_str(VkDebugReportObjectTypeEXT obj) - CASE(OBJECT_TABLE_NVX, VkObjectTableNVX); - CASE(INDIRECT_COMMANDS_LAYOUT_NVX, VkIndirectCommandsLayoutNVX); - #endif -+#ifdef VK_NVX_raytracing -+ CASE(ACCELERATION_STRUCTURE_NVX, VkAccelerationStructureNVX); -+#endif - - // Included to satisfy the switch coverage check - case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT: --- -2.17.1 - diff --git a/libplacebo.spec b/libplacebo.spec index 35f6250..a081b5c 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,12 +1,11 @@ Name: libplacebo -Version: 0.6.0 -Release: 3%{?dist} +Version: 1.18.0 +Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ URL: https://github.com/haasn/libplacebo Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz -Patch0: libplacebo-0.6.0-backports.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -77,7 +76,7 @@ developing applications that use %{name}. %files %license LICENSE %doc README.md -%{_libdir}/*.so.* +%{_libdir}/libplacebo.so.18 %files devel %{_includedir}/* @@ -86,6 +85,9 @@ developing applications that use %{name}. %changelog +* Sat Apr 06 2019 Nicolas Chauvet - 1.18.0-1 +- Update to 1.18.0 + * Fri Feb 01 2019 Fedora Release Engineering - 0.6.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild diff --git a/sources b/sources index 82d8604..c52c239 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-0.6.0.tar.gz) = 7a5bad9b68553e7d7a9e0d89867d651ec211b0d5478d9c5398e95f39956569829004755b0276d0d8cad6bd7c290016cff454d1449f58a477046dba6c638e59d6 +SHA512 (libplacebo-1.18.0.tar.gz) = 3115bbd019f4555340e64590e844de61a5fd4f02392b38a34d69059be79dcaeffc3d74b720568fb2f7f974409a8ff5feff83f7d6b7fdb2228af8761b78395339 From e4d3d5744cef977e06056a7656163145bc5d1ed0 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Tue, 16 Apr 2019 11:43:01 -0700 Subject: [PATCH 17/46] Rebuild with Meson fix for #1699099 --- libplacebo.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libplacebo.spec b/libplacebo.spec index a081b5c..c173af5 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,6 +1,6 @@ Name: libplacebo Version: 1.18.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -85,6 +85,9 @@ developing applications that use %{name}. %changelog +* Tue Apr 16 2019 Adam Williamson - 1.18.0-2 +- Rebuild with Meson fix for #1699099 + * Sat Apr 06 2019 Nicolas Chauvet - 1.18.0-1 - Update to 1.18.0 From 4dc04378601c86714daae68b46285aa00e2e4b49 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 25 Jul 2019 14:08:20 +0000 Subject: [PATCH 18/46] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- libplacebo.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libplacebo.spec b/libplacebo.spec index c173af5..1e3548b 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,6 +1,6 @@ Name: libplacebo Version: 1.18.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -85,6 +85,9 @@ developing applications that use %{name}. %changelog +* Thu Jul 25 2019 Fedora Release Engineering - 1.18.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Tue Apr 16 2019 Adam Williamson - 1.18.0-2 - Rebuild with Meson fix for #1699099 From a1f6ae0c276c6600f83efa12ec1f0170fcc7037d Mon Sep 17 00:00:00 2001 From: leigh123linux Date: Thu, 19 Dec 2019 11:17:57 +0000 Subject: [PATCH 19/46] Update to 1.21.0 --- fix_glslang_include.patch | 12 ++++++++++++ libplacebo.spec | 10 +++++++--- sources | 2 +- 3 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 fix_glslang_include.patch diff --git a/fix_glslang_include.patch b/fix_glslang_include.patch new file mode 100644 index 0000000..2ac7f44 --- /dev/null +++ b/fix_glslang_include.patch @@ -0,0 +1,12 @@ +--- a/src/glsl/glslang.cc ++++ b/src/glsl/glslang.cc +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + + #include "glslang.h" + + diff --git a/libplacebo.spec b/libplacebo.spec index 1e3548b..572cbf1 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,11 +1,12 @@ Name: libplacebo -Version: 1.18.0 -Release: 3%{?dist} +Version: 1.21.0 +Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ URL: https://github.com/haasn/libplacebo Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +Patch0: fix_glslang_include.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -76,7 +77,7 @@ developing applications that use %{name}. %files %license LICENSE %doc README.md -%{_libdir}/libplacebo.so.18 +%{_libdir}/libplacebo.so.21 %files devel %{_includedir}/* @@ -85,6 +86,9 @@ developing applications that use %{name}. %changelog +* Thu Dec 19 2019 Leigh Scott - 1.21.0-1 +- Update to 1.21.0 + * Thu Jul 25 2019 Fedora Release Engineering - 1.18.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild diff --git a/sources b/sources index c52c239..eb19f33 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-1.18.0.tar.gz) = 3115bbd019f4555340e64590e844de61a5fd4f02392b38a34d69059be79dcaeffc3d74b720568fb2f7f974409a8ff5feff83f7d6b7fdb2228af8761b78395339 +SHA512 (libplacebo-1.21.0.tar.gz) = 63b2824b49847aacca703dbb360c6e029ab23578b2ade1cd8f7c46e751aefc40509bd13261ea018c089f6331c6cafbdc0364106d95eaa3fb06b24f61eb726a23 From fbc6c6a8903c7afa0a7f44ab3b3b24acf3abf7e8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 29 Jan 2020 10:04:09 +0000 Subject: [PATCH 20/46] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- libplacebo.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libplacebo.spec b/libplacebo.spec index 572cbf1..88feaab 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,6 +1,6 @@ Name: libplacebo Version: 1.21.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -86,6 +86,9 @@ developing applications that use %{name}. %changelog +* Wed Jan 29 2020 Fedora Release Engineering - 1.21.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Thu Dec 19 2019 Leigh Scott - 1.21.0-1 - Update to 1.21.0 From e7641662c5d64f460aac03995fe88f9079c15a62 Mon Sep 17 00:00:00 2001 From: Leigh Scott Date: Sat, 8 Feb 2020 16:28:03 +0000 Subject: [PATCH 21/46] Update to 1.29.1 --- libplacebo.spec | 9 ++++++--- sources | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index 88feaab..24b9e79 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,6 +1,6 @@ Name: libplacebo -Version: 1.21.0 -Release: 2%{?dist} +Version: 1.29.1 +Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -77,7 +77,7 @@ developing applications that use %{name}. %files %license LICENSE %doc README.md -%{_libdir}/libplacebo.so.21 +%{_libdir}/libplacebo.so.29 %files devel %{_includedir}/* @@ -86,6 +86,9 @@ developing applications that use %{name}. %changelog +* Sat Feb 08 2020 Leigh Scott - 1.29.1-1 +- Update to 1.29.1 + * Wed Jan 29 2020 Fedora Release Engineering - 1.21.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/sources b/sources index eb19f33..7eac663 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-1.21.0.tar.gz) = 63b2824b49847aacca703dbb360c6e029ab23578b2ade1cd8f7c46e751aefc40509bd13261ea018c089f6331c6cafbdc0364106d95eaa3fb06b24f61eb726a23 +SHA512 (libplacebo-1.29.1.tar.gz) = 8cf1a53ec601d6b244dfa91501ed2beb3b8c58637c934785db53d33e339add0874369d6fd74deede332fab485e8af80e7fcc37b97c93be123ce1f9ea3b90fddc From bbe5e6e3acca807ec19a5c76153aacf6fe9e56f0 Mon Sep 17 00:00:00 2001 From: Leigh Scott Date: Wed, 1 Jul 2020 14:26:41 +0100 Subject: [PATCH 22/46] Update to 2.72.0 --- libplacebo.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index 24b9e79..d4d0619 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,5 +1,5 @@ Name: libplacebo -Version: 1.29.1 +Version: 2.72.0 Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives @@ -77,7 +77,7 @@ developing applications that use %{name}. %files %license LICENSE %doc README.md -%{_libdir}/libplacebo.so.29 +%{_libdir}/libplacebo.so.72 %files devel %{_includedir}/* @@ -86,6 +86,9 @@ developing applications that use %{name}. %changelog +* Wed Jul 01 2020 Leigh Scott - 2.72.0-1 +- Update to 2.72.0 + * Sat Feb 08 2020 Leigh Scott - 1.29.1-1 - Update to 1.29.1 diff --git a/sources b/sources index 7eac663..b64458b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-1.29.1.tar.gz) = 8cf1a53ec601d6b244dfa91501ed2beb3b8c58637c934785db53d33e339add0874369d6fd74deede332fab485e8af80e7fcc37b97c93be123ce1f9ea3b90fddc +SHA512 (libplacebo-2.72.0.tar.gz) = 7e8255e1203c0bd0b72e4cd58fd1acb33938f9d1788b44ccbb4bae2bc5659dc4e3ca50de9d6ced0c9dab6c80debc348df1217df564f32cfc1f5ac833468a4810 From 56d6e9f8f5ccc94ffa1da77716c1cda1cad4e89e Mon Sep 17 00:00:00 2001 From: Leigh Scott Date: Wed, 1 Jul 2020 14:37:43 +0100 Subject: [PATCH 23/46] Add BuildRequires: libepoxy-devel --- libplacebo.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/libplacebo.spec b/libplacebo.spec index d4d0619..89d4c5a 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -12,6 +12,7 @@ BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: meson BuildRequires: lcms2-devel +BuildRequires: libepoxy-devel BuildRequires: libshaderc-devel >= 2018.0-1 # Use a more modern compiler toolchain on EL7 %if 0%{?rhel} == 7 From 39bc8f1f613bca3c1acbb06e32d2c73685c1aaeb Mon Sep 17 00:00:00 2001 From: Leigh Scott Date: Wed, 1 Jul 2020 14:50:18 +0100 Subject: [PATCH 24/46] Add BuildRequires: python3-mako --- libplacebo.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/libplacebo.spec b/libplacebo.spec index 89d4c5a..0b680ff 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -14,6 +14,7 @@ BuildRequires: meson BuildRequires: lcms2-devel BuildRequires: libepoxy-devel BuildRequires: libshaderc-devel >= 2018.0-1 +BuildRequires: python3-mako # Use a more modern compiler toolchain on EL7 %if 0%{?rhel} == 7 BuildRequires: devtoolset-7-toolchain, devtoolset-7-libatomic-devel From b618f8f92abd6976f24c3113920f26075e308658 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 28 Jul 2020 05:21:08 +0000 Subject: [PATCH 25/46] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- libplacebo.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libplacebo.spec b/libplacebo.spec index 0b680ff..5c73e6d 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,6 +1,6 @@ Name: libplacebo Version: 2.72.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -88,6 +88,9 @@ developing applications that use %{name}. %changelog +* Tue Jul 28 2020 Fedora Release Engineering - 2.72.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Wed Jul 01 2020 Leigh Scott - 2.72.0-1 - Update to 2.72.0 From b81734b557b4b1580478355577dd8054ca919817 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 26 Jan 2021 17:46:09 +0000 Subject: [PATCH 26/46] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- libplacebo.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libplacebo.spec b/libplacebo.spec index 5c73e6d..9395bb5 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,6 +1,6 @@ Name: libplacebo Version: 2.72.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -88,6 +88,9 @@ developing applications that use %{name}. %changelog +* Tue Jan 26 2021 Fedora Release Engineering - 2.72.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Tue Jul 28 2020 Fedora Release Engineering - 2.72.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 0b75f34ed977e20db086a568c46624a720043a3a Mon Sep 17 00:00:00 2001 From: Leigh Scott Date: Thu, 28 Jan 2021 08:45:29 +0000 Subject: [PATCH 27/46] Update to 2.72.2 --- fix_glslang_include.patch | 12 ------------ libplacebo.spec | 8 +++++--- sources | 2 +- 3 files changed, 6 insertions(+), 16 deletions(-) delete mode 100644 fix_glslang_include.patch diff --git a/fix_glslang_include.patch b/fix_glslang_include.patch deleted file mode 100644 index 2ac7f44..0000000 --- a/fix_glslang_include.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/src/glsl/glslang.cc -+++ b/src/glsl/glslang.cc -@@ -25,7 +25,7 @@ - #include - #include - #include --#include -+#include - - #include "glslang.h" - - diff --git a/libplacebo.spec b/libplacebo.spec index 9395bb5..373afeb 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,12 +1,11 @@ Name: libplacebo -Version: 2.72.0 -Release: 3%{?dist} +Version: 2.72.2 +Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ URL: https://github.com/haasn/libplacebo Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz -Patch0: fix_glslang_include.patch BuildRequires: gcc BuildRequires: gcc-c++ @@ -88,6 +87,9 @@ developing applications that use %{name}. %changelog +* Thu Jan 28 2021 Leigh Scott - 2.72.2-1 +- Update to 2.72.2 + * Tue Jan 26 2021 Fedora Release Engineering - 2.72.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild diff --git a/sources b/sources index b64458b..256b27f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-2.72.0.tar.gz) = 7e8255e1203c0bd0b72e4cd58fd1acb33938f9d1788b44ccbb4bae2bc5659dc4e3ca50de9d6ced0c9dab6c80debc348df1217df564f32cfc1f5ac833468a4810 +SHA512 (libplacebo-2.72.2.tar.gz) = f15627945ad0aff0525504f7dd22f1d7c89b9ec99d48bd9955ab9be04e6237af81148fe061abf4ec8e64c06c6734c5c8b0f65641ae1405e76019a6561157631e From bd22da70602ef0b24547a77fa9f7e7d3c73754ca Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Tue, 9 Feb 2021 22:28:58 +0100 Subject: [PATCH 28/46] Update to 3.104.0 --- libplacebo.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index 373afeb..d5f340c 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,5 +1,5 @@ Name: libplacebo -Version: 2.72.2 +Version: 3.104.0 Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives @@ -78,7 +78,7 @@ developing applications that use %{name}. %files %license LICENSE %doc README.md -%{_libdir}/libplacebo.so.72 +%{_libdir}/libplacebo.so.104 %files devel %{_includedir}/* @@ -87,6 +87,9 @@ developing applications that use %{name}. %changelog +* Tue Feb 09 2021 Nicolas Chauvet - 3.104.0-1 +- Update to 3.104.0 + * Thu Jan 28 2021 Leigh Scott - 2.72.2-1 - Update to 2.72.2 diff --git a/sources b/sources index 256b27f..e3971f3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-2.72.2.tar.gz) = f15627945ad0aff0525504f7dd22f1d7c89b9ec99d48bd9955ab9be04e6237af81148fe061abf4ec8e64c06c6734c5c8b0f65641ae1405e76019a6561157631e +SHA512 (libplacebo-3.104.0.tar.gz) = 750605d4dd528bebed60e1049322e9e72d4f59ecde5724275aff66c313d4cefe490beb9cafe8ddc02397dc8e00f9868dbac8b305ffd3d509cc911c79612ab4ed From f0f87705bb4fdf78af920d229664a88ff278299d Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Thu, 1 Apr 2021 20:40:40 +0200 Subject: [PATCH 29/46] Update to 3.120.0 --- libplacebo.spec | 25 +++++-------------------- sources | 2 +- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index d5f340c..68de030 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,5 +1,5 @@ Name: libplacebo -Version: 3.104.0 +Version: 3.120.0 Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives @@ -14,17 +14,8 @@ BuildRequires: lcms2-devel BuildRequires: libepoxy-devel BuildRequires: libshaderc-devel >= 2018.0-1 BuildRequires: python3-mako -# Use a more modern compiler toolchain on EL7 -%if 0%{?rhel} == 7 -BuildRequires: devtoolset-7-toolchain, devtoolset-7-libatomic-devel -# Vulkan is optional, but only available on theses arches for EL7 -%ifarch x86_64 ppc64le -BuildRequires: vulkan-devel -%endif -%else # Fedora BuildRequires: vulkan-devel BuildRequires: glslang-devel -%endif %description @@ -53,17 +44,8 @@ developing applications that use %{name}. %prep %autosetup -p1 -%if 0%{?rhel} == 7 -. /opt/rh/devtoolset-7/enable -%endif - %build - -%if 0%{?rhel} == 7 -. /opt/rh/devtoolset-7/enable -%endif - %meson %meson_build @@ -78,7 +60,7 @@ developing applications that use %{name}. %files %license LICENSE %doc README.md -%{_libdir}/libplacebo.so.104 +%{_libdir}/libplacebo.so.120 %files devel %{_includedir}/* @@ -87,6 +69,9 @@ developing applications that use %{name}. %changelog +* Thu Apr 01 2021 Nicolas Chauvet - 3.120.0-1 +- Update to 3.120.0 + * Tue Feb 09 2021 Nicolas Chauvet - 3.104.0-1 - Update to 3.104.0 diff --git a/sources b/sources index e3971f3..1114171 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-3.104.0.tar.gz) = 750605d4dd528bebed60e1049322e9e72d4f59ecde5724275aff66c313d4cefe490beb9cafe8ddc02397dc8e00f9868dbac8b305ffd3d509cc911c79612ab4ed +SHA512 (libplacebo-3.120.0.tar.gz) = 409cc4a647ae0ef100f0ca4c0ea25b2542998d0aae2a296e845965748b74963ac9d5ad844b9ca6f2f44c346620af843d5787fd479ef77398912dafb4f5c79b13 From 77236d84909eaaeb73a9776a8963bf6fa52ce062 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Tue, 6 Apr 2021 10:47:04 +0200 Subject: [PATCH 30/46] Update to 3.120.1 --- libplacebo.spec | 9 +++++++-- sources | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index 68de030..372271f 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,5 +1,5 @@ Name: libplacebo -Version: 3.120.0 +Version: 3.120.1 Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives @@ -46,7 +46,9 @@ developing applications that use %{name}. %build -%meson +%meson \ + -Ddemos=False + %meson_build @@ -69,6 +71,9 @@ developing applications that use %{name}. %changelog +* Tue Apr 06 2021 Nicolas Chauvet - 3.120.1-1 +- Update to 3.120.1 + * Thu Apr 01 2021 Nicolas Chauvet - 3.120.0-1 - Update to 3.120.0 diff --git a/sources b/sources index 1114171..7ba268f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-3.120.0.tar.gz) = 409cc4a647ae0ef100f0ca4c0ea25b2542998d0aae2a296e845965748b74963ac9d5ad844b9ca6f2f44c346620af843d5787fd479ef77398912dafb4f5c79b13 +SHA512 (libplacebo-3.120.1.tar.gz) = 96e64a18a6e7bcd3266b2da8874590c3cc3902f063de315ac696057a345125157c17203b21d4eca7e4ee881374716dbb762bca45e77c1c6a39c5bb1f0f3a9f1b From fa10e6652693ab7007cd53b273f7f100c82bd5f9 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Mon, 19 Apr 2021 17:55:01 +0200 Subject: [PATCH 31/46] Update to 3.120.2 --- libplacebo.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index 372271f..aa2e723 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,5 +1,5 @@ Name: libplacebo -Version: 3.120.1 +Version: 3.120.2 Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives @@ -71,6 +71,9 @@ developing applications that use %{name}. %changelog +* Mon Apr 19 2021 Nicolas Chauvet - 3.120.2-1 +- Update to 3.120.2 + * Tue Apr 06 2021 Nicolas Chauvet - 3.120.1-1 - Update to 3.120.1 diff --git a/sources b/sources index 7ba268f..ce43cf7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-3.120.1.tar.gz) = 96e64a18a6e7bcd3266b2da8874590c3cc3902f063de315ac696057a345125157c17203b21d4eca7e4ee881374716dbb762bca45e77c1c6a39c5bb1f0f3a9f1b +SHA512 (libplacebo-3.120.2.tar.gz) = 93aa95c673bd37b45253ce44966be49c3b28b2d5de2e5507d9e3d3804b8116a0b600edb112f84ad913e79f4e4230a3c301265b7d15ec3df0856908915157a290 From 3a33fb4ea0298d5f67867d149c521393aaf092a8 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Sat, 8 May 2021 10:04:01 +0200 Subject: [PATCH 32/46] Update to 3.120.3 --- libplacebo.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index aa2e723..f309e30 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,5 +1,5 @@ Name: libplacebo -Version: 3.120.2 +Version: 3.120.3 Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives @@ -71,6 +71,9 @@ developing applications that use %{name}. %changelog +* Sat May 08 2021 Nicolas Chauvet - 3.120.3-1 +- Update to 3.120.3 + * Mon Apr 19 2021 Nicolas Chauvet - 3.120.2-1 - Update to 3.120.2 diff --git a/sources b/sources index ce43cf7..83a9cba 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-3.120.2.tar.gz) = 93aa95c673bd37b45253ce44966be49c3b28b2d5de2e5507d9e3d3804b8116a0b600edb112f84ad913e79f4e4230a3c301265b7d15ec3df0856908915157a290 +SHA512 (libplacebo-3.120.3.tar.gz) = 1dbb2cb8a65aaa7968bfd6636e57c5d09626bf728b94df8f5d71260e254865287b38d3f7fd21103836ce9280d1f5bbb87cc90222790e8febb28694e56d5974c7 From a01fd31767080bc3a82a1271c4d42576b7cf77d3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 22 Jul 2021 12:06:58 +0000 Subject: [PATCH 33/46] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- libplacebo.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libplacebo.spec b/libplacebo.spec index f309e30..f4e33de 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,6 +1,6 @@ Name: libplacebo Version: 3.120.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -71,6 +71,9 @@ developing applications that use %{name}. %changelog +* Thu Jul 22 2021 Fedora Release Engineering - 3.120.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Sat May 08 2021 Nicolas Chauvet - 3.120.3-1 - Update to 3.120.3 From 4192ac4e9c82c551a70a6448aa547609e12e8d37 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Thu, 19 Aug 2021 10:33:21 +0200 Subject: [PATCH 34/46] Update to 4.157.0 --- libplacebo.spec | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index f4e33de..1c0d2ea 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,11 +1,13 @@ +%global prerelease rc1 + Name: libplacebo -Version: 3.120.3 -Release: 2%{?dist} +Version: 4.157.0 +Release: 0.1.rc1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ URL: https://github.com/haasn/libplacebo -Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +Source0: %{url}/archive/v%{version}-rc1/%{name}-%{version}-rc1.tar.gz BuildRequires: gcc BuildRequires: gcc-c++ @@ -42,11 +44,12 @@ developing applications that use %{name}. %prep -%autosetup -p1 +%autosetup -p1 -n %{name}-%{version}-rc1 %build %meson \ + -Dd3d11=disabled \ -Ddemos=False %meson_build @@ -62,7 +65,7 @@ developing applications that use %{name}. %files %license LICENSE %doc README.md -%{_libdir}/libplacebo.so.120 +%{_libdir}/libplacebo.so.157 %files devel %{_includedir}/* @@ -71,6 +74,9 @@ developing applications that use %{name}. %changelog +* Thu Aug 19 2021 Nicolas Chauvet - 4.157.0-0.1.rc1 +- Update to 4.157.0-rc1 + * Thu Jul 22 2021 Fedora Release Engineering - 3.120.3-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild From d78fb1aa5d93c965ea33f32313e373cb3b3b9229 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Thu, 19 Aug 2021 15:17:03 +0200 Subject: [PATCH 35/46] Add sources --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index 83a9cba..bdd7e91 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-3.120.3.tar.gz) = 1dbb2cb8a65aaa7968bfd6636e57c5d09626bf728b94df8f5d71260e254865287b38d3f7fd21103836ce9280d1f5bbb87cc90222790e8febb28694e56d5974c7 +SHA512 (libplacebo-4.157.0-rc1.tar.gz) = bb101f7a5c1324c637c30d0adacb0fdb4d03c750c7789bd1cf367b821790f9d14f776cd311f35bece5da8ce13362711e20bca501c80273aaf5554847c9a0347b From 9b55f621d3e778f3e70d80d8f56ed06ec531726d Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Tue, 5 Oct 2021 09:21:53 +0200 Subject: [PATCH 36/46] Update to 4.157.0 --- libplacebo.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index 1c0d2ea..9a5464b 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,8 +1,8 @@ -%global prerelease rc1 +#global prerelease rc1 Name: libplacebo Version: 4.157.0 -Release: 0.1.rc1%{?dist} +Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -44,7 +44,7 @@ developing applications that use %{name}. %prep -%autosetup -p1 -n %{name}-%{version}-rc1 +%autosetup -p1 -n %{name}-%{version} %build @@ -74,6 +74,9 @@ developing applications that use %{name}. %changelog +* Tue Oct 05 2021 Nicolas Chauvet - 4.157.0-1 +- Update to 4.157.0 (final) + * Thu Aug 19 2021 Nicolas Chauvet - 4.157.0-0.1.rc1 - Update to 4.157.0-rc1 From 85192dff909940e4f168131f703e63ab3cca46c9 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Tue, 5 Oct 2021 09:23:42 +0200 Subject: [PATCH 37/46] Update sources --- libplacebo.spec | 2 +- sources | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index 9a5464b..03528fa 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -7,7 +7,7 @@ Summary: Reusable library for GPU-accelerated video/image rendering primi License: LGPLv2+ URL: https://github.com/haasn/libplacebo -Source0: %{url}/archive/v%{version}-rc1/%{name}-%{version}-rc1.tar.gz +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz BuildRequires: gcc BuildRequires: gcc-c++ diff --git a/sources b/sources index bdd7e91..5f79ccb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-4.157.0-rc1.tar.gz) = bb101f7a5c1324c637c30d0adacb0fdb4d03c750c7789bd1cf367b821790f9d14f776cd311f35bece5da8ce13362711e20bca501c80273aaf5554847c9a0347b +SHA512 (libplacebo-4.157.0.tar.gz) = a19f9a280d047c5c5e69ed6d490d1b535c76a8107ad52b90a77f7a5374228ae6882e28693caf61aecc3c11be2e2447f75f757dae8dfa51d8194a0b9b64635069 From ec844d6916701bbebac8d12d9db8da886b2c29a6 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Tue, 18 Jan 2022 18:48:07 +0100 Subject: [PATCH 38/46] Update to v4.192.0-rc1 --- libplacebo.spec | 15 +++++++++------ sources | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index 03528fa..0f4ccb8 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,13 +1,13 @@ -#global prerelease rc1 +%global prerelease -rc1 Name: libplacebo -Version: 4.157.0 -Release: 1%{?dist} +Version: 4.192.0 +Release: 1.rc1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ URL: https://github.com/haasn/libplacebo -Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +Source0: %{url}/archive/v%{version}%{?prerelease}/%{name}-%{version}%{?prerelease}.tar.gz BuildRequires: gcc BuildRequires: gcc-c++ @@ -44,7 +44,7 @@ developing applications that use %{name}. %prep -%autosetup -p1 -n %{name}-%{version} +%autosetup -p1 -n %{name}-%{version}%{?prerelease} %build @@ -65,7 +65,7 @@ developing applications that use %{name}. %files %license LICENSE %doc README.md -%{_libdir}/libplacebo.so.157 +%{_libdir}/libplacebo.so.192 %files devel %{_includedir}/* @@ -74,6 +74,9 @@ developing applications that use %{name}. %changelog +* Tue Jan 18 2022 Nicolas Chauvet - 4.192.0~rc1-1 +- Update to 4.192.0-rc1 + * Tue Oct 05 2021 Nicolas Chauvet - 4.157.0-1 - Update to 4.157.0 (final) diff --git a/sources b/sources index 5f79ccb..71dd749 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-4.157.0.tar.gz) = a19f9a280d047c5c5e69ed6d490d1b535c76a8107ad52b90a77f7a5374228ae6882e28693caf61aecc3c11be2e2447f75f757dae8dfa51d8194a0b9b64635069 +SHA512 (libplacebo-4.192.0-rc1.tar.gz) = 3e7eeb4608f9ff53e664e5e51030397ac8f216c9c089e754e9d1a6fd0ae6d7384bcd98f146d73e207e450953829f5a8140f1d31abafa13eae2fbf9b43dcee096 From 2ed532a671e2e6580355302e264d7324241fecb9 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Wed, 19 Jan 2022 08:46:37 +0100 Subject: [PATCH 39/46] Add missing BR --- libplacebo.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/libplacebo.spec b/libplacebo.spec index 0f4ccb8..d4126b2 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -14,6 +14,7 @@ BuildRequires: gcc-c++ BuildRequires: meson BuildRequires: lcms2-devel BuildRequires: libepoxy-devel +BuildRequires: libunwind-devel BuildRequires: libshaderc-devel >= 2018.0-1 BuildRequires: python3-mako BuildRequires: vulkan-devel From c9d49340f67e80676e7da0209f90d4df505beb5b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 20 Jan 2022 16:58:57 +0000 Subject: [PATCH 40/46] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- libplacebo.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libplacebo.spec b/libplacebo.spec index d4126b2..4b9f405 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -2,7 +2,7 @@ Name: libplacebo Version: 4.192.0 -Release: 1.rc1%{?dist} +Release: 1.rc1%{?dist}.1 Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -75,6 +75,9 @@ developing applications that use %{name}. %changelog +* Thu Jan 20 2022 Fedora Release Engineering - 4.192.0-1.rc1.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Tue Jan 18 2022 Nicolas Chauvet - 4.192.0~rc1-1 - Update to 4.192.0-rc1 From cee34a263983629aba8e77ffeb29a39fd9a39b36 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Thu, 3 Feb 2022 22:10:08 +0100 Subject: [PATCH 41/46] Update to 4.192.1 --- libplacebo.spec | 9 ++++++--- sources | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index 4b9f405..ee37305 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,8 +1,8 @@ -%global prerelease -rc1 +#global prerelease -rc1 Name: libplacebo -Version: 4.192.0 -Release: 1.rc1%{?dist}.1 +Version: 4.192.1 +Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -75,6 +75,9 @@ developing applications that use %{name}. %changelog +* Thu Feb 03 2022 Nicolas Chauvet - 4.192.1-1 +- Update to 4.192.1 + * Thu Jan 20 2022 Fedora Release Engineering - 4.192.0-1.rc1.1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild diff --git a/sources b/sources index 71dd749..459f4cb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-4.192.0-rc1.tar.gz) = 3e7eeb4608f9ff53e664e5e51030397ac8f216c9c089e754e9d1a6fd0ae6d7384bcd98f146d73e207e450953829f5a8140f1d31abafa13eae2fbf9b43dcee096 +SHA512 (libplacebo-4.192.1.tar.gz) = 728f9b78fc7047f1d2a06bc17b7a0a50a8ff4e18c6491df85c666966f341d5989c8b217627e81123b576e6fb1b76383c44d639af8a3ef40b011c97f370797abb From e646b44021ea3ee55212120f9dc8fd40b67dba85 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Tue, 5 Jul 2022 08:42:02 +0200 Subject: [PATCH 42/46] Update to 4.208.0 --- libplacebo.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index ee37305..1efabec 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,7 +1,7 @@ -#global prerelease -rc1 +%global prerelease -rc1 Name: libplacebo -Version: 4.192.1 +Version: 4.208.0 Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives @@ -75,6 +75,9 @@ developing applications that use %{name}. %changelog +* Tue Jul 05 2022 Nicolas Chauvet - 4.208.0-1 +- Update to 4.208.0 + * Thu Feb 03 2022 Nicolas Chauvet - 4.192.1-1 - Update to 4.192.1 diff --git a/sources b/sources index 459f4cb..688ec9f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-4.192.1.tar.gz) = 728f9b78fc7047f1d2a06bc17b7a0a50a8ff4e18c6491df85c666966f341d5989c8b217627e81123b576e6fb1b76383c44d639af8a3ef40b011c97f370797abb +SHA512 (libplacebo-4.208.0-rc1.tar.gz) = 2d15ea8d44d2c5adcb32bbf777bdff2a2e945809edc05b9df878a2cf83920329ec9281baa4072b5ff332cd1cdf93103bdb10244f338a5a0bd78aac61da831ba2 From 3ed1c9f18328b7858c6f09178bb48f68e83b9668 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Tue, 5 Jul 2022 08:44:29 +0200 Subject: [PATCH 43/46] Switch to rc1 and ABI bump --- libplacebo.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index 1efabec..4b2879c 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -2,7 +2,7 @@ Name: libplacebo Version: 4.208.0 -Release: 1%{?dist} +Release: 0.1.rc1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -66,7 +66,7 @@ developing applications that use %{name}. %files %license LICENSE %doc README.md -%{_libdir}/libplacebo.so.192 +%{_libdir}/libplacebo.so.208 %files devel %{_includedir}/* @@ -75,8 +75,8 @@ developing applications that use %{name}. %changelog -* Tue Jul 05 2022 Nicolas Chauvet - 4.208.0-1 -- Update to 4.208.0 +* Tue Jul 05 2022 Nicolas Chauvet - 4.208.0-0.1.rc1 +- Update to 4.208.0-rc1 * Thu Feb 03 2022 Nicolas Chauvet - 4.192.1-1 - Update to 4.192.1 From d51a3ae36e09d80a55d825ace314dc77f44d6007 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 21 Jul 2022 18:41:30 +0000 Subject: [PATCH 44/46] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- libplacebo.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libplacebo.spec b/libplacebo.spec index 4b2879c..2ddd135 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -2,7 +2,7 @@ Name: libplacebo Version: 4.208.0 -Release: 0.1.rc1%{?dist} +Release: 0.2.rc1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -75,6 +75,9 @@ developing applications that use %{name}. %changelog +* Thu Jul 21 2022 Fedora Release Engineering - 4.208.0-0.2.rc1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Tue Jul 05 2022 Nicolas Chauvet - 4.208.0-0.1.rc1 - Update to 4.208.0-rc1 From f5213e57ebcc96379791091ed0fb3918424e5050 Mon Sep 17 00:00:00 2001 From: Nicolas Chauvet Date: Wed, 10 Aug 2022 21:44:58 +0200 Subject: [PATCH 45/46] Update to 4.208.0 --- libplacebo.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/libplacebo.spec b/libplacebo.spec index 2ddd135..c0c9318 100644 --- a/libplacebo.spec +++ b/libplacebo.spec @@ -1,8 +1,8 @@ -%global prerelease -rc1 +#global prerelease -rc1 Name: libplacebo Version: 4.208.0 -Release: 0.2.rc1%{?dist} +Release: 1%{?dist} Summary: Reusable library for GPU-accelerated video/image rendering primitives License: LGPLv2+ @@ -75,6 +75,9 @@ developing applications that use %{name}. %changelog +* Wed Aug 10 2022 Nicolas Chauvet - 4.208.0-1 +- Update to 4.208.0 + * Thu Jul 21 2022 Fedora Release Engineering - 4.208.0-0.2.rc1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/sources b/sources index 688ec9f..ca9108b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libplacebo-4.208.0-rc1.tar.gz) = 2d15ea8d44d2c5adcb32bbf777bdff2a2e945809edc05b9df878a2cf83920329ec9281baa4072b5ff332cd1cdf93103bdb10244f338a5a0bd78aac61da831ba2 +SHA512 (libplacebo-4.208.0.tar.gz) = a460cc1bb75bf34982c1bce0a100b586a90e70d6060ee5cd3f8bbf76b9647a6534c6edfcf6382dcc6847051dc5229d651ea545bd8323161fa9056977fbea688c From 4ff8ee62a09c21e025688ed772acfe0de2c318c5 Mon Sep 17 00:00:00 2001 From: MSVSphere Packaging Team Date: Thu, 2 Nov 2023 12:55:54 +0300 Subject: [PATCH 46/46] Remove unnecessary files --- README.md | 3 --- sources | 1 - 2 files changed, 4 deletions(-) delete mode 100644 README.md delete mode 100644 sources diff --git a/README.md b/README.md deleted file mode 100644 index 463a556..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# libplacebo - -The libplacebo package \ No newline at end of file diff --git a/sources b/sources deleted file mode 100644 index ca9108b..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (libplacebo-4.208.0.tar.gz) = a460cc1bb75bf34982c1bce0a100b586a90e70d6060ee5cd3f8bbf76b9647a6534c6edfcf6382dcc6847051dc5229d651ea545bd8323161fa9056977fbea688c