Change shader program only when required part 1/2