I just update from v6 to v8 and I notice my effect is disposed by the pr.
Now even if I set forceDisposeEffect to false when disposing the pbr material, the effect will always be disposed because [mesh’s material change] → [mesh call resetDrawCache] →[effect disposed by drawCache’s dispose]. So the param forceDisposeEffect is not in use actually.
notBoundToMesh seems to work but it is not used in pbrMaterial nor standardMaterial.
As a description, I dispose the material and create it again just as a quick way to dispose the textures.
Playground: Babylon.js Playground , you’ll see a obvious flicker when changing the material in v8 because of the rebuild of the effect, and it works fine in v6.