Thanks for the notes and help! I find myself continually forgetting that Vuo pushes updates instead of pulling them. Ok, a few things to cover now...
Glad I'm not the only one seeing performance drops when switching to fullscreen. I'd been using the native MacOS mode, totally missing that cmd-F uses the old style fullscreen (so much more useful!). Either way, I'm still seeing the same performance drop in both modes. I wouldn't blame it on old hardware if nearly-fullscreen windows are fine, right? There's something weird going on with how the full screen view is being rendered? I have a somewhat newer and much more powerful machine, and I'm seeing the same issues.
The Change Wrap Mode nodes shouldn't be modifying the image pixels, they should be modifying the metadata regarding how the images are rendered in a GLSL context, defining how the textures behave at UV borders (<0 and >1). Additionally, they're set up to process only once when the image is loaded (Allow Once node feeds into the image loading), so even if they were processing pixels, it'd only happen once. In Quartz Composer the wrap mode of any image is automatically set to repeat and I didn't need to customise it (I can't remember if that's an option in the QC mipmapping node? My memory is failing and I'm not sure you can change it to anything but repeat). Unity also defaults to repeat, as does Shadertoy. Vuo defaults to Clamp Edge, so the setting has to be customised to work as expected (the animation I'm working on right now animates the textures in an infinite UV scroll, thus the need for repeat).
I've implemented the Select Output node, even for the math operation just in case (seems silly, but hey, gotta try!). Checking the Show Events feature confirms that Resize Image is not being processed when LowRes is toggled off, and the resolutions being fed through the graph all check out as expected. Yay, fixed! But...
I've gone through performance testing after fixing my mistake on the resize image setup, and strangely...no change. I really thought that'd help. But I guess it makes some sense: I was having major performance issues before I created my testing setup, which is when I introduced the scaling selection error. I'm not seeing any improvements to the ratings I posted before. I'm still getting the same poor performance (low frame rate, dropped frames) when running in fullscreen or as a screensaver.
I've tested Allow Periodic Events versus Fire Periodically, and there doesn't seem to be any difference. They both result in significantly worse performance than simply using Time.
I ended up using the mouse position as a hacky way to get some sort of data input, which allows me to correctly adjust the UV map scale within the GLSL depending on the high/low resolution toggle (something that's specific to this animation). So that's why I have a +1/-1 Select Input node.
That great to hear it's on the list! I saw your creating custom themes for UI widgets thread and that looks like it will be great, so I'm looking forward to seeing how you implement it. Honestly Vuo 2.0 had so many amazing new additions that I have lots to play with in the meantime.