Исследование реального состояния поддержки OpenGL 4.x в драйверах NVIDIA и AMD

У обеих компаний не всё хорошо в части полного соответствия стандарту.

Стандарт OpenGL 4.1 был принят Khronos Group еще летом, и ведущие разработчики графических решений для ПК уже поддерживают его в драйверах (260.99 у NVIDIA и Catalyst 10.10c у AMD). Программист графики Christophe Riccio решил проверить, насколько реализация OpenGL 4.x от обеих компаний соответствует спецификации Khronos, для чего прогнал собственный набор тестов, написанный в строгом соответствии со стандартом в системах с видеокартами GeForce GTX 470 и Radeon HD 5850 и различными версиями драйверов для Windows 7. Итог по выполнению тридцати различных тестовых задач получился не очень утешительный:

 NVIDIA 260.93AMD 10.10c
Тестов не запустилось, нет поддержки функций02
Тестов не выполнилось, критические ошибки реализации функций28
Тестов выполнилось, ошибки при выполнении51
С полными результатами можно ознакомиться на специальной страничке, но состояние поддержки современных версий OpenGL даже в драйверах вендоров для разработчиков оставляет желать лучшего. AMD находится на очень ранних этапах реализации поддержки OpenGL 4.1, до сих пор не поддерживает ряд функций 4.0 и даже в тесте OpenGL 3.3 обнаружилась проблема. NVIDIA, реализовав поддержку практически всех функций в целом, всё еще не выловила множество багов в реализации конкретных функций.

OpenGL logo

Несомненно, что подобное состояние поддержки в драйверах является одной из причин, почему разработчики OpenGL-приложений в массе не стремятся вылезать за пределы OpenGL 2.1, особенно с учётом ограниченности поддержки новых версий OpenGL в Linux и MacOS. Нелишне также будет упомянуть, что третий гигант графического рынка, компания Intel, поддержку OpenGL 4.x в своих решениях еще даже не планирует — Sandy Bridge будет иметь поддержку лишь Direct3D 10.1, что соответствует максимум OpenGL 3.3 по функциональности.