这取决于您如何定义“冗余”。
如果您纯粹是在谈论核心/兼容性功能的删除,那只会发生一次,在从 OpenGL 3.0 到 3.1 的过渡中(在 GLSL 版本中,从 1.30 到 1.40)。
任何 OpenGL 实现都将支持从 1.40 开始的每个着色器版本。任何兼容性配置文件实现都将支持从 1.10 开始的每个着色语言版本。
如果通过“冗余”,您的意思是您不想学习新语法来访问不影响新硬件的语言更改(单独的程序、显式属性和统一规范等,所有这些都具有零硬件依赖性), 艰难的。根据您想要支持的最低硬件选择您的版本并坚持使用它。