Commit Graph

7741 Commits

Author SHA1 Message Date
Doris Wu
379b63d11b buffer update opt: Add new API for getting uniform buffer offset alignment (#9347) 2025-10-29 11:29:31 +08:00
Mathias Agopian
bfd23fcb4f Use the new setProducerThrottling API (#9362) 2025-10-28 10:44:02 -07:00
Mathias Agopian
9c8aea115c editing a program in matdbg should not crash the target (#9373)
fix a couple assert in the OpenGL backend. these should not terminate 
the process when a program fails to compile, in MAT_DGB mode.
2025-10-28 10:42:48 -07:00
Powei Feng
ca038169c6 webgpu: fix FrameScheduled callback and test (#9370)
Fix the callback by using a shared_ptr to store the callback.
The same logic exists in all other backends.

Re-enable corresponding backend test for webgpu.

Remove viewport size check in beingRenderPass. There is no similar
check in other backends.
2025-10-28 16:16:24 +00:00
Powei Feng
0c5a0b3399 Revert "webgpu: fix FrameScheduled callback and test"
This reverts commit 896246ba7c.
2025-10-27 13:49:59 -07:00
Powei Feng
896246ba7c webgpu: fix FrameScheduled callback and test
Fix the callback by using a shared_ptr to store the callback.
The same logic exists in all other backends.

Re-enable corresponding backend test for webgpu.

Remove viewport size check in beingRenderPass. There is no similar
check in other backends.
2025-10-27 13:47:44 -07:00
Sungun Park
3021f8d0a2 Shared context support for GLX (#9359) 2025-10-27 17:33:16 +00:00
Powei Feng
9e437ea588 backend-test: fix clean up ordering (#9353)
Previously, Cleanup is scoped to the testing function, which will
go out of scope before BackendTest's destructor is called.  We
need to order the cleanup (destruction of resources) to after
the readPixels and previous commands are complete - which is
in the destructor of BackendTest.

Additionally, we need to cleanup before the destruction of the
driver.  This means we need to be able to order the destruction
of Cleanup (and not rely on RAII). This is done by having a
unique_ptr holding a Cleanup instance.
2025-10-27 17:04:15 +00:00
Filament Bot
556da0ed0b [automated] Updating /docs due to commit ee1921a
Full commit hash is ee1921ab3a

DOCS_ALLOW_DIRECT_EDITS
2025-10-24 22:20:19 +00:00
Benjamin Doherty
ee1921ab3a Update Sonatype link 2025-10-24 15:17:06 -07:00
Mathias Agopian
2b8fe35a70 new frame and compositor timing APIs for Platform (#9354)
* Add Compositor Timing APIs to Platform

These APIs are currently modeled after Android capabilities, but a lot of
the concepts are generic enough to map to other system with a compositor.

This adds Platfrom::queryCompositorTiming() which is currently only
implementd by PlaftormEGLAndroid. Vulkan and WebGPU will come later.
The functionality is implement via EGL, but a new NativeWindow
helper is provided to access the same data from non-EGL backends.
Also to be on the safe side, PlatformEGLAndroid reverts to using
the ANativeWindow if EGL fails.

This CL also cleans-up PlatformEGLAndroid to accomodate those changes.

* Add queryFrameTimestamps() API to Platform.

This API allows to query very precise timing information of
past frames on a given swapchain. This information is provided
by the Android framework via EGL or ANativeWindow (albeit
through private APIs).
Currently only implemented by PlatformEGLAndroid.
2025-10-24 18:03:38 +00:00
Mathias Agopian
624b05f838 cleanup PlatformEGL swapchain (#9349)
SwapChainEGL is now implemented more idiomatically. It has a
constructor that does the initialization. This allows subclasses
to be implemented properly and safely.

PlatformEGL::createSwapChain() now just constructs SwapChainEGL and
does nothing else, which allows a subclass of PlatformEGL to "add" to
the PlatformEGL swapchain, buy simply subclassing from it and
constructing it normally.

The SwapChain doesn't need to have a vtable because polymorphism
is handled by the concrete Platform implementation.

Here we also implement a no-op SwapChainEGLAndroid to show how easy
it is to extend the swapchain. This functionality will be used soon.
2025-10-24 10:41:10 -07:00
Filament Bot
8a23ed91c0 [automated] Updating /docs due to commit db477e0
Full commit hash is db477e0549

DOCS_ALLOW_DIRECT_EDITS
2025-10-24 16:51:10 +00:00
Powei Feng
db477e0549 docs: update remote UI (#9358)
- Also modify update script
   - Renamed to update_remote_ui
   - Repair path inside sciprt
 - Ensure update script is not copied over to /docs
 - Add requirements.txt (for python/pip dependencies)
2025-10-24 16:47:40 +00:00
Doris Wu
ef3c391978 buffer update opt: Add material instances stress test sample (#9345) 2025-10-24 03:04:00 +00:00
Powei Feng
4547b69ccc backend-test: fix breakages on linux (#9350)
- On webgpu, do not error on linux when we're building headless
   only (without platform support for surface).
- For test/backend/test.sh, enable path for building on
   Linux + 64-bit x86
2025-10-23 21:12:25 +00:00
rafadevai
326bc4c311 Fix comments for TextureSampler::setAnisotropy (#9357)
The default value for no anisotropy must be 1
instead of 0.
2025-10-23 11:14:33 -07:00
haroonq
44ceee1f90 Disable unsupported flags when compiling with GCC. (#9356) 2025-10-23 09:56:40 -07:00
Mathias Agopian
b646700ccc fix a rare swapchain leak in PlatformEGL (#9348)
If createSwapChain() fails, a SwapChain object is always returned
(this might itself be a problem, but we can address that later),
however in that case, destroySwapChain() would leak the EGLSwapChain
structure.
2025-10-22 10:25:20 -07:00
Powei Feng
6caf88d3aa github: add backend tests to presbumit (gl/vk) (#9344)
This commit enables running the backend tests for opengl and
vulkan on github CI. The script is located in test/backend.

We also add exceptions (SKIP_TEST) for the currently failing
tests.  Issues have been filed to track addressing these failed
tests.

We also disable a series of broken webgpu tests.
2025-10-22 10:21:55 -07:00
Doris Wu
8d6e8b8b3c buffer update opt: Add engine config for default shared Ubo size (#9340) 2025-10-22 03:48:18 +00:00
rafadevai
9da29e3ab7 Add new public API to query a sampler transform name field. (#9320)
* Add new public API to query a sampler transform name field.

This new API will let filament users query a Material object
the value of the `transformName` field of a specified sampler
parameter.

The transformName is an optional field, so if its not defined
by the user, it will return a nullptr value.

- A new test was added to test_filamat to validate the serialization.
- A new parameter was added to the test sandboxLit material to
validate the parsing a material with the new field.

* Addressing review comments

- Add java and js bindings for the new API
- Tests for querying the getParameterTransformName

* Use utils::ImmutableCString for transformName

* Updating release notes

* Review comments

* Addressing more review comments

- Fix comments
- For the java binding return an empty string when the
transform is not present.
2025-10-21 23:55:25 +00:00
haroonq
e60280e79d Add a FILAMENT_ENABLE_EXPERIMENTAL_GCC_SUPPORT cmake flag. (#9339)
Adds support for compiling filament libraries with GCC. Since GCC is not
officially supported, we prefer to disable warnings (incl. not treating
warnings as errors) rather than updating the code in order to compile
cleanly.

This flag is disabled by default.
2025-10-21 16:34:04 -07:00
Powei Feng
70db8e241b vk: use virutal methods in platform Swapchain implementation (#9337) 2025-10-21 21:21:13 +00:00
Filament Bot
7f43cf2f23 [automated] Updating /docs due to commit d3f4e91
Full commit hash is d3f4e91be2

DOCS_ALLOW_DIRECT_EDITS
2025-10-21 19:59:20 +00:00
Sungun Park
d3f4e91be2 Release Filament 1.66.1 2025-10-21 12:56:30 -07:00
Powei Feng
3602864c43 vk & webgpu: Fix timepoint overflow (#9342)
nanosecond is long long and `timeout` is uint64_t.  This creates
an overflow when timeout is too large (for example
timeout = std::numeric_limits<uint64_t>::max() when waiting
forver).
2025-10-21 12:51:26 -07:00
Sungun Park
ff3bd4dc4d Fix TSAN for VulkanAsyncHandles (#9338) 2025-10-20 19:21:14 -07:00
haroonq
b950598d11 Various fixes to support gcc compilation. (#9323)
* Add missing includes.

* Add parenthesis around operators to suppress compiler warning.

* Remove duplicate definition of is_supported_aux_t.

* Explicitly create descriptions.

* Remove usage of anonymous struct with non-trivially constructible members.

This is an error on some compilers (e.g. gcc).

* Remove unnecessary rvalue-reference on pointer type.

* Explicitly construct SamplerParams to suppress compiler warnings.

* Place attribute specifier before declaration.

* Remove usage of anonymous struct with a non-trivially constructible member.

Replace the `array` union member with an `operator[]` to provide similar
functionality.

Some compilers (e.g. gcc) do not support this non-standard use-case.

* Use same warning settings as main filament project.
2025-10-20 09:10:08 -07:00
Powei Feng
0e1e5fb381 renderdiff: disable SSR for transmission (#9336)
SSR is not required for transmission tests, and it seems to be
flaky.

RDIFF_BRANCH=pf/renderdiff-disable-transmission
2025-10-17 13:51:35 -07:00
Filament Bot
40d533ada1 [automated] Updating /docs due to commit b6df2b9
Full commit hash is b6df2b9b35

DOCS_ALLOW_DIRECT_EDITS
2025-10-17 06:20:51 +00:00
Powei Feng
b6df2b9b35 renderdiff: add transmission and ssao tests (#9232)
- Add transmission and ssao tests
 - Small mods to README.md
 - Add transmission models to gltf list
 - Change focal length to zoom in for more details

RDIFF_BRANCH=pf/renderdiff-add-transmission
2025-10-16 23:17:07 -07:00
Powei Feng
c379b31267 webgpu: fix picking (#9318)
Context:
 - Picking has switched to use integer textures and this texture
   is meant to have only RG components (#8917).
 - WebGPU only supports 4 component textures, and so we need to
   to a blit-based transform to turn 2 components into 4.
 - WebGPUBlitter supports only float textures

In this commit, we add support for integer textures to
WebGPUBlitter. In doing so, we refactor parts of the shader
construction code in the blitter class and introduce a couple
helper functions for texture formats.

This fixes picking (verifiable with gltf_viewer)

Co-authored-by: Ben Doherty <bendoherty@google.com>
2025-10-17 04:44:12 +00:00
Powei Feng
b03909c07a github: add hash id to commit message action (#9334)
We add the commit hash as output of get-commit-msg
2025-10-17 04:05:52 +00:00
Doris Wu
712c03b17b buffer update opt: Add uniform batching option for Material Instances (#9324) 2025-10-17 00:22:00 +00:00
Mathias Agopian
9dae0748d5 update perfetto sdk to 51.2 and add update script (#9335) 2025-10-16 16:00:25 -07:00
Powei Feng
fa02a7fa3b backend: add two command line arguments to backend test (#9329)
`--headless_only`
Headless-only mode indicates that we will only use headless
swapchains.  This is particularly useful if we want to test in
a CI (continuous integration) environment.

`--ci`
Having CONTINUOUS_INTEGRATION as an OS will allow us to have
CI-only temporary exceptions. Though it's expected that some
exceptions will be unfixable and will remain as workarounds.
2025-10-16 18:54:38 +00:00
Powei Feng
a068d3df79 github: fix get-commit-msg (#9330)
If we assign the message (which might contain quotes) to an
environment variable and then echo it, this should prevent the
problem of having a double quote (").

Also fix a problem in docs script for checking TAGs in commits.
2025-10-16 11:33:12 -07:00
Powei Feng
f64c087ffe backend: fix mapped buffer test for vk (#9328)
The descriptor set needs to be rebound when rendering two
separate render passes.
2025-10-16 06:26:51 +00:00
Doris Wu
9561137d53 buffer update opt: Change to use feature flag instead of engine flag (#9327)
* Revert "buffer update opt: Add a flag to guard the feature (#9322)"

This reverts commit 49c4a5d62c.

* Update feature flags

* feedback

* Update naming
2025-10-16 07:13:30 +08:00
Powei Feng
d0efda21ad webgpu: fix deadlock for readPixels (#9319)
To enable the readPixels callback to be called, we need to make
move to 'AllowSpontaneous' mode in order to not have to call
Instance::ProcessEvents() to force process the callback.
2025-10-15 11:11:05 -07:00
Mathias Agopian
a5b047f93d fix matc's -l option (#9321)
MaterialParser did the feature level check (-l) too early, before the
material was parsed, so -l0 would always fail.
2025-10-15 09:42:19 -07:00
Doris Wu
06c4ed4e6b fix: material sandbox scene crashes during shutdown (#9325) 2025-10-15 15:34:50 +00:00
Doris Wu
49c4a5d62c buffer update opt: Add a flag to guard the feature (#9322) 2025-10-15 23:14:53 +08:00
Doris Wu
c757cc3629 buffer update opt: Introduce BufferAllocator and its tests (#9304)
* Introduce AllocationStrategy and its tests

* feedback

* feedback

* Add stress test

* Fix the build

* Minor fix

* Rename the class

* Rename

* Make const
2025-10-15 06:25:42 +00:00
rafadevai
dbdf8f672b GL: Check if GL_EXT_texture_filter_anisotropic in supported in GLES (#9317)
In GLES the anisotropic filtering featuring is always
disabled even in the cases where is supported by the hardware
because the check for the extension is missing.
2025-10-14 23:03:25 -07:00
Filament Bot
54bd888374 [automated] Updating /docs due to commit b7dea28
Full commit hash is b7dea28cc5

DOCS_ALLOW_DIRECT_EDITS
2025-10-14 21:28:53 +00:00
Benjamin Doherty
b7dea28cc5 Release Filament 1.66.0 2025-10-14 14:25:20 -07:00
Benjamin Doherty
9aa8e7780b Fix NEW_RELEASE_NOTES 2025-10-14 14:24:52 -07:00
Ben Doherty
271e639abe Revert "Make check-headers test use c++20" (#9316) 2025-10-14 14:12:34 -07:00