More work on shader gen