Commit Graph

7447 Commits

Author SHA1 Message Date
Powei Feng
46ccb6bab1 Feature flag guard GEN_MIPMAPPABLE precondition (#9134) 2025-08-21 12:00:45 -07:00
Mathias Agopian
70680721c4 correctly handle UTF8 strings in materials 2025-08-21 10:16:02 -07:00
Mathias Agopian
aeb292f5e1 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-21 10:15:39 -07:00
Sungun Park
0865e3d042 Update MATERIAL_VERSION to 64 2025-08-18 09:46:08 -07:00
Benjamin Doherty
43432ddc39 Bump version to 1.64.0 2025-08-13 11:47:24 -04: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
Ben Doherty
781083960c matp: Fix crash when reflecting parameters (#9089) 2025-08-12 13:50:17 -04:00
Filament Bot
b0b40375e1 [automated] Updating /docs due to commit af0f395
Full commit hash is af0f395884

DOCS_ALLOW_DIRECT_EDITS
2025-08-12 06:01:40 +00:00
Powei Feng
af0f395884 Filament targets c++20 by default (#9080) 2025-08-12 05:59:21 +00:00
Powei Feng
f91ba0867e filamat: remove webgpu workaround for opt passes 2025-08-11 15:47:59 -07:00
Mathias Agopian
f85955f77b canonicalize id pass must always run last 2025-08-11 15:45:23 -07:00
Mathias Agopian
a6d5231beb script for updating spirv-cross 2025-08-11 15:45:05 -07:00
Mathias Agopian
23d2027605 script for updating spirv-headers 2025-08-11 15:45:05 -07:00
Mathias Agopian
58d29cee86 script for updating spirv-tools 2025-08-11 15:45:05 -07:00
Mathias Agopian
d721b3f13d update spirv-cross to d8e3e2b 2025-08-11 15:44:45 -07:00
Mathias Agopian
538f497d4d update glslang to version 15.4.0
add a nicer script to update
2025-08-11 15:44:28 -07:00
Ben Doherty
e8e99a0de6 Fix: webgpu error regarding mismatched pipeline (#9056) 2025-08-11 17:30:07 -04:00
Ben Doherty
6630aa5f36 matp: Remove accidental switch fallthrough (#9082) 2025-08-11 17:26:46 -04:00
Powei Feng
bc83ffdcd1 vk: make default render target independent of call order (#9065) 2025-08-11 20:27:53 +00:00
Powei Feng
c21f211a13 Update java for Texture::Usage (#9055)
Also update samples and utils to use proper usage when
generating mipmaps.
2025-08-11 19:47:26 +00:00
Patrik Huber
58d4671c24 Fixes to frame_generator sample (#9050)
* [Fix] frame_generator sample: open ifstream with ios::binary
* [Fix] frame_generator sample: allocate storage for g_materialBuffer
   reserve() merely reserves memory, but does not actually change the size of the vector.
* [Fix] frame_generator sample: destroy materials/renderables during cleanup

Otherwise the sample crashes with a Filament error saying that the material is still associated with a renderable.
2025-08-11 19:21:05 +00:00
Mathias Agopian
93caca7245 fig materialparser assert when shader is not present 2025-08-11 11:11:42 -07:00
Mathias Agopian
bf77c023b9 correctly set STENCIL Usage on color pass texture
the framegraph didn't set the Usage::Stencil on textures it created
for the color pass if stencil was requested. On the GL backend it
didn't matter because that bit is unused.
2025-08-11 11:11:22 -07:00
yein
95128d5f55 Follow up of material parser PR (#9029)
- Fix CMakeLists to correctly include src files in matp test
- Replace std::string to std::string_view
- Also update the test_includer.cpp
2025-08-11 18:05:10 +00:00
Powei Feng
6d17d858de vk: Fix bad layouts/formats when doing generateMipmaps (#9058)
- After genMipmap, transition to shader read layout
- Ensure that the staging image format is TRANSFER_SRC.
2025-08-11 17:49:15 +00:00
Sungun Park
05003ea358 mat: Add CRC32 validation for material packages (#9053)
This commit introduces a CRC32 checksum to material packages to ensure
data integrity.

When a material is loaded, this checksum is verified. If the check
fails, an error is logged, and the material fails to load. For older
material packages without a CRC32 checksum, a warning is logged and
proceed.

BUGS=[373396840]
2025-08-09 00:03:56 +00:00
Matthew Hoffman
98847d6509 Simplify backend tests' EXPECT_IMAGE invocation. (#9052) 2025-08-08 21:55:37 +00:00
Mathias Agopian
d3828cdd1c fix the 3-parameters fresnel calculation
it would automatically degrade to the 2-parameters version in 
LOW_QUALITY mode, but some other code relied on the proper calculation,
in particular when specularFactor was used.


FIXES=[436866605]
2025-08-08 14:18:15 -07:00
Andy Hovingh
4beda6feee wgpu: fix Android build error 2025-08-08 15:32:18 -05:00
Juan Caldas
7cacef9509 Update GLSL for mip test (#9064) 2025-08-08 15:09:27 -04:00
Juan Caldas
5cd7de7318 Change fogReserved 2025-08-08 10:44:54 -07:00
Sungun Park
9c87e72a81 Correct warning message (#9059)
The subsequent call

`glGetShaderiv(shader, GL_COMPILE_STATUS, &status);`

will ensure the compilation is complete.
2025-08-07 22:35:26 -07:00
Filament Bot
652d973ad8 [automated] Updating /docs due to commit 8466177
Full commit hash is 84661777e7

DOCS_ALLOW_DIRECT_EDITS
2025-08-07 22:52:23 +00:00
Ben Doherty
84661777e7 Materials: add useDefaultDepthVariant flag (#9020) 2025-08-07 22:49:05 +00:00
Powei Feng
c8ab2f335e Fix places where generateMipmaps is called without proper usage (#9054) 2025-08-07 22:24:40 +00:00
Mathias Agopian
db14efc151 compress the DFG LUT with zstd
- use resgen to package the DFG LUT into filament, instead of using
  a large include of a C array.

- add a zstd compression step, which reduces the size from ~100KB to
  ~75KB.

The overhead of zstd is about 90KB uncompressed, however it will pay
for itself tenfold when we use it to compress material packages.
2025-08-07 14:58:18 -07:00
Mathias Agopian
d1ca059dad resgen: add compression options
- with `-z` each resource is compressed individually
- with `-Z` the whole package is compressed
2025-08-07 14:58:18 -07:00
Mathias Agopian
c71a22914f small improvements to cmgen
- when generating the DFG LUT as a text file, make sure to faithfully
  reproduce the command used in the comments

- add a "bin" format that will output a headerless raw binary of the
  LUT data.
2025-08-07 14:58:18 -07:00
Mathias Agopian
71d0723026 add zstd to the build 2025-08-07 14:58:18 -07:00
Powei Feng
5c371089f2 Add GEN_MIPMAPPABLE TextureUsage (#9042)
This will allow for more backend-specific usage mapping then before - where BLIT_SRC and BLIT_DST are assumed for textures whose mipmaps will be generated.

These mappings have been introduced in metal, vulkan, webgpu.
2025-08-07 18:14:49 +00:00
Konrad Piascik
2c7064e93d webgpu: skip PushConstants backend test for webgpu
We can revert this once dawn supports push constants
2025-08-07 11:07:02 -04:00
Filament Bot
3961989aca [automated] Updating /docs due to commit b92af35
Full commit hash is b92af357f7

DOCS_ALLOW_DIRECT_EDITS
2025-08-07 08:36:16 +00:00