diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-02-20 17:40:11 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-02-20 17:40:11 +0000 |
commit | f3439d6caba79c7067991ef0403d855917255726 (patch) | |
tree | 1c1816b545d00d4dc70a8a89f386963f5e5f51f9 /media-gfx/blender/files | |
parent | d6ecedbb65041ed35010095376e87dd7de4270c5 (diff) |
gentoo auto-resync : 20:02:2024 - 17:40:11
Diffstat (limited to 'media-gfx/blender/files')
-rw-r--r-- | media-gfx/blender/files/blender-4.0.1-openvdb-11.patch | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/media-gfx/blender/files/blender-4.0.1-openvdb-11.patch b/media-gfx/blender/files/blender-4.0.1-openvdb-11.patch new file mode 100644 index 000000000000..d9455222c6a7 --- /dev/null +++ b/media-gfx/blender/files/blender-4.0.1-openvdb-11.patch @@ -0,0 +1,73 @@ +--- a/intern/cycles/scene/image_vdb.cpp 2023-11-23 14:42:38.772685628 +0100 ++++ b/intern/cycles/scene/image_vdb.cpp 2023-11-23 15:19:55.475804922 +0100 +@@ -11,7 +11,14 @@ + # include <openvdb/tools/Dense.h> + #endif + #ifdef WITH_NANOVDB +-# include <nanovdb/util/OpenToNanoVDB.h> ++# include <nanovdb/NanoVDB.h> ++# define NANOVDB_VERSION(major, minor, patch) (major << 21 | minor << 10 | patch) ++# if NANOVDB_VERSION(NANOVDB_MAJOR_VERSION_NUMBER, NANOVDB_MINOR_VERSION_NUMBER, NANOVDB_PATCH_VERSION_NUMBER) >= NANOVDB_VERSION(32, 6, 0) ++# include <nanovdb/util/CreateNanoGrid.h> ++# else ++# include <nanovdb/util/OpenToNanoVDB.h> ++# endif ++# undef NANOVDB_VERSION + #endif + + CCL_NAMESPACE_BEGIN +@@ -55,20 +62,35 @@ + FloatGridType floatgrid(*openvdb::gridConstPtrCast<GridType>(grid)); + if constexpr (std::is_same_v<FloatGridType, openvdb::FloatGrid>) { + if (precision == 0) { +- nanogrid = nanovdb::openToNanoVDB<nanovdb::HostBuffer, +- typename FloatGridType::TreeType, +- nanovdb::FpN>(floatgrid); ++ if constexpr (nanovdb::Version() >= nanovdb::Version(32,6,0)) { ++ nanogrid = nanovdb::createNanoGrid(floatgrid); ++ } ++ else { ++ nanogrid = nanovdb::openToNanoVDB<nanovdb::HostBuffer, ++ typename FloatGridType::TreeType, ++ nanovdb::FpN>(floatgrid); ++ } + return true; + } +- else if (precision == 16) { +- nanogrid = nanovdb::openToNanoVDB<nanovdb::HostBuffer, +- typename FloatGridType::TreeType, +- nanovdb::Fp16>(floatgrid); ++ if (precision == 16) { ++ if constexpr (nanovdb::Version() > nanovdb::Version(32,4,0)) { ++ nanogrid = nanovdb::createNanoGrid(floatgrid); ++ } ++ else { ++ nanogrid = nanovdb::openToNanoVDB<nanovdb::HostBuffer, ++ typename FloatGridType::TreeType, ++ nanovdb::Fp16>(floatgrid); ++ } + return true; + } + } + +- nanogrid = nanovdb::openToNanoVDB(floatgrid); ++ if constexpr (nanovdb::Version() > nanovdb::Version(32,4,0)) { ++ nanogrid = nanovdb::createNanoGrid(floatgrid); ++ } ++ else { ++ nanogrid = nanovdb::openToNanoVDB(floatgrid); ++ } + } + catch (const std::exception &e) { + VLOG_WARNING << "Error converting OpenVDB to NanoVDB grid: " << e.what(); +--- a/CMakeLists.txt 2023-11-23 15:59:58.715805024 +0100 ++++ b/CMakeLists.txt 2023-11-23 16:06:42.352711508 +0100 +@@ -1461,7 +1461,7 @@ + endif() + + if(WITH_OPENVDB) +- list(APPEND OPENVDB_DEFINITIONS -DWITH_OPENVDB) ++ list(APPEND OPENVDB_DEFINITIONS -DWITH_OPENVDB -DNANOVDB_USE_OPENVDB) + + if(WITH_OPENVDB_3_ABI_COMPATIBLE) + list(APPEND OPENVDB_DEFINITIONS -DOPENVDB_3_ABI_COMPATIBLE) |