back to inlined shaders, now working on Nexus thanks to array size substitution