gfx::Shader, various improvements