don't load shader sources multiple times