I can't post links yet, but if you google "Arm Mali Offline Compiler User Guide" [ModEdit Link: https://developer.arm.com/documenta...ler/Performance-analysis/IDVS-shader-variants ] and read the IDVS Shader Variants chapter you can see that they split their vertex shaders exactly as @Lurkmass said. I imagine if a vertex shader has side effects like memory writes, then it'd be up to the specific graphics API and/or shading language to define which of the two shaders those side effects go into.Where do you have this information from? This seems at odds to Apple's and Imagination documentation. Not to mention that if parts of the vertex shader were executed multiple times, it would completely break some supported behavior (such as writing to memory from vertex shaders etc.).