I've rebased this series, it's in my arb_shader_subroutine branch. I've also implemented Ken's idea for a subroutine->int conversion and put the changes into each patch that it affects. Otherwise not much different from when I last posted. Dave.