Commit Graph

7483 Commits

Author SHA1 Message Date
Mathias Agopian
69fe317052 matc: add -O0 and -Os aliases for -g and -S 2025-08-19 22:10:46 -07:00
Mathias Agopian
9e16263876 matc: source cleanup 2025-08-19 22:10:46 -07:00
Mathias Agopian
cb43e53b71 a small micro optimization when executing commands 2025-08-19 22:10:24 -07:00
Powei Feng
45fcea101f webgpu: enable choosing vulkan backend on MacOS (#9106)
- Add a Configuration struct to the WebGPUPlatform class.  This
   allows for client-side setting of WebGPU backend configurations.
 - Add a configuration for forcing the wgpu backend to pick a
   certain backend.
 - Add Vulkan as a potential backend for WebGPU + MacOS.
 - Locally modify Dawn so that it does not assume only switfshader
   is available for Vulkan on MacOS.
 - Enable vulkan support for Dawn (third_party/dawn/tnt/CMakeLists.txt)
 - Plumb option to pick different WebGPU backend through
   FilamentApp and gltf_viewer.
2025-08-20 04:50:17 +00:00
Powei Feng
a150fabace docs: fix broken links (#9118)
- Fix broken links in https://google.github.io/filament/main/
 - Make /README.md links consistent
 - Add additional replacement recipes for /README.md
 - Make /index.html redirect to /dup/intro.html because
   /index.html has the wrong relative links. This is essentially
   adding a redirect-only index.html to src_raw.
2025-08-19 22:37:07 +00:00
Sungun Park
95db13a544 Release Filament 1.64.0 2025-08-19 21:50:50 +00:00
Andy Hovingh
a8732caa1f temporary test workaround for missing read_pixels texture usage 2025-08-19 16:42:39 -05:00
Andy Hovingh
0d6995babc wgpu: fix finish(), where it was erroneously returning if a command encoder was not in flight. Also, it was not waiting for async buffer maps to finish 2025-08-19 09:00:08 -05:00
granade-work
c9a1e446c8 Add feature to emit image diff highlighting differing pixels when image comparison tests fail. (#9097) 2025-08-18 23:48:28 +00:00
Juan Caldas
39aef4b430 Remove assert and precondition (#9117)
BUGS = [422704995]
2025-08-18 19:18:39 -04:00
Ben Doherty
cc382fd571 Metal: verify that the native window is a CAMetalLayer (#9104) 2025-08-18 15:18:53 -04:00
rafadevai
55c65fb8a2 VK: Fix memory corruption in VulkanExternalImageManager (#9116)
When calling setExternalSamplerVkSet the recycle
function lambda captured some variables allocated
on the stack, which are out of scope by the time
the function is called.

Change the capture to be done by value instead of
by ref to avoid this problem.
2025-08-18 10:57:46 -07:00
Sungun Park
bcea4ef75d Update MATERIAL_VERSION to 64 2025-08-18 09:45:08 -07:00
Sungun Park
0ef7507464 mat: Store matc parameters in material packages (#9070)
This commit enhances the material compilation process by embedding the
`matc` command-line parameters directly into the compiled material file.
This feature is valuable for debugging, as it allows developers to
inspect the exact compilation settings used for a given material.

A key consideration is the potential for personally identifiable
information (PII) in the command-line arguments (e.g., file paths). To
address this, a `toPIISafeString` method has been implemented to filter
out PII-sensitive options before they are stored in the material.

With this change, the matc command below
    /path/to/matc -a opengl --api vulkan -p desktop -g -o /path/to/my.filamat /path/to/my.mat

is stored to the package as below. (veryfied by running `matinfo my.filamat`)
    Compilation Parameters:         -a opengl --api vulkan -p desktop -g
2025-08-17 19:25:37 +00:00
Mathias Agopian
39268a6ad0 correctly handle UTF8 strings in materials 2025-08-16 22:50:57 -07:00
Konrad Piascik
01f7744025 Remove WebGPU warning since most features now work 2025-08-15 22:15:47 -04:00
Juan Caldas
6b2804985b Modify Load Image (#9068) 2025-08-15 15:29:21 +00:00
Juan Caldas
320ee183c6 webgpu: Gemini provided/inspired documentation
# Conflicts:
#	filament/backend/src/webgpu/WebGPUDriver.cpp
2025-08-15 10:10:04 -05:00
Juan Caldas
8145a5dd25 webgpu: Perform Blit when textures dont match (#9105)
BUGS = [435200998]
2025-08-15 14:41:13 +00:00
Powei Feng
ba0793ac18 Revert "[WIP] renderdiff: enable vulkan"
This reverts commit 2c154be0b3.
2025-08-14 16:19:46 -07:00
Powei Feng
2c154be0b3 [WIP] renderdiff: enable vulkan 2025-08-14 16:19:17 -07:00
rafadevai
37f4d0d1fa GL: Fix memory leak when importing AHardwareBuffer (#9094)
In EGL Android, when importing an AHardwareBuffer
from an ExternalImageHandle, the corresponding EGLImageKHR
is not destroyed when calling destroyExternalImageTexture,
causing a memory leak that depending on the scenario
will cause an OOM situation.
2025-08-14 13:15:47 -07:00
Andy Hovingh
d83a5903df wgpu: flush/submit commands, e.g. draws, prior to buffer or texture writes to ensure expected state/sequence 2025-08-14 12:24:41 -05:00
Filament Bot
12c3de228f [automated] Updating /docs due to commit bbf0754
Full commit hash is bbf0754183

DOCS_ALLOW_DIRECT_EDITS
2025-08-14 03:25:42 +00:00
Mathias Agopian
bbf0754183 add a material parameter to control shadow far attenuation
FIXES=[436680157]
2025-08-13 20:22:45 -07:00
Mathias Agopian
45f68909d7 Fix dynamic resolution with TRANSLUCENT views
A few bugs in that area were introduced by #8391. Upscaling is 
supposed to perform the final blending if needed, but it didn't.
Transparency/blending is only supported by the bilinear upscaler, which
is automatically selected in that case.

The upscaling pass itself may include a final `RCAS` pass for
sharpening, in that case, blending must be performed then. So we added
the logic for that.


Fixes #9061
2025-08-13 16:53:16 -07:00
Juan Caldas
7b8412ff01 Update spirv-cross to d8e3e2b141b8c8a167b2e3984736a6baacff316c 2025-08-13 18:08:41 -05:00
Juan Caldas
379a541797 remove dawn 3rd party common libs 2025-08-13 18:08:41 -05:00
Andy Hovingh
32772cde60 wgpu: fix system printing with Dawn/WebGPU version upgrade 2025-08-13 18:08:41 -05:00
Juan Caldas
f5f3324b18 Update webgpu to the latest Dawn 2025-08-13 18:08:41 -05:00
Juan Caldas
9be5dcf2da Upgrade abseil to cae4b6a3990e1431caa09c7b2ed1c76d0dfeab17 2025-08-13 18:08:41 -05:00
Juan Caldas
687577b0a7 Update webgpu with new Dawn changes 2025-08-13 18:08:41 -05:00
Juan Caldas
6acfdfcca3 Update Dawn to chromium/7353 2025-08-13 18:08:41 -05:00
Juan Caldas
69e7592885 Update Spirv-tools to 257a227fbadf8176ea386c7d8fb9b889cbf08640 2025-08-13 18:08:41 -05:00
Juan Caldas
c1430f88c1 Update spirv-headers to c8ad050fcb29e42a2f57d9f59e97488f465c436d 2025-08-13 18:08:41 -05:00
Juan Caldas
a75efea597 Update spirv-cross to b8fcf307f1f347089e3c46eb4451d27f32ebc8d3 2025-08-13 18:08:41 -05:00
Powei Feng
e3cf3d41e3 github: add action for installing vulkansdk (#9084) 2025-08-13 15:38:41 -07:00
Powei Feng
b2e4163ae1 renderdiff: enable multi-threading in rendering (#9057)
- Use threadpool to spawn gltf_viewer calls
- Make sure to use /tmp directories to avoid conflicts between
   different backend and models
2025-08-13 21:45:57 +00:00
Powei Feng
b1f6361d2a Update CMake min version to 3.22.1 (#9098)
The reason for this bump is:
 - third_party/spirv-tools
 - third_party/dawn
2025-08-13 20:07:37 +00:00
Mathias Agopian
d27bd7909d Unit test for LineDictionary and fix subtle bugs
- add conveniences function to make LineDictionary look like a vector
- a pattern must start on a word boundary but "_" wasn't treated as one
- getIndices() must return the empty vector when any of the substring
  is not found
2025-08-13 12:48:25 -07:00
Filament Bot
4c16702e41 [automated] Updating /docs due to commit a9f2253
Full commit hash is a9f2253d93

DOCS_ALLOW_DIRECT_EDITS
2025-08-13 15:52:49 +00:00
Benjamin Doherty
a9f2253d93 Release Filament 1.63.1 2025-08-13 11:47:16 -04:00
Filament Bot
cccf237d93 [automated] Updating /docs due to commit e0bd647
Full commit hash is e0bd647955

DOCS_ALLOW_DIRECT_EDITS
2025-08-12 22:10:00 +00:00
Powei Feng
e0bd647955 github: Update to clang-16 for CI builds (#9093)
Also update documentation on official recommendation of clang
version.
2025-08-12 22:06:30 +00:00
Juan Caldas
d2b9eb5336 Rename std var (#9088) 2025-08-12 21:27:54 +00:00
rafadevai
44e32a765f VK: Add missing ETC2_EAC_RGB8 to VkFormat conversion (#9090)
Map ETC2_EAC_RGBA8 and ETC2_EAC_SRGBA8 to
VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK and
VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK in getVkFormat.
2025-08-12 21:08:07 +00:00
Ben Doherty
c60860368d MetalBlitter: add support for blitting integer formats (#9045) 2025-08-12 16:16:47 -04:00
Mathias Agopian
f5c0fabb10 matc: improvements to LineDictionary compression (#9078)
We can significantly improve the effectiveness of the line dictionary
by splitting lines strategically. spirv optimization tends to create
new variable names (e.g. _1234) that are not always stable between
variants, hereby preventing lines from being duplicated. By simply
splitting lines around these patterns, we improve the effectiveness
of the compression.

The decompression is almost unchanged. To make the code easier, we 
now keep the '\n' at the end of lines in the dictionary. That's the
only change to the decompression side.

On certain materials like aiDefault.mat the compression ratio is
improved from 2.8x to 15x.


This also fixes a small but where the line dictionary relied on the
last line of the input to be a newline.
2025-08-12 12:58:35 -07:00
Matthew Hoffman
c0e7f0c664 Add a filament backend test template. (#9071)
Also fix a small bug in image comparison when there is no file yet.
2025-08-12 19:29:37 +00:00
Powei Feng
0b4ec1c340 github: make mesa setup an action (#9081) 2025-08-12 19:13:31 +00:00