From 05dde7e2cf7d79ca5e68084cb7c8950f3479fee6 Mon Sep 17 00:00:00 2001 From: Powei Feng Date: Wed, 22 Apr 2026 09:18:24 -0700 Subject: [PATCH] Update emsdk to 5.0.4 (#9921) - Bumped GITHUB_EMSDK_VERSION to 5.0.4 in build scripts and docs. - Fixed a compilation error in web/filament-js/jsbindings.cpp where stricter pointer binding rules in Emscripten 5.0.4 caused a build failure when returning a raw pointer wrapped in `emscripten::val`. Changed the lambda to return the raw pointer directly, leveraging Embind's `allow_raw_pointers()`. --- BUILDING.md | 2 +- build/common/get-emscripten.sh | 2 +- build/common/versions | 2 +- web/filament-js/jsbindings.cpp | 9 ++------- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index 3995d85b2b..446518b059 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -408,7 +408,7 @@ same version that our continuous builds use. ```shell cd -curl -L https://github.com/emscripten-core/emsdk/archive/refs/tags/3.1.60.zip > emsdk.zip +curl -L https://github.com/emscripten-core/emsdk/archive/refs/tags/5.0.4.zip > emsdk.zip unzip emsdk.zip ; mv emsdk-* emsdk ; cd emsdk python ./emsdk.py install latest python ./emsdk.py activate latest diff --git a/build/common/get-emscripten.sh b/build/common/get-emscripten.sh index ec16d3c144..fb73e80df9 100755 --- a/build/common/get-emscripten.sh +++ b/build/common/get-emscripten.sh @@ -11,7 +11,7 @@ if [ -d "./emsdk" ]; then fi # Install emscripten. -EMSDK_VERSION=${GITHUB_EMSDK_VERSION-3.1.60} +EMSDK_VERSION=${GITHUB_EMSDK_VERSION-5.0.4} curl -L https://github.com/emscripten-core/emsdk/archive/refs/tags/${EMSDK_VERSION}.zip > emsdk.zip unzip emsdk.zip ; mv emsdk-* emsdk ; cd emsdk ./emsdk install latest diff --git a/build/common/versions b/build/common/versions index dc9ffd7a94..1b6ba4c9b1 100644 --- a/build/common/versions +++ b/build/common/versions @@ -4,6 +4,6 @@ GITHUB_NINJA_VERSION=1.10.2 GITHUB_MESA_VERSION=24.2.1 GITHUB_LLVM_VERSION=17 GITHUB_NDK_VERSION=29.0.14206865 -GITHUB_EMSDK_VERSION=3.1.60 +GITHUB_EMSDK_VERSION=5.0.4 GITHUB_VULKANSDK_VERSION=1.4.321.0 GITHUB_GLTF_SAMPLE_ASSETS_COMMIT=d441dfdb87413ff412c620849a649d61789a470f diff --git a/web/filament-js/jsbindings.cpp b/web/filament-js/jsbindings.cpp index 0048576aff..75e8a69a3d 100644 --- a/web/filament-js/jsbindings.cpp +++ b/web/filament-js/jsbindings.cpp @@ -1861,14 +1861,9 @@ class_("KtxInfo") class_("MeshReader$MaterialRegistry") .constructor<>() .function("size", &MeshReader::MaterialRegistry::numRegistered) - .function("get", EMBIND_LAMBDA(val, (MeshReader::MaterialRegistry* self, std::string k), { + .function("get", EMBIND_LAMBDA(filament::MaterialInstance*, (MeshReader::MaterialRegistry* self, std::string k), { const utils::CString name(k.c_str(), k.size()); - auto i = self->getMaterialInstance(name); - if (i == nullptr) { - return val::undefined(); - } else { - return val(i); - } + return self->getMaterialInstance(name); }), allow_raw_pointers()) .function("set", EMBIND_LAMBDA(void, (MeshReader::MaterialRegistry* self, std::string k, filament::MaterialInstance* v), { const utils::CString name(k.c_str(), k.size());