-
-
Notifications
You must be signed in to change notification settings - Fork 36.1k
Open
Labels
Milestone
Description
Description
I started a work to increase the performance in WebGPURenderer and it will work for both Backends, it's about a better management of Bindings and Cache.
Solution
- Check Material Cache Key only after the version difference --
material.needsUpdate=true-- Reuse NodeBuilder #26729 - Reuse
NodeBuilderbased fromCache Key, currently the cache uses Material/Geometry as reference. For example, this means that two Materials of the same type with only a different color will be compiled twice instead of reuse theNodeBuilder, this sharing already happens for the GPU Program, but as the code is dynamically generated this optimization process should be API oriented for the Nodes. -- Reuse NodeBuilder #26729- Create a
NodeBuilderStateto reduce memory usage when reuseNodeBuilder-- Reuse NodeBuilder #26729
- Create a
- Separate bindings groups for
FRAME,RENDER,OBJECTgroups. Node System already offers this support, we would have to take it to the level of optimization for the Bindings. - Node System allows Auto-Instancing with a certain flexibility, this has already been adopted in other engines like Unreal and we may be implementing it soon as well. -- Renderer: Auto-Instancing [WIP] #26640
Mugen87, mrdoob, WestLangley, danrossi, gkjohnson and 14 more