Организация Khronos group представила обновлённую версию спецификации OpenGL 4.2и языка описания шейдеров GLSL 4.20 (OpenGL Shading Language). Новая версия спецификации обратно совместима с предыдущими версиями OpenGL и содержит улучшения, подготовленные на основе пожеланий разработчиков графических приложений и игр.
Компания NVIDIA выпустила тестовую версию проприетарных видеодрайверов с поддержкой OpenGL 4.2 сразу после публикации спецификации. Драйвер полностью поддерживает OpenGL 4.2 для карт NVIDIA GeForce 400/500 (Fermi) и доступен для платформ Windows, Solaris, Linux и FreeBSD. Компания AMD сообщила о намерении выпустить в ближайшие дни бета-версию драйверов AMD Catalyst с поддержкой OpenGL 4.2. Поддержка OpenGL 4.2 в свободной библиотеке Mesa 3D пока не планируется в обозримом будущем. В настоящее времяв Mesa 3D полностью обеспечена поддержка OpenGL 2.1 и частично OpenGL 3.0, довести до конца работу над поддержкой всех возможностей OpenGL 3.0 планируется к концу года.
Из добавленных в OpenGL 4.2 улучшений можно отметить:
- Возможность использования в шейдерах атомарных счетчиков и атомарных операций модификации (атомарный цикл чтение-изменение-запись) для одного уровня текстур. Эти возможности могут быть использованы одновременно, например, для использования счетчика для каждого пикселя в буфере, используемом для однопроходной отрисовки, независимо от порядка выбора пикселов.
- Возможность геометрических преобразований с использованием тесселяции на стороне GPU и отрисовки нескольких экземпляров полученных преобразований, что позволяет эффективно менять позицию и воспроизводить копии для сложных объектов;
- Поддержка изменения произвольной части сжатой текстуры, без повторной загрузки в GPU текстуры целиком, что позволяет добиться существенного роста производительности;
- Поддержка упаковки нескольких 8- и 16-разрядных значений в одно 32-разрядное значение для эффективной обработки шейдеров cо значительным сокращением используемого объема памяти и повышением пропускной способности. Например, подобная упаковка особенно полезна для организации передачи данных между различными стадиями выполнения шейдера;
- Новые OpenGL-расширения (уровень совместимости с оборудованием указан для карт NVIDIA):
- Возможна поддержка оборудованием, совместимым с OpenGL 2:
- ARB_compressed_texture_pixel_storage
- ARB_conservative_depth
- ARB_internalformat_query
- ARB_map_buffer_alignment
- ARB_shading_language_420pack
- ARB_texture_storage
- Возможна поддержка оборудованием, совместимым с OpenGL 3:
- ARB_base_instance
- ARB_shading_language_packing
- ARB_transform_feedback_instanced
- Возможна поддержка оборудованием, совместимым с OpenGL 4:
- ARB_shader_atomic_counters
- ARB_shader_image_load_store
- ARB_texture_compression_bptc
- Возможна поддержка оборудованием, совместимым с OpenGL 2: