SDL+OpenGL vs. Windows
Написал программу на Си, которая использует OpenGL 3D через SDL. Не особо сложная программа (курсовик по просчёту и моделированию физ.явлений). На всякий случай решил портировать курсовик под Windows (мало ли что будет при сдаче). Портирование — отдельная песня с участием той самой матери, но результат поразил — программа работала ВООБЩЕ безо всяких тормозов, хотя на Linux ни разу не получалось догнать выставленный FPS. Вопрос: КАК может быть такое, что под загаженной Windows (не переставлял года эдак два) трёхмерное приложение OpenGL работает ощутимо быстрее, нежели под Linux.
P.S. Linux Mandriva 2010 Free, KDE, GCC, SDL свежие из апдейт репозиториев, драйвер nvidia проприетарный на nVidia GeForce 4 MX 440; Microsoft Windows XP SP2 и Microsoft Visual Studio 2005.
И ещё вопрос: есть ли средства, методы или хотя бы туториалы по проведению полного профилирования быстродействия домашнего компа? Под ту же Mandriva
>драйвер nvidia проприетарный на nVidia GeForce 4 MX 440;
Вот тут и вся проблема.
Попробуй nouveau, она в 2д получше чем блоб, но карточка древняя, может и не прокатить.
>И ещё вопрос: есть ли средства, методы или хотя бы туториалы по проведению полного профилирования быстродействия домашнего компа? Под ту же Mandriva
в гугле забанили? мандра или нет — не важно
можешь заглянуть профиль
вопрос по 3д вроде как
>трёхмерное приложение OpenGL работает ощутимо быстрее, нежели под Linux.
Пробовали выключать композит? Запускать в отдельных иксах? Запускать из под рута (хоть это и зло, но с нвидиевским проприетарным драйвером это иногда сильно увеличивает фпс)? Менять ключи gcc при сборке?
Nvidia под линукс тоже не вариант? А я уже собрался её покупать.
> под загаженной Windows (не переставлял года эдак два) трёхмерное приложение OpenGL работает ощутимо быстрее, нежели под Linux.
Озвучь проценты «ощутимости» и флаги компиляторов. Было бы так же не плохо, если бы ты попробовал отпрофилировать своё приложение.
Не смотря на возраст у тебя довольно «способная» видеокарта, если вспомнить всё то, что на ней игралось.
Если ты смог просадить быстродействие 3д — значит ты знатный быдлокодер =)
Думаю о программе нужно узнать больше. Компиз ни при чем обычно. Вы же не жонглируете окнами во время просмотри анимации.
Как рисуете? Какие текстуры, расширения? Какие опции по умолчанию у OpenGL (настройки в системе)? Если у вас не VBO, то постарайтесь на него перейти. Что в шейдерах?
вариант — и пожалуй единственный )))
>nVidia GeForce 4 MX 440
> можешь заглянуть профиль
Спасибо, посмотрю
> Nvidia под линукс тоже не вариант? А я уже собрался её покупать.
«Линукс не кривая, а повторяет изгибы рук хозяина» ©
> Озвучь проценты «ощутимости» и флаги компиляторов. Было бы так же не плохо, если бы ты попробовал отпрофилировать своё приложение.
Исходник переписал чтобы явно выдавался FPS. На Linux FPS в среднем равно 5, с ключом -O3 достигает до 8. На Windows похоже что все 25, но надо проверить. При перезагрузке Microsoft Chkdsk и Tuxera NTFS-3G не поделили NTFS-раздел и в итоге Microsoft Visual Studio накрылась медной ею, сейчас скачиваю давным давно удалённый образ 🙁 как измерю FPS под виндой, напишу
>Не смотря на возраст у тебя довольно «способная» видеокарта, если вспомнить всё то, что на ней игралось.
Да, под виндой она работала шустро под старыми играми.
>Если ты смог просадить быстродействие 3д — значит ты знатный быдлокодер =)
Дык в том-то и вопрос, что под виндой быстродействие ощутимо выше, нежели под линькой. Поэтому надеюсь, что исходник здесь ни при чём. К тому же быдлокодеры 3D пишут не на Си, а на Delphi, и не на OpenGL, а на DelphiX 🙂 (имхо)
>Как рисуете? Какие текстуры, расширения? Какие опции по умолчанию у OpenGL (настройки в системе)?
Исключительно полигоны и цвет, никаких текстур и расширений.
> Что в шейдерах?
Искренне улыбнуло. 🙂
В чём сложность DirectX, OpenGL, Vulkan, Linux, Windows с точки зрения программирования?
Создать топик навеяла местная тема про майков. Я сам не программист — вообще, ни капли, элементарно не знаю как компилить код.
Вопрос собсна в заголовке, перевожу с русского на русский — сложно ли программировать под вышеперечисленные API и системы?
Под что легче программировать? Под линух, или винду? Что сложнее? — OpenGL/Vulkan или DirectX?
Мне надо так сказать расставить все точки над i: Правда что под опенгл сложнее найти мануалы чем под директ?
На linux мало игр из-за того, что дистрибутивы не стандартизированы или сложно программировать? Или и то и другое?
Да начнётся срач великое противостояние!
Перемещено leave из linux-hardware
Что сложнее? — OpenGL/Vulkan или DirectX
Практически одно и тоже. Просто DirectX только под винду и коробоксы.
Правда что под опенгл сложнее найти мануалы чем под директ?
Не совсем так. Часто попадаются очень старые мануалы.
На linux мало игр из-за того, что дистрибутивы не стандартизированы или сложно программировать?
Он не так популярен.
Легче под Linux, ИМХО.
Из перечисленного тобой Vulkan требует больше подготовки, из-за принципа работы, чем OpenGL. Как раз таки насчёт манов, доков, туториалов выигрывает GL, ИМХО.
На linux мало игр из-за того, что дистрибутивы не стандартизированы или сложно программировать? Или и то и другое?
Уже ни то ни другое, раньше движки не поддерживали, а сейчас просто инертность, игроделы знают как настроить среду разработки и собрать проект под винду, и понятия не имеют как делать это в лине.
ДиректХ самый популярный, видимо на нем проще.
Кстати на Play Station 4 OpenGL или свой велосипед?
Сложность OpenGL/Linux в том, что все разное, драйвера часто из палок и чего-то сделаны и т.д. и т.п.
Тоже относится и к Vulkan, который у разработчиков имеет приоритет под венду и ведроид, а линукс так в роли остаточного принципа.
Да сейчас уже никто не кодит на чистом opengl и т.п., особенно, если речь про инди игры. Все берут готовые движки типа Source, и покупают лицензию, а там уже своё API, и кодить игру не так сложно, сколько муторно всё организовать и создать интересный контент: локации, текстуры, оружее и т.п, чтобы это всё окупилось. Ибо затраты на разработку в плане набора грамотных разработчиков — очень и очень внушительны.
Нет, и то, и другое. Единственное, про то, что ты сказал, справедливо только для инди игр, а иначе куча проблем.
Свой. GNM/GNMX + PSSL.
Просто у него ЦА гораздо больше. Но те же мегапопулярные Quake’s были OGL-only и под выньду. И ничего, играли и ещё просили.
А потом DirectX развился, а OpenGL скатился. И игры стали делать DirectX-only.
сложно ли программировать под вышеперечисленные API и системы?
Если учиться с нуля — абсолютно одинаково. Опиши конкретную задачу, тогда можно будет дать конкретные рекомендации.
Вброс какой то не слишком конкретный. Под директх и вулкан пока не пробовал, так что OpenGL/WebGL/OpenGL ES мне сравнивать не с чем.
Сложность OpenGL/Linux в том, что все разное, драйвера часто из палок и чего-то сделаны и т.д. и т.п.
У винды абсолютно те же самые сложности. Массовое тестирование драйверов под виндой конечно улучшает ситуацию, но наличие кучи разных производителей и кучи адаптаций винды со своими проблемами нивелирует это преимущество. В итоге всё то же самое.
что все разное, драйвера часто из палок и чего-то сделаны и т.д. и т.п.
Так на венде то же самое, амд и невидия тянут одеяло на себя, делая несовместимые расширения и технологии, вроде всяких гейворксов. Под линуксом как раз все лучше, просто юзербэйз меньше, потому многим разработчикам лень запариваться. Так-то под винду писать траха всяко больше, ибо там такие-то горы костылей и легаси, что никакому линуксу не снилось. Одна только фрагментация графических апи чего стоит: на венде графических апи от одних мс только минимум три: d3d10, d3d11, d3d12.
на венде графических апи от одних мс только минимум три: d3d10, d3d11, d3d12
Да. Но так никто же не заставляет писать сразу для трех. Большинство щас разработчиков пишут под 11-ый и буй они пока ложили на не распространенный 12-ый или на старенький 10-ый. Ну а тем у кого железо или софт не подходит, тем просто средний палец показывают. И правильно делают.
Так что на фрагментацию не тянет.
Ты уж определились.
С одной стороны могу согласиться — хоть с моим ноутом на венде прекрасно работает оптимус, но с недавних пор есть некоторые неудобства: в десятой венде интел забыл про графические дрова на мою карточку, как результат: всё тормозит на*, второе — это USB 3.0 (на официальном сайте ноута и интела так и не нашёл эти драйвера, хотя под 8-ку и 7-ку графические драйвера есть), из-за этого, когда мышь воткнута в юсб 3, в играх мышь периодически отваливается, третье — это броадкомовский Wi-Fi (вифи пользоваться можно, но нельзя создать локальную сеть на 8 и 10, на семёрке вай-фай нормально пашет).
В линухе-же: работает USB 3.0 из коробки, прекрасный по производительности драйвер на карту интел, относительно рабочий Broadcom (либо не умею пользоваться, но на мой взгляд сей адаптер ви-фи полное говно даже под вендой), и кстати говоря мне понравилось, что можно принудительно заставить работать карточку Nvidia с 15-20-летними играми, типа CS 1.6 (в венде с запуском старых игр на невидии приходилось делать танцы с бубнами, в драйвере возможность выбора видеокарты для старейших игр была заблокирована)
XP дропнули, осталось только две группы: 7+ и 10+.
Палочки в другую сторону. XP не дропнули, обновления выходят всё ещё.
Имеешь ввиду платную поддежку до 2020 года? Или мс про*зделись?
На ru-board есть описание ключа реестра, который переключаешь, и Windows Update выдаёт обновления для банкоматов. Я ими и пользуюсь. Ничего не глючит.
Но так никто же не заставляет писать сразу для трех
Ну так и под линуксом никто не заставляет тестировать под что-то отличное от шляпы/суси/убунты.
Большинство щас разработчиков пишут под 11-ый
А небольшое время назад нужно было писать под 9 и 10 разом. Сейчас уже нужно писать под 12 и вулкан, ибо нужна производительность.
Ну тебе с дивана виднее. Про страшную фрагментацию линукса расскажешь хоть чего?
OpenGL Linux VS OpenGL Windows
Так как Windows делает уклон на DirectX а OpenGL держит в фоне так на всяк случай!
mrbighokage
Правда ли что OpenGL в Linux работает лучше чем в Windows.
Так как Windows делает уклон на DirectX а OpenGL держит в фоне так на всяк случай!
Хочу сказать только то, что те драйвера, что винда ставит по умолчанию джэль поддерживают кастрированно, у меня был случай, когда начинал изучать 3Д графику.
Сидел под экспи, карточка — GForce 2 MX 400 64 Mb. Дрова — те что винда подсунула при установке, работали они хорошо, я и не жаловался, пока не полез в openGL. Тормозило всё страшно, до тех пор пока не поставил дрова detonator (были такие когда-то). Но под экспи они глючили, поэтому в период освоения джэль сидел на вин2к с «детонатором».
Майкрософт исподволь по иезуитски таким способом тихо гадит в сторону конкурирующих продуктов.
Так что мне думается, всё зависит от установленной железки и драйверов на целевой платформе.
maisvendoo
Хочу сказать только то, что те драйвера, что винда ставит по умолчанию джэль поддерживают кастрированно, у меня был случай, когда начинал изучать 3Д графику.
Сидел под экспи, карточка — GForce 2 MX 400 64 Mb. Дрова — те что винда подсунула при установке, работали они хорошо
я не программист и не мне в данной теме расписываться, но прочитав эту часть сообщения возникло офигевание с недоумением — «Он что, действительно работал с виндовыми драйверами на видео.
Так вот, не знаю как для программиста, но как пользователь, несколько раз «сталкивался» с виндовозными дровами к видюхам, и сказать что «работили они хорошо» — рука не поднимется,хотя и врать не буду — они работали — винда запускалась. И предположить, что для программирования они лучше, я тоже не могу. Как вообще можно было заикнуться о них?
maisvendoo
Хочу сказать только то, что те драйвера, что винда ставит по умолчанию джэль поддерживают кастрированно, у меня был случай, когда начинал изучать 3Д графику.
Сидел под экспи, карточка — GForce 2 MX 400 64 Mb. Дрова — те что винда подсунула при установке, работали они хорошо
я не программист и не мне в данной теме расписываться, но прочитав эту часть сообщения возникло офигевание с недоумением — «Он что, действительно работал с виндовыми драйверами на видео.
Так вот, не знаю как для программиста, но как пользователь, несколько раз «сталкивался» с виндовозными дровами к видюхам, и сказать что «работили они хорошо» — рука не поднимется,хотя и врать не буду — они работали — винда запускалась. И предположить, что для программирования они лучше, я тоже не могу. Как вообще можно было заикнуться о них?
Вы совсем меня не поняли.
Я говорил о том, что скорость работы любой библиотеки, реализующей 3D-графику, имея в виду разумеется аппаратный рендеринг, зависит от двух факторов
1. Поддержки аппаратной частью, то есть видеокартой, тех или иных инструкций графической библиотеки на аппаратном уровне.
2. Наличия интерфейса к данным аппаратным функциям в драйверах устройства под рассматриваемую платформу (линукс то или винда, не важно)
При поддержке драйверами устройства инструкций OpenGL он будет работать вне зависимости от платформы с одинаковой скоростью на данной железке.
А приведенный пример, это случай из моей практики, может быть весьма размазано и непонятно приведенный