diff --git a/thirdparty/embree/common/sys/sysinfo.cpp b/thirdparty/embree/common/sys/sysinfo.cpp index 61256b34f2..4583e49b1c 100644 --- a/thirdparty/embree/common/sys/sysinfo.cpp +++ b/thirdparty/embree/common/sys/sysinfo.cpp @@ -646,6 +646,10 @@ namespace embree #if defined(__EMSCRIPTEN__) #include + +extern "C" { +extern int godot_js_os_hw_concurrency_get(); +} #endif namespace embree @@ -659,6 +663,8 @@ namespace embree nThreads = sysconf(_SC_NPROCESSORS_ONLN); // does not work in Linux LXC container assert(nThreads); #elif defined(__EMSCRIPTEN__) + nThreads = godot_js_os_hw_concurrency_get(); +#if 0 // 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({ @@ -674,6 +680,7 @@ namespace embree return 1; } }); +#endif #else cpu_set_t set; if (pthread_getaffinity_np(pthread_self(), sizeof(set), &set) == 0)