123456789101112131415161718192021222324252627282930313233343536373839404142 |
- diff --git a/thirdparty/embree/common/sys/sysinfo.cpp b/thirdparty/embree/common/sys/sysinfo.cpp
- index c98f61fa53..7f7a009a1e 100644
- --- a/thirdparty/embree/common/sys/sysinfo.cpp
- +++ b/thirdparty/embree/common/sys/sysinfo.cpp
- @@ -640,6 +640,12 @@ namespace embree
-
- #if defined(__EMSCRIPTEN__)
- #include <emscripten.h>
- +
- +// -- GODOT start --
- +extern "C" {
- +extern int godot_js_os_hw_concurrency_get();
- +}
- +// -- GODOT end --
- #endif
-
- namespace embree
- @@ -653,21 +659,9 @@ namespace embree
- nThreads = sysconf(_SC_NPROCESSORS_ONLN); // does not work in Linux LXC container
- assert(nThreads);
- #elif defined(__EMSCRIPTEN__)
- - // WebAssembly supports pthreads, but not pthread_getaffinity_np. Get the number of logical
- - // threads from the browser or Node.js using JavaScript.
- - nThreads = MAIN_THREAD_EM_ASM_INT({
- - const isBrowser = typeof window !== 'undefined';
- - const isNode = typeof process !== 'undefined' && process.versions != null &&
- - process.versions.node != null;
- - if (isBrowser) {
- - // Return 1 if the browser does not expose hardwareConcurrency.
- - return window.navigator.hardwareConcurrency || 1;
- - } else if (isNode) {
- - return require('os').cpus().length;
- - } else {
- - return 1;
- - }
- - });
- + // -- GODOT start --
- + nThreads = godot_js_os_hw_concurrency_get();
- + // -- GODOT end --
- #else
- cpu_set_t set;
- if (pthread_getaffinity_np(pthread_self(), sizeof(set), &set) == 0)
|