Правда о качестве драйверов OpenGL
- среда, 14 мая 2014 г. в 03:10:47
Разработчик игр и проектов open source Рич Гелдрейх (Rich Geldreich) опубликовал разгромную статью в своём блоге. Не стесняясь в выражениях, Рич описывает удручающее состояние драйверов OpenGL от различных производителей. Хотя автор не упоминает компаний, но их легко угадать за анонимными наименованиями. Предположительно: вендор А — Nvidia, вендор B — AMD, вендор C — Intel.
Драйверы от вендора А использует большинство разработчиков, в них реализована поддержка самых интересных расширений OpenGL, благодаря которым свободный стандарт может конкурировать с D3D12.
Тем не менее, даже эти драйверы отличаются нестабильностью работы, особенно если экспериментировать с одним из множества доступных расширений.
Вендор ни перед чем не останавливается, чтобы добиться максимальной производительности своих драйверов в конкретных играх, даже если приходится отступить от спецификаций. Многие разработчики драйверов трудоустроены в крупных игровых компаниях. Это значит, что обычные разработчики со стороны никогда не смогут получить такую же производительность для своих собственных игр, поскольку не имеют возможности оптимизации на низком уровне. Неудивительно, что вендора А в шутку называют «графической мафией», у них длинные руки и большие связи.
С вендором B ситуация гораздо хуже, потому что у них драйверы ужасного качества, глючные, с нестабильной производительностью. Но поскольку эта фирма выпускает отличные графические карты, их нельзя полностью игнорировать. Разработчики вендора B пытаются следовать спецификациям более тщательно, чем вендор А. Проблема в том, что эта компания страдает от нехватки средств, так что малочисленный отдел разработчиков просто не справляется с нагрузкой. В то же время сообщество GamDev продолжает делать игры, ориентируясь на возможности драйверов от вендора А, поэтому более тщательное соблюдение стандартов не приносит выгоды вендору B.
Вендор B не способен даже выпустить новую версию драйверов, не сломав что-нибудь. После апдейта они высылают новые апдейты и патчи, чтобы исправить ошибки из предыдущих патчей. В исходном коде видно нагромождение слоёв над слоями, внесённых группами разработчиков, которые больше не работают в компании.
Что касается вендора С, то на него невозможно сердиться всерьёз, пишет Рич Гелдрейх. Эта компания не слишком заинтересована драйверов для GPU, потому что это непрофильный для неё бизнес. С другой стороны, их аппаратное обеспечение максимально открыто, у компании очень много денег и они могут позволить поддерживать даже несколько групп разработчиков драйверов. Впрочем, их основной драйвер довольно сильно отстаёт в поддержке самых современных спецификаций OpenGL, но они должны догнать мейнстрим через 1-2 года. Второй драйвер основан на абсолютно иной кодовой базе, разрабатывается другой группой разработчиков, и гораздо хуже по качеству.
Рич Гелдрейх делает вывод, что использовать OpenGL для разработчиков игр сложно без «благословения» от производителей оборудования, поэтому практически невозможно выпустить крупный игровой проект под OpenGL.