WebGPU Miscellaneous Optimizations
Here are listed some miscellaneous tips to optimize WebGPU for speed.
Avoid creating too many resources each frame
If you call
engine.enableEffect(), make sure to pass a
DrawWrapper to it and not an
Effect. Else some WebGPU resources will be created each frame.
To check you are not creating unnecessary resources, when your application is running and is "stabilized" (meaning you are not creating new objects in the last frame) check
engine.countersLastFrame and make sure
numEnableEffects is 0.
numEnableEffects is > 0 when you call
engine.enableEffect() with an
Effect and not a
numEnableDrawWrapper should be non 0.
Optimize post processes
If setting manually the
textureSampler property in a
onApply observer, set
externalTextureSamplerBinding = true for the post process to optimize performances.
If possible, don't set the
reusable parameter of the constructor of
true. Else there will be a continuous swapping between two textures used as the render target of the post process, which will be especially bad when in non compatibility mode as the cached render bundle will be recreated each frame.