If a material is owned by a hidden view and used by another view, it doesn't render, because it is put to the dirty list of the hidden scene at QQuick3DObject::componentComplete() and therefore doesn't get put to the dirty list of the visible scene. Since the owning scene is hidden, updateSpatialNode is never called for the material.
Also, if the material is defined in a view that is initialized after the view that also uses the material, the material doesn't show up in the view that is initialized first.
Use attached example to repro both cases.
This bug makes shared materials not render in QDS 3D edit view if the owning view hasn't yet been shown (QDS-2789). Also, material preview of materials in yet to shown views doesn't work for the same reason.