aboutsummaryrefslogtreecommitdiff
path: root/graphics/libplacebo
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/libplacebo')
-rw-r--r--graphics/libplacebo/glslang_version.patch92
-rw-r--r--graphics/libplacebo/libplacebo.SlackBuild7
2 files changed, 69 insertions, 30 deletions
diff --git a/graphics/libplacebo/glslang_version.patch b/graphics/libplacebo/glslang_version.patch
index 6c8363178fd8..17bb0fb9f4c2 100644
--- a/graphics/libplacebo/glslang_version.patch
+++ b/graphics/libplacebo/glslang_version.patch
@@ -1,70 +1,104 @@
-commit b2fa57a00d3b71c9f897bc622937d661f3c227cc
-Author: orbea <orbea@riseup.net>
-Date: Thu Oct 15 07:23:32 2020 -0700
+From 217edc52822845ad70eb39e95871f90d14d1dac6 Mon Sep 17 00:00:00 2001
+From: Niklas Haas <git@haasn.xyz>
+Date: Wed, 21 Oct 2020 12:55:24 +0200
+Subject: [PATCH] glslang: update for new glslang versioning scheme
- Hack around the newer glslang version scheme.
+This updates our checks to use the new header locations as introduced in
+https://github.com/KhronosGroup/glslang/pull/2277. Fortunately, it seems
+that the new version scheme is backwards compatible with the old one, so
+we don't need any excessively complicated logic updates.
+
+Fixes https://github.com/haasn/libplacebo/issues/83
+---
+ src/glsl/glslang.cc | 9 +++++----
+ src/meson.build | 19 ++++++++++++++++---
+ 2 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/src/glsl/glslang.cc b/src/glsl/glslang.cc
-index 07cf8f1..4560c77 100644
+index 3b17a4e..01ad0fa 100644
--- a/src/glsl/glslang.cc
+++ b/src/glsl/glslang.cc
-@@ -23,7 +23,7 @@ extern "C" {
+@@ -15,6 +15,8 @@
+ * License along with libplacebo. If not, see <http://www.gnu.org/licenses/>.
+ */
+
++#include "config_internal.h"
++
+ #include <assert.h>
+ #include <pthread.h>
+
+@@ -23,7 +25,6 @@ extern "C" {
}
#include <glslang/Include/ResourceLimits.h>
-#include <glslang/Include/revision.h>
-+#include <glslang/build_info.h>
#include <glslang/Public/ShaderLang.h>
#include <SPIRV/GlslangToSpv.h>
-@@ -36,7 +36,7 @@ static int pl_glslang_refcount;
+@@ -36,7 +37,7 @@ static int pl_glslang_refcount;
- int pl_glslang_version()
+ int pl_glslang_version(void)
{
- return GLSLANG_PATCH_LEVEL;
-+ return GLSLANG_VERSION_MAJOR;
++ return GLSLANG_VERSION_PATCH;
}
- bool pl_glslang_init()
-@@ -78,7 +78,7 @@ struct pl_glslang_res *pl_glslang_compile(const char *glsl, uint32_t api_ver,
+ bool pl_glslang_init(void)
+@@ -78,7 +79,7 @@ struct pl_glslang_res *pl_glslang_compile(const char *glsl, uint32_t api_ver,
if (api_ver >= EShTargetVulkan_1_1)
spirv_version = EShTargetSpv_1_3;
-#if GLSLANG_PATCH_LEVEL >= 3667
-+#if GLSLANG_VERSION_MAJOR >= 10
++#if GLSLANG_VERSION_PATCH >= 3667
if (api_ver >= EShTargetVulkan_1_2)
spirv_version = EShTargetSpv_1_5;
#endif
-@@ -200,7 +200,7 @@ const TBuiltInResource DefaultTBuiltInResource = {
+@@ -200,7 +201,7 @@ const TBuiltInResource DefaultTBuiltInResource = {
/* .MaxCullDistances = */ 8,
/* .MaxCombinedClipAndCullDistances = */ 8,
/* .MaxSamples = */ 4,
-#if GLSLANG_PATCH_LEVEL >= 2892
-+#if GLSLANG_VERSION_MAJOR >= 10
++#if GLSLANG_VERSION_PATCH >= 2892
/* .maxMeshOutputVerticesNV = */ 256,
/* .maxMeshOutputPrimitivesNV = */ 512,
/* .maxMeshWorkGroupSizeX_NV = */ 32,
+
diff --git a/src/meson.build b/src/meson.build
-index 5a77cea..60cb646 100644
+index 5a77cea..dcb8137 100644
--- a/src/meson.build
+++ b/src/meson.build
-@@ -49,7 +49,7 @@ endif
-
- # work-arounds for glslang braindeath
- glslang_combined = disabler()
--glslang_min_ver = 2763
-+glslang_min_ver = 10
- glslang_req = get_option('glslang')
-
- if glslang_req.auto() and shaderc.found()
-@@ -83,8 +83,8 @@ else
+@@ -83,9 +83,20 @@ else
endif
if glslang_found
- glslang_ver = cxx.get_define('GLSLANG_PATCH_LEVEL',
- prefix: '#include <glslang/Include/revision.h>'
-+ glslang_ver = cxx.get_define('GLSLANG_VERSION_MAJOR',
-+ prefix: '#include <glslang/build_info.h>'
- ).to_int()
+- ).to_int()
++ glslang_header_old = 'glslang/Include/revision.h'
++ glslang_header_new = 'glslang/build_info.h'
++
++ if cc.has_header(glslang_header_new)
++ glslang_ver = cxx.get_define('GLSLANG_VERSION_PATCH',
++ prefix: '#include <' + glslang_header_new + '>'
++ ).to_int()
++ elif cc.has_header(glslang_header_old)
++ glslang_ver = cxx.get_define('GLSLANG_PATCH_LEVEL',
++ prefix: '#include <' + glslang_header_old+ '>'
++ ).to_int()
++ else
++ error('No glslang version header found?')
++ endif
if glslang_ver >= glslang_min_ver
+ # glslang must be linked against pthreads on platforms where pthreads is
+@@ -108,6 +119,8 @@ if glslang_found
+ add_project_arguments('-I' + i, language: 'cpp')
+ endforeach
+
++ conf_internal.set('GLSLANG_VERSION_PATCH', glslang_ver)
++
+ else
+ error('glslang revision @0@ too old! Must be at least @1@'
+ .format(glslang_ver, glslang_min_ver))
+--
+GitLab
diff --git a/graphics/libplacebo/libplacebo.SlackBuild b/graphics/libplacebo/libplacebo.SlackBuild
index ff494f171616..4dd590965e77 100644
--- a/graphics/libplacebo/libplacebo.SlackBuild
+++ b/graphics/libplacebo/libplacebo.SlackBuild
@@ -24,7 +24,7 @@
PRGNAM=libplacebo
VERSION=${VERSION:-2.72.0}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
@@ -83,6 +83,11 @@ sed -i 's/1.4.0/1.3.1/' src/meson.build
# Fix the build with newer glslang versions.
patch -p1 < $CWD/glslang.patch
+
+# glslang: update for new glslang versioning scheme
+# https://code.videolan.org/videolan/libplacebo/-/merge_requests/118
+# https://github.com/haasn/libplacebo/issues/83
+# https://code.videolan.org/videolan/libplacebo/-/commit/217edc52822845ad70eb39e95871f90d14d1dac6
patch -p1 < $CWD/glslang_version.patch
CFLAGS="$SLKCFLAGS" \