splitting shader into two different subprograms... not so good, but better results than before