Commit Graph

587 Commits

Author SHA1 Message Date
Sungun Park
0bcb45613e Release Filament 1.58.0 2025-03-10 22:11:59 +00:00
Powei Feng
bd3a0d5377 Release Filament 1.57.2 2025-03-05 14:37:22 -08:00
Benjamin Doherty
d35d466367 Release Filament 1.57.1 2025-02-27 10:08:55 -08:00
Konstantin Sakhin
62b8a60527 Implement a query to check if combination of texture format, pixel data format and type is valid. (#8452)
This will help Filament users to perform this check beforehand.
2025-02-18 16:05:03 -08:00
Konstantin Sakhin
2b54e7dd97 Implement query to check if texture format is mipmappable (#8442)
* Implement query to check if texture format is mipmappable

This will allow Filament's users to perform check beforehand.

* add java bindings

* add javascript binding
2025-02-13 15:30:09 -08:00
Sungun Park
83d71d0f57 Release Filament 1.57.0 2025-02-10 23:33:15 +00:00
Benjamin Doherty
d8af04f08f Add missing setDithering to jsbindings 2025-02-10 09:37:13 -08:00
Mathias Agopian
69822a91cf the shadow passes get their own face culling mode
the new MaterialInstance::setCullingMode(color, shadow) API allows to
set a separate face culling mode for the color pass and the shadow 
passes.

FIXES[391679058]
2025-02-07 11:36:48 -08:00
Powei Feng
538aa39127 Release Filament 1.56.8 2025-02-06 11:13:56 -08:00
Benjamin Doherty
f1c1aa155b Release Filament 1.56.7 2025-01-29 16:41:11 -08:00
Mathias Agopian
1747ae8f5a validate MaterialInstance references when destroyed (#8366)
* validate MaterialInstance references when destroyed

With this change we now enforce two things:
- All MaterialInstance of a Material must be destroyed when
  destroying said Material. This has always been a documented 
  requirement of the public API, but wasn't enforced (only
  a warning was printed).
  This new assertion is unconditional.

- A MaterialInstance, when destroyed is no longer in use by any
  Renderable.

So before destroying a MaterialInstance, the user of API needs to 
ensure that either all Renderable using that MaterialInstance in one
of their Render Primitives are  destroyed, or, that these Renderable
using that MaterialInstance are reset to another one or to null.

There is a new RenderableManager::clearMaterialInstanceAt() that can
be used to clear a MaterialInstance on a Render Primitive.
  
Additionally, a Render Primitive with a null MaterialInstance is now
silently skipped during rendering, instead of a null-dereference.

Finally, that second assert is protected by a new feature flag: 
"features.engine.debug.assert_material_instance_in_use". This flag is
enabled on DEBUG builds and disabled on RELEASE builds by default.
The flag can be changed at any time using `Engine::setFeatureFlag()`.

BUGS=[333907416]

* Update filament/src/components/RenderableManager.cpp

Co-authored-by: Powei Feng <powei@google.com>

---------

Co-authored-by: Powei Feng <powei@google.com>
2025-01-17 14:15:15 -08:00
Benjamin Doherty
e1024123c1 Release Filament 1.56.6 2025-01-16 12:59:55 -08:00
Ben Doherty
ac0aea98c9 Fix Web build, update Emscripten SDK to 3.1.60 (#8350) 2025-01-15 11:42:39 -08:00
Sungun Park
29d2d819e3 Release Filament 1.56.5 2025-01-08 21:59:14 +00:00
Mathias Agopian
ef6ef784c9 external textures are no longer restricted to SAMPLER_EXTERNAL
OpenGLES allows this when GL_OES_EGL_image is present.
2025-01-07 09:50:57 -08:00
Powei Feng
45b0164c84 Release Filament 1.56.4 2024-12-17 16:39:29 -08:00
Sungun Park
94c1657ca0 Release Filament 1.56.3 2024-12-11 02:17:39 +00:00
Powei Feng
2381551ab9 Release Filament 1.56.2 2024-11-25 15:45:52 -08:00
Sungun Park
ffd32e9309 Release Filament 1.56.1 2024-11-19 17:20:09 +00:00
Benjamin Doherty
483ef2f125 Release Filament 1.56.0 2024-11-06 10:48:24 -08:00
Benjamin Doherty
7f92dfd06c Release Filament 1.55.1 2024-11-04 09:34:01 -08:00
show50726
17e4d2b92e Add public API in View for transparent picking (#8206) 2024-10-22 10:46:24 -07:00
Powei Feng
4ee33cd591 Release Filament 1.55.0 2024-10-14 06:07:34 +00:00
Powei Feng
b1b2d7072d Revert "Release Filament 1.55.0" (#8191)
This reverts commit 4f5369cefa.

Reason: Initial attempt to release 1.55.0 failed due to a few
   small bugs.
2024-10-10 12:16:00 -07:00
Powei Feng
4f5369cefa Release Filament 1.55.0 2024-10-01 17:09:03 +00:00
Benjamin Doherty
3f37efe4c9 Release Filament 1.54.5 2024-09-24 12:34:25 -07:00
Powei Feng
dd7106bfcf Release Filament 1.54.4 2024-09-17 15:24:57 -07:00
Powei Feng
72ba2eee6d Release Filament 1.54.3 2024-09-10 12:26:44 -07:00
Sungun Park
1b4afbab51 Release Filament 1.54.2 2024-09-04 18:55:52 +00:00
Sungun Park
0e0f3a5518 Release Filament 1.54.1 2024-08-27 23:30:26 +00:00
Powei Feng
28ef805e5d Release Filament 1.54.0 2024-08-20 08:55:10 -07:00
Powei Feng
cdd0147a17 Release Filament 1.53.5 2024-08-13 15:59:08 -07:00
Benjamin Doherty
56f714633d Release Filament 1.53.4 2024-08-08 12:12:27 -07:00
Sungun Park
4125802644 Release Filament 1.53.3 2024-07-31 16:22:54 +00:00
Mathias Agopian
e7c96cd124 better handle skipped frames and cache eviction
Add Renderer::skipFrame() which should be called when intentionally 
skipping frames, for instance because the screen content hasn't changed,
allowing Filament to performance needed periodic tasks, such as
cache garbage collection and callback dispatches.

We also improve the ResourceAllocator cache eviction policy:
- the cache is aggressively purged when skipping a frame
- we aggressively evict entries older than 3 frames

The default Config is now set to a more agressive setting.
2024-07-25 17:23:04 -07:00
Mathias Agopian
730bc99025 Move the ResourceAllocator from Engine to Renderer
The ResourceAllocator used to be global and owned by the Engine, this
was causing some issues when using several Renderers because each
one could cause the eviction of cache data for another.

We now have a ResourceAllocator per Renderer, which makes more sense
because most resources are allocated by the FrameGraph.

We also introduce a ResourceAllocatorDisposer class, which is used
for checking in and out a texture from the cache, and destroy the
texture when it's checked-out. That objet is still global.
2024-07-25 17:23:04 -07:00
Sungun Park
9057c47a56 Release Filament 1.53.2 2024-07-23 01:23:57 +00:00
Benjamin Doherty
659b8b6e03 Release Filament 1.53.1 2024-06-25 11:46:46 -07:00
Mathias Agopian
d15c53e530 an easier way to pipe vsync time to beginFrame
BUGS=[343764098]
2024-06-21 09:41:19 -07:00
Benjamin Doherty
e95edef9d7 Release Filament 1.53.0 2024-06-17 17:26:47 -07:00
Benjamin Doherty
df34f92f8f Release Filament 1.52.3 2024-06-11 16:42:10 -07:00
Mathias Agopian
b5d7de06bc Engine::unprotected() drops the command queue back to unprotected mode
FIXES=[344021154]
2024-06-04 11:46:00 -07:00
Sungun Park
3c46788e06 Release Filament 1.52.2 2024-06-03 18:10:27 +00:00
Powei Feng
783c35e85b Release Filament 1.52.1 2024-05-29 16:19:30 -07:00
Benjamin Doherty
c7202c575a Release Filament 1.52.0 2024-05-21 12:47:58 -07:00
Sungun Park
6fc16bdcda Release Filament 1.51.8 2024-05-13 20:53:36 +00:00
Powei Feng
17f71c9b81 Release Filament 1.51.7 2024-05-07 14:35:42 -07:00
Benjamin Doherty
56fa078376 Release Filament 1.51.6 2024-04-29 16:49:28 -07:00
Sungun Park
315726678e Release Filament 1.51.5 2024-04-22 20:47:55 +00:00
Mathias Agopian
3bffd90357 don't crash if we don't have a Camera set on View (#7766)
* don't crash if we don't have a Camera set on View

- also add a method to query if a camera was set

* Update android/filament-android/src/main/java/com/google/android/filament/View.java

Co-authored-by: Powei Feng <powei@google.com>

---------

Co-authored-by: Powei Feng <powei@google.com>
2024-04-16 21:09:21 +00:00