I won’t have a good opportunity to test this in vdmx for awhile, but I did look at the shader code because I was curious if anything would pop out to me.
You might try changing your second definition (TAU) so that it doesn’t use “PI”; instead just replace that with the numeric value for PI that you have used for PI right above. It may be that in the app context which compiles the shader, that a definition cannot rely on previous definition.
The other thing that pops out to me is that some GPU have issues with using tangent in some contexts.
So, I would probably look at those two things in that order. May in fact be something different but I’d probably want to eliminate those as possibilities.
You may also try opening up Console app and seeing if any relevant info about shader execution gets printed when you attempt to run it.