I have a viewport texture that keeps moving completely off screen

Godot Version



I am using a subviewport to display a map. I am using another subviewport for a fog layer that reveals as the player moves. I pull the image from the fog viewport texture, use a shader to manipulate the new reveal, and then save the updated subviewport texture to a persistent texture created in code.

vec4 persist = texture(persistent_tex, UV); // SCREEN_UV texture follows player can’t reveal
if (dis <= reveal_radius) {
main.a = 0.0;
} else {
main = persist; // Comment this out and texture follows player
COLOR = main;

For some reason(My best guess is some sort of viewport setting) the persist texture makes the fog texture fly off the screen, removing the fog around the stationary player as it goes. The persist texture is in the same script and on the same node as the fog which is attached to a subviewport. The viewports are siblings in the same container. The map viewport has a camera2D and the fog viewport did, but not anymore as it made no difference(that I could see).
Thank you for any suggestions.