123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338 |
- diff --git a/common/platform.h b/common/platform.h
- index be14bc7..9373b61 100644
- --- a/common/platform.h
- +++ b/common/platform.h
- @@ -19,7 +19,7 @@
- #if defined(_WIN32)
- #define WIN32_LEAN_AND_MEAN
- #define NOMINMAX
- - #include <Windows.h>
- + #include <windows.h>
- #elif defined(__APPLE__)
- #include <sys/sysctl.h>
- #endif
- @@ -129,4 +129,3 @@ namespace oidn {
- std::string getBuildName();
-
- } // namespace oidn
- -
- diff --git a/core/autoencoder.cpp b/core/autoencoder.cpp
- index d6915e6..d8da684 100644
- --- a/core/autoencoder.cpp
- +++ b/core/autoencoder.cpp
- @@ -90,13 +90,19 @@ namespace oidn {
- if (!dirty)
- return;
-
- - device->executeTask([&]()
- - {
- + // -- GODOT start --
- + //device->executeTask([&]()
- + //{
- + // GODOT end --
- +
- if (mayiuse(avx512_common))
- net = buildNet<16>();
- else
- net = buildNet<8>();
- - });
- +
- + // GODOT start --
- + //});
- + // GODOT end --
-
- dirty = false;
- }
- @@ -108,9 +114,10 @@ namespace oidn {
-
- if (!net)
- return;
- -
- - device->executeTask([&]()
- - {
- + // -- GODOT start --
- + //device->executeTask([&]()
- + //{
- + // -- GODOT end --
- Progress progress;
- progress.func = progressFunc;
- progress.userPtr = progressUserPtr;
- @@ -156,7 +163,9 @@ namespace oidn {
- tileIndex++;
- }
- }
- - });
- + // -- GODOT start --
- + //});
- + // -- GODOT end --
- }
-
- void AutoencoderFilter::computeTileSize()
- @@ -464,6 +473,11 @@ namespace oidn {
- return std::make_shared<GammaTransferFunction>();
- }
-
- +// -- GODOT start --
- +// Godot doesn't need Raytracing filters. Removing them saves space in the weights files.
- +#if 0
- +// -- GODOT end --
- +
- // --------------------------------------------------------------------------
- // RTFilter
- // --------------------------------------------------------------------------
- @@ -491,6 +505,9 @@ namespace oidn {
- weightData.hdr_alb = weights::rt_hdr_alb;
- weightData.hdr_alb_nrm = weights::rt_hdr_alb_nrm;
- }
- +// -- GODOT start --
- +#endif
- +// -- GODOT end --
-
- // --------------------------------------------------------------------------
- // RTLightmapFilter
- diff --git a/core/autoencoder.h b/core/autoencoder.h
- index c199052..98b6108 100644
- --- a/core/autoencoder.h
- +++ b/core/autoencoder.h
- @@ -93,11 +93,18 @@ namespace oidn {
- // RTFilter - Generic ray tracing denoiser
- // --------------------------------------------------------------------------
-
- +// -- GODOT start --
- +// Godot doesn't need Raytracing filters. Removing them saves space in the weights files.
- +#if 0
- +// -- GODOT end --
- class RTFilter : public AutoencoderFilter
- {
- public:
- explicit RTFilter(const Ref<Device>& device);
- };
- +// -- GODOT start --
- +#endif
- +// -- GODOT end --
-
- // --------------------------------------------------------------------------
- // RTLightmapFilter - Ray traced lightmap denoiser
- diff --git a/core/common.h b/core/common.h
- index a3a7e8a..a35dd90 100644
- --- a/core/common.h
- +++ b/core/common.h
- @@ -27,7 +27,9 @@
- #include "common/ref.h"
- #include "common/exception.h"
- #include "common/thread.h"
- -#include "common/tasking.h"
- +// -- GODOT start --
- +//#include "common/tasking.h"
- +// -- GODOT end --
- #include "math.h"
-
- namespace oidn {
- diff --git a/core/device.cpp b/core/device.cpp
- index c455695..3cd658b 100644
- --- a/core/device.cpp
- +++ b/core/device.cpp
- @@ -29,7 +29,9 @@ namespace oidn {
-
- Device::~Device()
- {
- - observer.reset();
- + // -- GODOT start --
- + //observer.reset();
- + // -- GODOT end --
- }
-
- void Device::setError(Device* device, Error code, const std::string& message)
- @@ -141,6 +143,9 @@ namespace oidn {
- if (isCommitted())
- throw Exception(Error::InvalidOperation, "device can be committed only once");
-
- + // -- GODOT start --
- + #if 0
- + // -- GODOT end --
- // Get the optimal thread affinities
- if (setAffinity)
- {
- @@ -157,7 +162,10 @@ namespace oidn {
- // Automatically set the thread affinities
- if (affinity)
- observer = std::make_shared<PinningObserver>(affinity, *arena);
- -
- + // -- GODOT start --
- + #endif
- + numThreads = 1;
- + // -- GODOT end --
- dirty = false;
-
- if (isVerbose())
- @@ -191,9 +199,17 @@ namespace oidn {
-
- Ref<Filter> filter;
-
- +// -- GODOT start --
- +// Godot doesn't need Raytracing filters. Removing them saves space in the weights files.
- +#if 0
- +// -- GODOT end --
- if (type == "RT")
- filter = makeRef<RTFilter>(Ref<Device>(this));
- - else if (type == "RTLightmap")
- +// -- GODOT start --
- +// Godot doesn't need Raytracing filters. Removing them saves space in the weights files.
- +#endif
- + if (type == "RTLightmap")
- +// -- GODOT end --
- filter = makeRef<RTLightmapFilter>(Ref<Device>(this));
- else
- throw Exception(Error::InvalidArgument, "unknown filter type");
- @@ -210,11 +226,12 @@ namespace oidn {
- std::cout << " Build : " << getBuildName() << std::endl;
- std::cout << " Platform: " << getPlatformName() << std::endl;
-
- - std::cout << " Tasking :";
- - std::cout << " TBB" << TBB_VERSION_MAJOR << "." << TBB_VERSION_MINOR;
- - std::cout << " TBB_header_interface_" << TBB_INTERFACE_VERSION << " TBB_lib_interface_" << tbb::TBB_runtime_interface_version();
- - std::cout << std::endl;
- -
- +// -- GODOT start --
- +// std::cout << " Tasking :";
- +// std::cout << " TBB" << TBB_VERSION_MAJOR << "." << TBB_VERSION_MINOR;
- +// std::cout << " TBB_header_interface_" << TBB_INTERFACE_VERSION << " TBB_lib_interface_" << tbb::TBB_runtime_interface_version();
- +// std::cout << std::endl;
- +// -- GODOT end --
- std::cout << std::endl;
- }
-
- diff --git a/core/device.h b/core/device.h
- index c2df714..d9cfd85 100644
- --- a/core/device.h
- +++ b/core/device.h
- @@ -41,10 +41,12 @@ namespace oidn {
- ErrorFunction errorFunc = nullptr;
- void* errorUserPtr = nullptr;
-
- - // Tasking
- - std::shared_ptr<tbb::task_arena> arena;
- - std::shared_ptr<PinningObserver> observer;
- - std::shared_ptr<ThreadAffinity> affinity;
- +// -- GODOT start --
- +// // Tasking
- +// std::shared_ptr<tbb::task_arena> arena;
- +// std::shared_ptr<PinningObserver> observer;
- +// std::shared_ptr<ThreadAffinity> affinity;
- +// -- GODOT end --
-
- // Parameters
- int numThreads = 0; // autodetect by default
- @@ -66,17 +68,19 @@ namespace oidn {
-
- void commit();
-
- - template<typename F>
- - void executeTask(F& f)
- - {
- - arena->execute(f);
- - }
- +// -- GODOT start --
- +// template<typename F>
- +// void executeTask(F& f)
- +// {
- +// arena->execute(f);
- +// }
-
- - template<typename F>
- - void executeTask(const F& f)
- - {
- - arena->execute(f);
- - }
- +// template<typename F>
- +// void executeTask(const F& f)
- +// {
- +// arena->execute(f);
- +// }
- +// -- GODOT end --
-
- Ref<Buffer> newBuffer(size_t byteSize);
- Ref<Buffer> newBuffer(void* ptr, size_t byteSize);
- @@ -86,7 +90,10 @@ namespace oidn {
- __forceinline std::mutex& getMutex() { return mutex; }
-
- private:
- - bool isCommitted() const { return bool(arena); }
- +// -- GODOT start --
- + //bool isCommitted() const { return bool(arena); }
- + bool isCommitted() const { return false; }
- +// -- GODOT end --
- void checkCommitted();
-
- void print();
- diff --git a/core/network.cpp b/core/network.cpp
- index 8c2de09..ed8328c 100644
- --- a/core/network.cpp
- +++ b/core/network.cpp
- @@ -17,6 +17,9 @@
- #include "upsample.h"
- #include "weights_reorder.h"
- #include "network.h"
- +// -- GODOT start --
- +#include <cstring>
- +// -- GODOT end --
-
- namespace oidn {
-
- diff --git a/core/transfer_function.cpp b/core/transfer_function.cpp
- index 601f814..ce5deca 100644
- --- a/core/transfer_function.cpp
- +++ b/core/transfer_function.cpp
- @@ -38,16 +38,24 @@ namespace oidn {
- // Compute the average log luminance of the downsampled image
- using Sum = std::pair<float, int>;
-
- - Sum sum =
- - tbb::parallel_reduce(
- - tbb::blocked_range2d<int>(0, HK, 0, WK),
- - Sum(0.f, 0),
- - [&](const tbb::blocked_range2d<int>& r, Sum sum) -> Sum
- + // -- GODOT start --
- + // Sum sum =
- + // tbb::parallel_reduce(
- + // tbb::blocked_range2d<int>(0, HK, 0, WK),
- + // Sum(0.f, 0),
- + // [&](const tbb::blocked_range2d<int>& r, Sum sum) -> Sum
- + // {
- + // // Iterate over blocks
- + // for (int i = r.rows().begin(); i != r.rows().end(); ++i)
- + // {
- + // for (int j = r.cols().begin(); j != r.cols().end(); ++j)
- + // {
- +
- + Sum sum = Sum(0.0f, 0);
- +
- + for (int i = 0; i != HK; ++i)
- {
- - // Iterate over blocks
- - for (int i = r.rows().begin(); i != r.rows().end(); ++i)
- - {
- - for (int j = r.cols().begin(); j != r.cols().end(); ++j)
- + for (int j = 0; j != WK; ++j)
- {
- // Compute the average luminance in the current block
- const int beginH = int(ptrdiff_t(i) * H / HK);
- @@ -82,11 +90,12 @@ namespace oidn {
- }
- }
-
- - return sum;
- - },
- - [](Sum a, Sum b) -> Sum { return Sum(a.first+b.first, a.second+b.second); },
- - tbb::static_partitioner()
- - );
- + // return sum;
- + // },
- + // [](Sum a, Sum b) -> Sum { return Sum(a.first+b.first, a.second+b.second); },
- + // tbb::static_partitioner()
- + // );
- + // -- GODOT end --
-
- return (sum.second > 0) ? (key / exp2(sum.first / float(sum.second))) : 1.f;
- }
|