At the moment, if you place several shader widgets on the same screen they share the “storage” argument passed into the Primitive prepare() and render() functions.
Since Storage keys are based on type and same types are used that creates a problem - which can be easily solved, but I was wondering if this is the intended behaviour.
One benefit of the current implementation is that some objects can be shared across several shader widgets and that can improve performance.