Some more thinking about shader program structure