Skip to content

WebGPURenderer: Increase performance #26673

@sunag

Description

@sunag

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 NodeBuilder based from Cache 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 the NodeBuilder, 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
  • Separate bindings groups for FRAME, RENDER, OBJECT groups. 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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions