What sort of thing are these large cached Canvases used for, specifically? Maybe there's a different way to accomplish your goal which uses less VRAM.
I have a (potentially) unlimited grid that contains objects which are affecting each other with shadows and lights and some other static
shader effects. Player can scroll visible window around the world. The basic implementation is to calculate every effect in realtime just for visible window.
Then a thought came to me: why do I need to calculate some channels of lighting every frame while they are static? So I divided entire world with squares NxN pixels with some overlap, calculate lighting only for visible squares and store it in canvases pool. So, if player will navigate to area A then to area B then again to area A => lighting will be calculated once for area A and once for area B. Because the world is potentially unlimited, I can not cover it by the squares entirely, so here is the restriction to number of stored canvases. Like a cache pattern. The question is how many canvases can I alow to be in the pool?
Maybe this is a bad idea initially, because it entails a bunch of problems and has questionable profit. Just trying