Khronos Group представила две новые версии трехмерного графического API, отметив таким образом 20-летие OpenGL. Мобильный вариант API OpenGL ES был обновлен до третьей версии, а настольный OpenGL — до 4.3.
OpenGL ES 2.0 был представлен в 2007 году. Его аппаратная поддержка была реализована в 2009-10 года. Новый OpenGL ES 3.0 получил поддержку многих функций шейдеров OpenGL третьей и четвертой версий, для программирования GPU теперь используется меньше кода, расширена совместимость API, присутствует полная поддержка 32-битных операций. Кроме того, новый мобильный API поддерживает более сложные текстуры, в том числе произвольных размеров и с параметрами, имеющими плавающую запятую.
Разработчики под OpenGL ES 3.0 получили возможность сжимать текстуры с помощью новых алгоритмов. OpenGL запрещает использовать несвободные алгоритмы, поэтому применение одного из наиболее эффективных — S3TC — невозможно. Это создает определенные трудности для разработчиков. Однако Khronos Group объявила, что работает над новым решением — ASTC, который не вошел в состав OpenGL ES 3.0, но будет добавлен в будущем. Один объект теперь может отрисовываться несколько раз с помощью всего одной команды.
Вместе с тем OpenGL ES 3.0 не поддерживает геометрические шейдеры, которые задействуются при тесселяции. Эта функция есть во всех настольных API для трехмерной графики. Аппаратная поддержка OpenGL ES 3.0 будет реализована в 2013 году.
OpenGL 4.3 содержит менее принципиальные обновления. Наиболее серьезным из низ является поддержка вычислительных шейдеров. Они позволяют графическому ПО включать вычисления на базе GPU в свои движки рендеринга. Ранее разработчикам приходилось представлять свои данные, как если бы они были пиксельными данными или геометрическими, которые выполнялись соответственно как пиксельные или вертексные и геометрические шейдеры. Такой прием работал, но усложнял разработку. Кроме того, он не позволял задействовать конвейер GPU для выполнения графических задач и вычислений общего назначения одновременно. Вычислительные шейдеры обрабатываются в главном буфере данных и отдельно от графического конвейера. Соответственно это упрощает разработку и позволяет выполнять различные задачи одновременно.
Кроме того, Khronos Group начала разработку библиотеки, которая сделает проще разработку программ, использующих OpenCL. Она будет называться CLU.