If you just want it to work, stick this script on your page
https://github.com/greggman/virtual-webgl
If you want to make your own solution there's one listed here about 1/2 way down the page
https://webglfundamentals.org/webgl/lessons/webgl-multiple-v...
As an aside, WebGPU doesn't have this issue or at least has it less. For one, WebGPU can use a single device to render to multiple canvases, something WebGL can't. Another is that WebGPU is mostly stateless making it easier for both the user and the browser.
Incredible, thank you very much. I've included the script for a quick fix, I'll see how to make to cook something myself at some point!
The code on the blog is pretty simple and naive (I'm not a webdev): https://github.com/ubitux/scripts/blob/main/share/blog/shade...
Any suggestion on how to address the issue is welcome.
Note: I don't have any Windows machine to test with