[packages/blender] - updated to 3.6.12 + upstream patch for openvdb 11
qboosh
qboosh at pld-linux.org
Fri Jun 14 22:45:01 CEST 2024
commit aca63a46c07dae9d8a78a72189d34dfa5bb2881d
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Fri Jun 14 22:43:01 2024 +0200
- updated to 3.6.12 + upstream patch for openvdb 11
blender-openvdb11.patch | 83 +++++++++++++++++++++++++++++++++++++++++++++++++
blender.spec | 6 ++--
2 files changed, 87 insertions(+), 2 deletions(-)
---
diff --git a/blender.spec b/blender.spec
index 0240467..80a400f 100644
--- a/blender.spec
+++ b/blender.spec
@@ -17,14 +17,15 @@ Summary: 3D modeling, rendering, animation and game creation package
Summary(pl.UTF-8): Pakiet do tworzenia animacji 3D oraz gier
Name: blender
# beware: don't use 3.3.17+, they have all the libs packaged (0.5GB compressed)
-Version: 3.6.11
+Version: 3.6.12
Release: 1
License: GPL v2+
Group: X11/Applications/Graphics
Source0: https://download.blender.org/source/%{name}-%{version}.tar.xz
-# Source0-md5: 32ec8c8403ead5e843edc1a26bdecb03
+# Source0-md5: 8ab5d1389185b12a2f2bfdde171524e3
Patch0: %{name}-2.76-droid.patch
Patch1: format-security.patch
+Patch2: %{name}-openvdb11.patch
URL: https://www.blender.org/
BuildRequires: OpenAL-devel
BuildRequires: OpenCOLLADA-devel
@@ -107,6 +108,7 @@ Blender to darmowy i w pełni funkcjonalny pakiet do tworzenia animacji
%setup -q
%patch0 -p1
%patch1 -p1
+%patch2 -p1
# /usr/bin/env python3
%{__sed} -i -e '1s,/usr/bin/env python3,%{__python3},' \
diff --git a/blender-openvdb11.patch b/blender-openvdb11.patch
new file mode 100644
index 0000000..adbc551
--- /dev/null
+++ b/blender-openvdb11.patch
@@ -0,0 +1,83 @@
+From bbb7e7a6d57f0b24d3b7374fb3747baf0d128d24 Mon Sep 17 00:00:00 2001
+From: Brecht Van Lommel <brecht at blender.org>
+Date: Sun, 10 Dec 2023 01:02:08 +0100
+Subject: [PATCH] Cycles: update to work with OpenVDB 11
+
+Ref #113157
+---
+ intern/cycles/scene/image_vdb.cpp | 49 ++++++++++++++++++++++++-------
+ 1 file changed, 38 insertions(+), 11 deletions(-)
+
+diff --git a/intern/cycles/scene/image_vdb.cpp b/intern/cycles/scene/image_vdb.cpp
+index 478b88c6d540..d94a7973adc7 100644
+--- a/intern/cycles/scene/image_vdb.cpp
++++ b/intern/cycles/scene/image_vdb.cpp
+@@ -11,6 +11,7 @@
+ # include <openvdb/tools/Dense.h>
+ #endif
+ #ifdef WITH_NANOVDB
++# define NANOVDB_USE_OPENVDB
+ # include <nanovdb/util/OpenToNanoVDB.h>
+ #endif
+
+@@ -52,23 +53,49 @@ struct ToNanoOp {
+ {
+ if constexpr (!std::is_same_v<GridType, openvdb::MaskGrid>) {
+ try {
+- FloatGridType floatgrid(*openvdb::gridConstPtrCast<GridType>(grid));
++# if NANOVDB_MAJOR_VERSION_NUMBER > 32 || \
++ (NANOVDB_MAJOR_VERSION_NUMBER == 32 && NANOVDB_MINOR_VERSION_NUMBER >= 6)
++ /* OpenVDB 11. */
+ if constexpr (std::is_same_v<FloatGridType, openvdb::FloatGrid>) {
++ openvdb::FloatGrid floatgrid(*openvdb::gridConstPtrCast<GridType>(grid));
+ if (precision == 0) {
+- nanogrid = nanovdb::openToNanoVDB<nanovdb::HostBuffer,
+- typename FloatGridType::TreeType,
+- nanovdb::FpN>(floatgrid);
+- return true;
++ nanogrid = nanovdb::createNanoGrid<openvdb::FloatGrid, nanovdb::FpN>(floatgrid);
+ }
+ else if (precision == 16) {
+- nanogrid = nanovdb::openToNanoVDB<nanovdb::HostBuffer,
+- typename FloatGridType::TreeType,
+- nanovdb::Fp16>(floatgrid);
+- return true;
++ nanogrid = nanovdb::createNanoGrid<openvdb::FloatGrid, nanovdb::Fp16>(floatgrid);
++ }
++ else {
++ nanogrid = nanovdb::createNanoGrid<openvdb::FloatGrid, float>(floatgrid);
+ }
+ }
+-
+- nanogrid = nanovdb::openToNanoVDB(floatgrid);
++ else if constexpr (std::is_same_v<FloatGridType, openvdb::Vec3fGrid>) {
++ openvdb::Vec3fGrid floatgrid(*openvdb::gridConstPtrCast<GridType>(grid));
++ nanogrid = nanovdb::createNanoGrid<openvdb::Vec3fGrid, nanovdb::Vec3f>(
++ floatgrid, nanovdb::StatsMode::Disable);
++ }
++# else
++ /* OpenVDB 10. */
++ if constexpr (std::is_same_v<FloatGridType, openvdb::FloatGrid>) {
++ openvdb::FloatGrid floatgrid(*openvdb::gridConstPtrCast<GridType>(grid));
++ if (precision == 0) {
++ nanogrid =
++ nanovdb::openToNanoVDB<nanovdb::HostBuffer, openvdb::FloatTree, nanovdb::FpN>(
++ floatgrid);
++ }
++ else if (precision == 16) {
++ nanogrid =
++ nanovdb::openToNanoVDB<nanovdb::HostBuffer, openvdb::FloatTree, nanovdb::Fp16>(
++ floatgrid);
++ }
++ else {
++ nanogrid = nanovdb::openToNanoVDB(floatgrid);
++ }
++ }
++ else if constexpr (std::is_same_v<FloatGridType, openvdb::Vec3fGrid>) {
++ openvdb::Vec3fGrid floatgrid(*openvdb::gridConstPtrCast<GridType>(grid));
++ nanogrid = nanovdb::openToNanoVDB(floatgrid);
++ }
++# endif
+ }
+ catch (const std::exception &e) {
+ VLOG_WARNING << "Error converting OpenVDB to NanoVDB grid: " << e.what();
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/blender.git/commitdiff/aca63a46c07dae9d8a78a72189d34dfa5bb2881d
More information about the pld-cvs-commit
mailing list