...
You can check the performance of shaders with Tracy especially if you turn vsync off and do a before/after picture of FPS with the same scene being rendered.
Mobile / Different
...
Versions
As noted Mobile GLSL is sometimes very different from desktop GLSL, and even in the base engine shaders it is gated with a #if MOBILE gate. It is recommended to test both on mobile and desktop shaders and gate any problematic desktop things so mobile do not activate them (else mobile likely get either pink everywhere - ie shaders didn't compile - or or some error in the code mobile doesn't support).
Different game versions also have very different shaders. To work around this and support multiple versions of the game you must supply valid versions for every overriden or new shader file, so duplicating the include files (eg having "inc_standard.shd" kept as the base game one, but "inc_standard35.shd" be one for version 8193.35 might be necessary). Alternatively keep only one version of the game possible to use to join and kick those not on it (eg; GetPlayerBuildVersionMinor in the join script).
For singleplayer modules it is impossible to stop someone loading it so recommending the minimum version or warning them with GetPlayerBuildVersionMinor usage in a script may be recommended.
Include Files
Compared to usual GLSL shaders you can use #include to have include files. It can help organise your code and any similar code can be put into include files instead of the base shader file. The main thing is when #include is found it will copy the entire file contents to where it is defined, it won't act like a proper include file and - say on a compilation error - show the file name and line in that file, instead it basically generates several thousand lines of file then compiles / runs it.
...