LINUX.ORG.RU
ФорумTalks

Программист из Valve о проблемах при программировании на OpenGL

 , , , ,


1

3

Открыл Phoronix, чтобы посмотреть, а обо всём ли выложены переводы новостей на Опеннет. Нет, кое-что важное на Опеннете не появилось.

http://richg42.blogspot.co.uk/2014/05/things-that-drive-me-nuts-about-opengl....
http://richg42.blogspot.ru/2014/05/the-truth-on-opengl-driver-quality.html

Rich Geldreich's Blog

Game and open source developer, graphics programmer, lossless data and texture compression specialist.

Первая ссылка полна всяких технических премудростей - потоки какие-то, пайплайны. Вторую с Google Translate понял без труда, поэтому перескажу то, что понял. Там дана характеристика драйверам OpenGL для Linux (в первой статье рассказ про OpenGL в целом, а не конкретно в Linux). Он очень много писал про то что есть и чего нет в OpenGL от NVIDIA, если сказать просто - он жалеет что нельзя просто взять и писать код только для NVIDIA. NVIDIA сильна расширениями к OpenGL, через которые иногда получается сделать лучше, гораздо лучше, чем через официальный OpenGL. В конце сказал про утилиты для разработчиков - они разочаровывают. Про Catalyst запомнилось больше всего, так что ради него начну новый абзац.

Он говорит что одни расширения OpenGL в Catalyst существуют только на бумаге (что очень ярко демонстрирует описанное в первой статье несовершенство спецификации OpenGL), а другие соответствуют спецификациям гораздо точнее, чем на NVIDIA. И что из-за этого бывали случаи, когда программист пишет и отлаживает код на NVIDIA, а когда на Catalyst не работает он думает что это баг драйвера, а потом выясняется что вот как раз тут драйвер сработал как надо. Он считает что Catalyst силён в официальном OpenGL и слаб в расширениях к нему. Он пишет что редко при обновлении Catalyst не сломают что-нибудь, а когда прилетает hotfix он ломает что-нибудь ещё. А ещё в Catalyst слой на слое лежит быдлокод программистов, которые давно не работают в ATi/AMD. А ещё он предполагает что Catalyst для Linux определяет какая игра запущена, чтобы отключать конкретно для неё наиболее забагованные расширения OpenGL. А ещё он выполнял один и тот же код несколько раз и получал разные результаты: первый раз нормально, второй раз массово повреждались буферы. Но есть и плюсы: более точное следование спецификации OpenGL, названное выше, и много утилит разработки и отладки OpenGL, например если бы AMD не сделала togl, то портирование Source1 заняло бы гораздо больше времени.

Также он сказал про Intel, на них очень трудно по-настоящему разозлиться, так как видеочипы для них не основная разработка. Но в программной части они весьма хороши. Хотя драйвер не умеет OpenGL 4, то что он умеет он делает хорошо. Открытость разработки позволяет улучшить код и исправить баги. А если у тебя получается хорошо, Intel предложит тебе работу. В конце он сказал про утилиты разработки OpenGL от Intel - их нет. Хочешь отладить - welcome to 1999.

Ещё он сказал про второй драйвер Intel, вероятно всего для Windows. Сказал коротко - не связывайтесь, просто сделайте через togl и забудьте как страшный сон. Контраст обясняется тем что второй драйвер делает совсем другая команда разработчиков и на другой кодовой базе.

Открытые драйверы Radeon и реверс-инжиниренный nouveau он не пробовал. Про radeon он сказал что AMD относится к нему хорошо и оплачивает работу крошечной команде программистов, и надеется что когда-нибудь драйвер научится половине возможностей Catalyst. Про nouveau он сказал что в NVIDIA ненавистное отношение к нему, а ещё что NVIDIA никогда не откроет супер-секретные спецификации на GPU и - о ужас! - код драйверов.

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 7)

Global context state and the binding pattern sucks. The DSA (direct state access)-style API should be standard/required.

Дальше дядю можно не читать, он кретин.

x0r ★★★★★
()

По первой ссылке - стандартное нытье от непривычной платформы. По второй - стандартный бугурт от зоопарка.

Deleted
()
Ответ на: комментарий от x0r

Да ладно тебе злиться. Судя по фразе «Welcome to 1999», этот дядька писал код для первого Half Life, а не только портировал его на Linux. Или нет, стал бы он тогда возиться с togl, если там есть нормальный OpenGL?

ZenitharChampion ★★★★★
() автор топика

> много утилит разработки и отладки OpenGL, например если бы AMD не сделала togl, то портирование Source1 заняло бы гораздо больше времени.

Недавно сильно увлёкся Team Fortress 2 и задался вопросом: как при большом количестве технических недоделок Linux-версии её заставили не «падать»? Бета «падала», а релиз отшлифован. Теперь я знаю ответ.

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 1)

он жалеет что нельзя просто взять и писать код только для NVIDIA. NVIDIA сильна расширениями к OpenGL, через которые иногда получается сделать лучше, гораздо лучше, чем через официальный OpenGL.

Значит он дебил. Даже Кармак хоть и сильно хвалил Direct 3D, но продолжал оставаться сторонником OpenGL, ибо стандарт. Вендорлок не пройдёт.

Quasar ★★★★★
()

А ещё он предполагает что Catalyst для Linux определяет какая игра запущена, чтобы отключать конкретно для неё наиболее забагованные расширения OpenGL.

А я уверен, что такая практика применяется как в AMD Cataclysm, так и в uNvidia Blob Driver, причём изначально на венде, так как конкуренция в игровой производительности.

Про radeon он сказал что AMD относится к нему хорошо и оплачивает работу крошечной команде программистов, и надеется что когда-нибудь драйвер научится половине возможностей Catalyst.

Потому что хоть Catalyst и сумели причесать, но наследие кода, в котором трудно разобраться, с учётом прошедшего времени должно быть немаленьким.

Про nouveau он сказал что в NVIDIA ненавистное отношение к нему, а ещё что NVIDIA никогда не откроет супер-секретные спецификации на GPU и - о ужас! - код драйверов.

Я заметил, что невидия яростно фанатеет от проприетарщины и прочего банального рабства. У этих имбецилов наверняка в уставе написано быть жлобами и срать на всех даже в том случае, если это пойдёт в ущерб компании. Факты: невидия отказалась даже за кучу денег передавать спецификации видеокарт проектоу коммерческого X-сервера, невидия потребовала дофигище денег только за говносборочку блоба под MIPS, из-за чего лишилась контракта на кругленькую сумму (и не один раз). Но передача кода nouveau для поддержки Tegra K1 настораживает: то-ли подразделение SoC само действует и ему предоставлена определённая свобода, то-ли разум возобладал.

Quasar ★★★★★
()

А ещё в Catalyst слой на слое лежит быдлокод программистов, которые давно не работают в ATi/AMD.

Вот это новости! Кто бы мог подумать! :3

Deleted
()

В божественном OpenGL не может быть проблем, ибо на нём лежит благословение свободного сообщества и AMD купается в его благодати. Очевидно, что автор статьи - криворукий идиот, который ни черта не понимает в программировании, свободе и OpenGL.

Nebuchadnezzar ★★★★
()
Ответ на: комментарий от Quasar

Вот это у тебя бомбануло

Ясно что никакой передачи кода быть не может

stevejobs ★★★★☆
()
Ответ на: комментарий от Quasar

Но передача кода nouveau для поддержки Tegra K1 настораживает: то-ли подразделение SoC само действует и ему предоставлена определённая свобода, то-ли разум возобладал.

Потому что SoC - не приоритетная задача.

devl547 ★★★★★
()
Ответ на: комментарий от Hertz

Давно, родной, известно, что Nvidia - кактус. AMD, в общем то, тоже..

ага, вся видеосистема на линукс - один сплошной кактус.

fornlr ★★★★★
()
Последнее исправление: fornlr (всего исправлений: 1)
Ответ на: комментарий от fornlr

Уж про Макось я вообще молчу. Разве что скажу:
Помянем!

Hertz ★★★★★
()
Ответ на: комментарий от Hertz

Именно так и есть, отсюда грусть - 2014 год, а в линуксе до сих какая-то костыльная поддержка дискретных видюх

fang90 ★★★★★
()

Открытые драйверы Radeon он не пробовал

С фразы в заголовке надо было начать, чтобы дальше можно было не читать.

Camel ★★★★★
()
Ответ на: комментарий от fang90

Да знаешь, дружище, они в Линухе и не особо то нужны. Нет пока здесь таких приложений которым такая мощная видеоподсистема потребуется. Хватит вшитой в cpu.

Hertz ★★★★★
()
Ответ на: комментарий от Quasar

Значит он дебил. Даже Кармак хоть и сильно хвалил Direct 3D, но продолжал оставаться сторонником OpenGL, ибо стандарт.

А потом он забил на ogl и начал восхвалять d3d.

andreyu ★★★★★
()
Ответ на: комментарий от Hertz

Есть парочка. Игра Trine выдаёт хорошую графику и хочет GeForce 8600 и старше. Serious Sam 3 в режиме Ультра хочет GeForce GTX 4xx или Radeon HD 5xxx.

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 2)
Ответ на: комментарий от Quasar

Согласен. Если использовать такую вот логику, выходит, что флеш лучше html5, а осел лучше всех остальных браузеров, просто потому, что абсолютное доминирование флеша и осла приводит к унификации и отсутствию зоопарка.

gill_beits ★★★★
()

Он говорит что одни расширения OpenGL в Catalyst существуют только на бумаге (что очень ярко демонстрирует описанное в первой статье несовершенство спецификации OpenGL), а другие соответствуют спецификациям гораздо точнее, чем на NVIDIA.

он жалеет что нельзя просто взять и писать код только для NVIDIA.

Синдром Microsoft. Он жалеет, что нельзя просто взять и верстать только под IE6.

atrus ★★★★★
()

Rich Geldreich все правильно сказал. А если появится еще какая-нибудь новая третья компания со своими производительными игровыми видеокартами, эта ситуация только ухудшится.

bhfq ★★★★★
()
Ответ на: комментарий от reprimand

Спасибо, приятно. Зашёл на Phoronix, решил посмотреть есть ли что-нибудь новое, или я всё уже прочитал на http://opennet.ru/ Думал что найду что-нибудь малозначительное вроде релиза GNU Chess, а нашёл это.

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 2)

Что я сказать-то хотел ? Ах да, они там даже не заморачиваются со свободными драйверами, потому как нужна им нужна своя как можно более огороженная ОС с ВОТТАКЕННЫМ ДРМом, а вовсе не стремление дать годные игры или там производительность поднять.

pony
()

Он упорот.

Deleted
()
Ответ на: комментарий от x0r

почему кретин? что плохого в том, чтобы обращаться к объектам напрямую, не делая bind (где это возможно)?

сейчас это простое расширение, а он хочет чтобы это было в core profile.

вполне логично.

x4DA ★★★★★
()
Ответ на: комментарий от ZenitharChampion

дядька в блоге, по сути, говорит «ogl плох, потому, что он не d3d». имхо togl писался потому, что это менее ресурсоемко в разработке, чем дополнительный бекенд в source engine, который они все равно закапывают в пользу source engine 2. емнип также в source engine 2 будет нативный ogl рендерер, но это надо бы по источникам пошерстить.

x0r ★★★★★
()
Ответ на: комментарий от ranka-lee

«в современном железе» вообще стоит говорить об шейдерных языках, а никак не об API для графики. API может быть произвольным.

x0r ★★★★★
()
Ответ на: комментарий от x0r

Не может к сожалению. Иначе не было бы ни Mantle, ни DirectX12, ни консольных GAPI.

ranka-lee
()
17 февраля 2016 г.
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.