Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/extra/blender
diff options
context:
space:
mode:
Diffstat (limited to 'extra/blender')
-rw-r--r--extra/blender/PKGBUILD59
-rw-r--r--extra/blender/blender-idprop_create-static-assert-float.patch12
-rw-r--r--extra/blender/no-sse2.patch12
3 files changed, 83 insertions, 0 deletions
diff --git a/extra/blender/PKGBUILD b/extra/blender/PKGBUILD
new file mode 100644
index 00000000..97c987b0
--- /dev/null
+++ b/extra/blender/PKGBUILD
@@ -0,0 +1,59 @@
+makedepends=(
+ ${makedepends[@]/cuda/}
+)
+depends=(
+ ${depends[@]/openimagedenoise/}
+)
+pkgdesc+=", without CUDA support"
+eval "$(
+ declare -f build \
+ | sed '
+ /^\s*cmake / s/;$/ -DWITH_CYCLES_CUDA_BINARIES=OFF -DWITH_CYCLES_DEVICE_CUDA=OFF -DWITH_RAYOPTIMIZATION=OFF;/
+ '
+)"
+source_i686+=('no-sse2.patch')
+sha512sums_i686+=('87da2bedb90af6dee559ef9d1eb83262ba75fb412aba83dcb2b88fe9c0740ff75ad336331033fec7a14ad6ecc3dd70f8f4742f147594e8dc530197dd51922c01')
+if [ "${CARCH}" = 'i686' ]; then
+ eval "$(
+ declare -f prepare \
+ | sed '
+ $ i patch -Np1 -i "$srcdir"/no-sse2.patch
+ '
+ )"
+fi
+
+# no Nvidia Optix
+pkgdesc+=", without Optix support"
+eval "$(
+ declare -f build \
+ | sed '
+ /^\s*cmake / s/;$/ -DWITH_CYCLES_DEVICE_OPTIX=OFF/
+ '
+)"
+
+# FS32#182: opensubdiv/openexr/openvdb currently fails to rebuild
+depends=(
+ ${depends[@]/opensubdiv/}
+)
+depends=(
+ ${depends[@]/openexr/}
+)
+depends=(
+ ${depends[@]/openvdb/}
+)
+
+# float_t is a long double on 32-bit, but it's a primitive in all cases anyway
+# (seems to be in a part of the blendkernel on i686 only..)
+source+=('blender-idprop_create-static-assert-float.patch')
+sha512sums+=('36b98ec7e53402909a9e531c30b444b1afc22cc597c5bb3393c73862929dcc6275b00a53de6171a81af3c8804d233359d2e797886d0b776e7a9b29b23ce24e3b')
+eval "$(
+ declare -f prepare \
+ | sed '
+ $ i patch -Np1 -i "$srcdir"/blender-idprop_create-static-assert-float.patch
+ '
+)"
+
+# fails happily to build
+depends=(
+ ${depends[@]/openpgl/}
+)
diff --git a/extra/blender/blender-idprop_create-static-assert-float.patch b/extra/blender/blender-idprop_create-static-assert-float.patch
new file mode 100644
index 00000000..5be594e5
--- /dev/null
+++ b/extra/blender/blender-idprop_create-static-assert-float.patch
@@ -0,0 +1,12 @@
+diff -rauN blender/source/blender/blenkernel/intern/idprop_create.cc blender-idprop_create-static-assert-float-patch/source/blender/blenkernel/intern/idprop_create.cc
+--- blender/source/blender/blenkernel/intern/idprop_create.cc 2022-04-03 14:32:20.257350527 +0200
++++ blender-idprop_create-static-assert-float-patch/source/blender/blenkernel/intern/idprop_create.cc 2022-04-03 14:35:17.851234918 +0200
+@@ -92,7 +92,7 @@
+ Span<PrimitiveType> values)
+ {
+ static_assert(std::is_same_v<PrimitiveType, int32_t> || std::is_same_v<PrimitiveType, float_t> ||
+- std::is_same_v<PrimitiveType, double>,
++ std::is_same_v<PrimitiveType, float> || std::is_same_v<PrimitiveType, double>,
+ "Allowed values for PrimitiveType are int32_t, float and double.");
+ static_assert(!std::is_same_v<PrimitiveType, int32_t> || id_property_subtype == IDP_INT,
+ "PrimitiveType and id_property_type do not match (int32_t).");
diff --git a/extra/blender/no-sse2.patch b/extra/blender/no-sse2.patch
new file mode 100644
index 00000000..a32f7c64
--- /dev/null
+++ b/extra/blender/no-sse2.patch
@@ -0,0 +1,12 @@
+diff -rauN blender-vanilla/CMakeLists.txt blender-no-sse2-patch/CMakeLists.txt
+--- blender-vanilla/CMakeLists.txt 2022-04-07 16:36:48.842414275 +0200
++++ blender-no-sse2-patch/CMakeLists.txt 2022-04-07 16:37:12.012470531 +0200
+@@ -981,7 +981,7 @@
+ # Test SIMD support, before platform includes to determine if sse2neon is needed.
+ if(WITH_CPU_SIMD)
+ set(COMPILER_SSE_FLAG)
+- set(COMPILER_SSE2_FLAG)
++# set(COMPILER_SSE2_FLAG)
+
+ # Test Neon first since macOS Arm can compile and run x86-64 SSE binaries.
+ TEST_NEON_SUPPORT()