vastly deduplicate shader creation code

slightly improve error handling

(0) -100 -30 -10 -2 +2 tip

mercurial