Skip to content

Bump filament to 1.71.4, swiftshader fo latest#28

Merged
mcooley merged 1 commit into
mainfrom
mcooley/bump-native-deps
May 20, 2026
Merged

Bump filament to 1.71.4, swiftshader fo latest#28
mcooley merged 1 commit into
mainfrom
mcooley/bump-native-deps

Conversation

@mcooley
Copy link
Copy Markdown
Owner

@mcooley mcooley commented May 20, 2026

No description provided.

@mcooley
Copy link
Copy Markdown
Owner Author

mcooley commented May 20, 2026

Opus 4.7 generated notes on the upstream content we're bringing in:

Submodule Was Now Δ
filament b89a05a3 (v1.67.1, 2025-11-19) a0ecdbbe (v1.71.4, on release) 653 commits
swiftshader d7bc9573 f9d5d49a (master tip) 24 commits

Filament

Our footprint: Vulkan backend, gltfio + ubershader, offscreen renderStandaloneViewreadPixels, custom CallbackHandler. So I filtered the 653-commit range against the Vulkan backend, gltfio, Engine, and core API paths, plus the curated RELEASE_NOTES.md v1.68.0 → v1.71.4 range.

gltfio (the part we exercise most heavily)

  • ffa28864 gltfio: Fix security and memory corruption issues in Utility.cpp — security hardening of glTF parsing. Notable because we feed potentially-untrusted glTF input into AssetLoader::createAsset. Worth being aware of.
  • 8d16ad88 gltfio: Fix vulnerabilities in ResourceLoader.cpp — same category. We call mResourceLoader->loadResources(asset) in RenderManager::loadGLTFAsset.
  • e6e7c032 uberz: Fix vulnerabilities in convertOffsetsToPointers without aborts — this code path is used during ubershader provider init.
  • d41cfacf gltfio: Harden ResourceLoader buffer unpacking and skin bind copying — same theme.
  • 3a78c78e gltfio: Continue if floatsCount is 0 in ResourceLoader.cpp
  • 6193f489 gltfio: prevent malformed gltf+draco mesh — we don't use Draco but it lives in the same parse path.
  • 491531c7 gltfio: fix possible overflow for meshopt decompression
  • 901c8776 gltfio: add null check for when image is not provided
  • 1ddd10f3 Fix: Morph Target animations (Blend Shapes) fail to render when loading GLB files via ResourceLoader — only matters if any rendered scenes use morph targets.
  • 7ed5379a gltfio: fix createInstance() overwriting morph target buffers — same caveat.
  • 3ab362d5 gltfio: zero-initialize accessors with undefined bufferViews (post-v1.71.4 main, won't be in our update)
  • 7f61eb7a GLTFIO Webp Texture Support + v1.68.4 — gated behind FILAMENT_SUPPORTS_WEBP_TEXTURES cmake flag, defaults OFF, so no behavioral change unless we opt in. Worth knowing if we ever want it.
  • cdfb92e1 gltfio: Allow compile-time override of GLTFIO_USE_FILESYSTEM — could let us shave a small dependency, optional.

Vulkan backend

  • af345728 VK: Add support for VK_KHR_global_priority — driver-level only; harmless for SwiftShader, which doesn't expose it.
  • 719914fb VK: Better support for renderdoc captures — useful for debugging us.
  • 5177b5c9 vk: make fbo eviction time configurable — only relevant if you want to tune long-running render servers; default behavior preserved.
  • 41183e33 Use fence pool in Vulkan to ensure conversion to FD always provides an FD — robustness fix, no API surface.
  • 193eafc4 backend: typed clear-color value for integer-format attachments — we use RGBA8 (float clears), unaffected.
  • 4bfe3b99 Several fixes caught by ASAN — backend-wide stability fixes.
  • 107276e9 VK: Refactor platform Vulkan initialization + d52fb1f4 vk: refactor to use polymorphism for platform specialization — internal restructuring; could be relevant if we ever subclass the Vulkan platform. As long as we keep using the default platform, no impact.
  • 73862203 Stream API Vulkan Backend — we don't use Streams.

Engine core / threading (worth a careful read given our async work)

  • f1ffb783 Add automatic frame skipping / v1.68.5 engine.skip_frame_when_cpu_ahead_of_display — feature flag, off by default for offscreen use, but check whether the flag is exposed somewhere we'd want to ensure it stays off for renderStandaloneView.
  • f4a079f6 backend: Propagate backend thread exceptions to the main threaddirectly relevant to us. Right now we noted "the native side will not report exceptions through the callback, so this is a defensive path" in Renderer.cs. After this change, GPU/driver-thread exceptions may actually surface through callbacks; the defensive SetException code may stop being defensive. Worth re-checking that path after the update.
  • 7701e7a5 Handle deferred destruction for asynchronous objects — directly related to the lifecycle reasoning we did for destroyRenderResources ordering. May change when it's safe to destroy a View/RenderTarget. Could simplify (or invalidate assumptions in) our cleanup ordering. Worth reading the diff.
  • 2c5842f9 Implement asynchronous resource management + 96e23665 Add config option for asynchronous mode + 0eff54b8 Add async support check to backend + 53a94c45 Add thread pool and callback manager / knobs for enabling + disabling prewarm — large pile of async-resource-management work. By default this is opt-in; current synchronous load path should still work. If we ever want to load multiple glTFs concurrently, this is the on-ramp.
  • 1b5916b6 Rename AsyncCallbackType to AsyncCompletionCallback — API rename. We don't reference either symbol, so no impact.
  • 4d96f188 backend: CallbackHandler dstor inlined in header — affects us because we derive ImmediateCallbackHandler from backend::CallbackHandler. Compile only; no source change required.
  • 71e8cab0 Fix a race when garbage-collecting components
  • e830ec28 Prevent circular buffer overflow during UboManager reallocation — robustness.
  • 83653fb3 engine: encapsulate material cache handling / 0b63969a Make the LruCache size of material/program cache configurable / 2f1266f7 engine: add program cache — internal speedups, no API change for us.
  • fb875bfb Add colorGrading method to Engine::Builder for default LUT configuration — new convenience API; we don't use color grading.

Material / shader versioning

Material binary version bumped at v1.68.0, v1.70.0, v1.71.0. We use the bundled UBERARCHIVE_DEFAULT_DATA/UBERARCHIVE_DEFAULT_SIZE, which is rebuilt together with filament, so this is transparent — but if anyone ever ships precompiled .filamat files alongside, they'd need a rebuild.

Other

  • v1.70.0 engine: fix crash when using variance shadow maps — defensive value: we don't use VSM, but might.
  • f701c1e1 Implement KHR_materials_dispersion + 008534b8 Fix dispersion with uber-shaders + v1.68.3 — new glTF extension support, propagates through ubershader. Could affect rendering of certain authored materials.
  • e85c021d remove the now unneeded FL0 materials — drops feature-level-0 materials. We don't target FL0.
  • Filament now targets C++20 (v1.64.0, predates our recorded version) — already in effect, no change.

SwiftShader — full list (only 24 commits)

f9d5d49 Add missing include for LLVM_VERSION_MAJOR
27dd2ae Implement full ARM/AArch64 multiarch compatibility for SwiftShader Reactor
6cc7757 Update primitive batch size calc for line/point polygon modes
8955613 Backport macOS ARM64 ASAN dynamic shadow offset from LLVM 12+
313545f Fix Regres commit retrieval
242a812 Fixed: memoryTypeBits incorrectly included property flag in vkGetMemoryHostPointerPropertiesEXT()
b7b7fd2 swiftshader: llvm-16.0: remove unnecessary virtual specifier
3b5edab Set Update Mechanism to Manual
374652a Regres: Update test lists @ b0c7e1fb
b0c7e1f Regres: Update test lists @ 9c9be842
9c9be84 Update OWNERS
76b5d96 Regres: Update test lists @ e5b3afce
e5b3afc Pin targets using LLVM10 and LLVM16 to C++20
0a24bb8 Support cmake build for loongarch64.
e391edb Flip inverted VK_EXT_descriptor_indexing ASSERT
07b52b2 add gn build arg to make inclusion of ASTC sources optional
8e12559 Fix build error when use llvm16 in Debug mode.
5aa3ef6 Regres: Update test lists @ ff4435d3
ff4435d Fix riscv64 build problem with LLVM 16
42f6e05 Regres: Update test lists @ 518a9f63
518a9f6 Fix api version comparison in vkCreateInstance()
04fbb7d Regres: Update test lists @ 498a6f76
498a6f7 Suppress -Wunnecessary-virtual-specifier
be8ed1d Regres: Update test lists @ d7bc9573

Functional changes that could touch us:

  • 6cc7757d Update primitive batch size calc for line/point polygon modes — only matters if we render lines/points; we don't.
  • 242a8121 Fix memoryTypeBits in vkGetMemoryHostPointerPropertiesEXT — narrow fix, only triggered if filament uses host-pointer imports (it doesn't on the default Vulkan path).
  • 518a9f63 Fix api version comparison in vkCreateInstance — bug fix that could be hit on first init depending on the Vulkan API version filament requests; unlikely to be a regression.
  • e391edb8 Flip inverted VK_EXT_descriptor_indexing ASSERT — only matters in debug builds; we use Release for SwiftShader (see build-native.py), so no effect.
  • 27dd2aeb ARM/AArch64 Reactor multiarch + 8955613 macOS ARM64 ASAN + 0a24bb8 loongarch64 build + ff4435d riscv64 build — build/portability only; we build x64.

Everything else in swiftshader's range is test-list refreshes, OWNERS updates, or LLVM-version build warnings.

@mcooley mcooley merged commit efbdd09 into main May 20, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant