Проблемы работы программ в среде mono в linux

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

v567
Сообщения: 92

Проблемы работы программ в среде mono в linux

Сообщение v567 »

Здравствуйте.
Под .net 2.0 была разработана мощная программа, использующая как сложные вычисления, так и активно использующая графику (3х мерная не использовалась). В основном применялись карты местности и строились графики с использованием библиотеки zedgraph (т.е. основная программа размером около 1.3 Мб использовала dll). Первоначально комплекс был разработан на Delphi 6.0, затем переведен под .Net. С появлением Mono попробовал поработать с программой в Linux. Выбрал OpenSUSE 11.1, поскольку другие дистрибутивы с Mono работали хуже (медленнее, либо вообще его не имели или Mono работал криво). Результат работы с программой был удручающим. Если в WinXP (с использованием Mono 2.4 под Win) программа отрабатывала за 34 сек, то в Suse (с использованием Mono 2.4 под Linux) программа работала уже 214 сек, т.е. выполнялась в 6 раз медленнее!!! Для справки: с использованием .Net Framework 2.0 под Win программа выполнялась 17 секунд! На мой взгляд в столь печальном состоянии дел виновата графическая подсистема Linux (на сколько мне известно графический сервис X-ов не встроен в ядро как в XP, а работает как обычное приложение). В настоящее время жду появления Ubuntu 9.04, где должен вроде как присутствовать Mono 2.0. Хотя сомневаюсь, что скорость работы в ubunte так уж сильно будет отличаться от результатов в Suse. И теперь вопросы:
1. Что по Вашему мнению может обьяснить столь медленную скорость работы данного приложения в linux в сравнении с win XP?
2. Что Вы посоветуете сделать, чтобы с этой программой можно было поработать в любой из версий linux?
Спасибо сказали:
kamre
Сообщения: 243
ОС: Win7/Ubuntu 11.10

Re: Проблемы работы программ в среде mono в linux

Сообщение kamre »

v567 писал(а):
11.04.2009 04:17
1. Что по Вашему мнению может обьяснить столь медленную скорость работы данного приложения в linux в сравнении с win XP?

Да известно что: корявая архитектура X-ов (когда все быстрее софтварно рендерить на клиенте и передавать одну картинку на сервер вместо использования команд серверу для отрисовки) и полный фэил с видеодрайверами по сравнению с WinXP.

v567 писал(а):
11.04.2009 04:17
2. Что Вы посоветуете сделать, чтобы с этой программой можно было поработать в любой из версий linux?

В линуксе из графики работает быстро только OpenGL на NVIDIA картах (и то не без косяков). 2D тормозит и на NVIDIA.

Я сравнивал Java2D и Qt4: http://trac-hg.assembla.com/jgears В принципе Java2D с OpenGL pipeline не сильно от WinXP отстает. На счет mono не знаю. Скорее всего там для векторной 2D графики должен использоваться Cairo. Тогда можно попытаться включить отрисовку в Cairo через OpenGL.
Спасибо сказали:
Olegator
Сообщения: 2493
ОС: SuseLinux 11.2 KDE 4.3

Re: Проблемы работы программ в среде mono в linux

Сообщение Olegator »

v567 писал(а):
11.04.2009 04:17
1. Что по Вашему мнению может обьяснить столь медленную скорость работы данного приложения в linux в сравнении с win XP?

мне кажется потому что mono, проект ещё сырой и естественно оптимизацией кода пока никто не занимается.
v567 писал(а):
11.04.2009 04:17
2. Что Вы посоветуете сделать, чтобы с этой программой можно было поработать в любой из версий linux?

переписать её с использованием нормальной библиотеки
kamre писал(а):
11.04.2009 08:01
Да известно что: корявая архитектура X-ов (когда все быстрее софтварно рендерить на клиенте и передавать одну картинку на сервер вместо использования команд серверу для отрисовки) и полный фэил с видеодрайверами по сравнению с WinXP.

с каких пор клиент-серверная архетектура считается корявой? я думаю с Вашим заявлением многие поспорят.
kamre писал(а):
11.04.2009 08:01
В линуксе из графики работает быстро только OpenGL на NVIDIA картах (и то не без косяков).

бред, а что я такой ущёрбный тут с ati сижу и в 3d игры играю?
И с чего Вы вообще взяли что виноваты x? Если учесть что используется mono на котором ещё не написали ни один толковый проект, а то что написано оказалось ужасно требовательным к системным ресурсам.
Спасибо сказали:
Olegator
Сообщения: 2493
ОС: SuseLinux 11.2 KDE 4.3

Re: Проблемы работы программ в среде mono в linux

Сообщение Olegator »

v567 Вы смотрели что жрёт ресурсы во время работы программы?
Спасибо сказали:
kamre
Сообщения: 243
ОС: Win7/Ubuntu 11.10

Re: Проблемы работы программ в среде mono в linux

Сообщение kamre »

Olegator писал(а):
11.04.2009 10:03
kamre писал(а):
11.04.2009 08:01
Да известно что: корявая архитектура X-ов (когда все быстрее софтварно рендерить на клиенте и передавать одну картинку на сервер вместо использования команд серверу для отрисовки) и полный фэил с видеодрайверами по сравнению с WinXP.

с каких пор клиент-серверная архетектура считается корявой? я думаю с Вашим заявлением многие поспорят.


В чем смысл этой клиент-серверной архитектуры в такой реализации как сейчас, если быстрее софтварно рендерить на клиенте и передавать одну картинку на сервер вместо использования команд серверу для отрисовки? Видеокарта и ее ресуры находятся на сервере. Рендерить с помощью ресурсов видео карты должно быть быстрее.

Пример отсюда и еще то, что с новым Qt 4.5 и raster graphics engine графика в линуксе работает быстрее. Это показывает то, что или в Trolltech/Nokia не умеют программировать под X-сервер или то, что Xorg с своей клиент-серверной архитектурой и имеющимися драйверами тормозит.
Спасибо сказали:
Olegator
Сообщения: 2493
ОС: SuseLinux 11.2 KDE 4.3

Re: Проблемы работы программ в среде mono в linux

Сообщение Olegator »

kamre писал(а):
11.04.2009 10:38
В чем смысл этой клиент-серверной архитектуры в такой реализации как сейчас, если быстрее софтварно рендерить на клиенте и передавать одну картинку на сервер вместо использования команд серверу для отрисовки?

если смотреть в лоб, то объём передаваемых данных. Вы так уверенно заявляете что проблема в X, ничего не зная о потребляемых ресурсах программы. Вообще предлагаю не раздувать флейм на эту тему.
kamre писал(а):
11.04.2009 10:38
Это показывает то, что или в Trolltech/Nokia не умеют программировать под X-сервер

если оптимизация называется "не умеют программировать", то да. И на каком основании Вы заявляете что Trolltech/Nokia не умеют программировать под X-сервер? Вы их код смотрели до и после qt4.5?
Спасибо сказали:
kamre
Сообщения: 243
ОС: Win7/Ubuntu 11.10

Re: Проблемы работы программ в среде mono в linux

Сообщение kamre »

Olegator писал(а):
11.04.2009 10:59
И на каком основании Вы заявляете что Trolltech/Nokia не умеют программировать под X-сервер? Вы их код смотрели до и после qt4.5?


Вы как-то не правильно меня поняли. Уж они то умеют программировать под X-сервер, и даже они не могут обойти проблемы и сделать эффективную реализацию, потому-то быстрее получается передавать картинку, чем рисовать через протокол X-сервера.
Спасибо сказали:
Olegator
Сообщения: 2493
ОС: SuseLinux 11.2 KDE 4.3

Re: Проблемы работы программ в среде mono в linux

Сообщение Olegator »

kamre писал(а):
11.04.2009 11:23
Вы как-то не правильно меня поняли. Уж они то умеют программировать под X-сервер, и даже они не могут обойти проблемы и сделать эффективную реализацию, потому-то быстрее получается передавать картинку, чем рисовать через протокол X-сервера.

ладно что-то мы и вправду о разном разговаривем, давайте сойдёмся на том, что винить иксы рано, так как мы не знаем что жрёт ресурсы?
Спасибо сказали:
kamre
Сообщения: 243
ОС: Win7/Ubuntu 11.10

Re: Проблемы работы программ в среде mono в linux

Сообщение kamre »

Olegator писал(а):
11.04.2009 11:47
ладно что-то мы и вправду о разном разговаривем, давайте сойдёмся на том, что винить иксы рано, так как мы не знаем что жрёт ресурсы?


В этом конктреном случае с Mono и вправду рановато еще :)
Наверное стоило бы запустить приложение с профайлером и посмотреть чтоже жрет ресурсы.
Спасибо сказали:
v567
Сообщения: 92

Re: Проблемы работы программ в среде mono в linux

Сообщение v567 »

К вопросу об использовании ресурсов.
Если верить системному монитору гнома, то работает 34 процесса (включая сам монитор и программу). Ненулевая загрузка процессора у процессов mono и gnome-system-monitor. Программа своего отдельного процесса не имеет. Загрузки процессора указанными процессами меняются со временем в сторону уменьшения, однако скорость работы программы не увеличивается. Mono грузит процессор от 45 до 15%, gnome-system-monitor от 10 до 3%. Все другие процессы 0%. Однако на своих графиках монитор гнома сразу же после запуска программы непрерывно в процессе её работы показывает, что процессор загружен на 100%, загрузка файла подкачки 40% и не меняется со временем, сеть не используется - нулевая процентная загрузка загрузка.
Для эксперимента создал простенькую WinForm-программку c одной формой с надписью по всей форме, запустил под mono и стал мышкой не отпуская таскать по экрану. Монитор сразу стал показывать 100% загрузку процессора. Получилось, что 2D графика жестоко съедает процессорное время.
Заторможенность в работе с графикой чувствуется не только при использовании mono. Визуально любое приложение работает медленнее, чем в XP. Просто сравнить не с чем было пока вот с программой не столкнулся. До того как стал с этой программой в linux возиться был уверен на 100%, что linux с графикой работает шустрее, чем перегруженный всяким мусором windows. Теперь вот пребываю в недоумении.
Покопался в инете. Как оказалось проблема отнюдь не нова. Народ уже давно жалуется на производительность 2D графической подсистемы linux. 3D вроде шустрее работает, т.к. openGL используется. Вот ссылка на жалобы:
http://www.linux.org.ru/view-message.jsp?msgid=1844062

Кстати mono 2.4 уже вполне устойчивый продукт. По крайней мере программа ни разу не вылетела, хотя чего в ней только нет (исходники к слову содержат около 42 тыс непустых строк). С помощью mono удалось выловить около 10 ошибок синхронизации при работе с потоками, которые в .NET Framework не вылавливались.

Может есть какой-нибудь нормальный кроссплатформенный тест типа geekbench только для графики, чтоб и в linux и в XP шел? Тогда возможно вопросы отпали бы сами собой.
Спасибо сказали:
Ism
Сообщения: 1261
Статус: Никто, по сути быдло

Re: Проблемы работы программ в среде mono в linux

Сообщение Ism »

glxgears плавно крутятся ?. Возможно изза настроек видеокарты и есть тормоза.
Спасибо сказали:
v567
Сообщения: 92

Re: Проблемы работы программ в среде mono в linux

Сообщение v567 »

glxgears в стандартном окне показывает около 2100 fps, если развернуть на весь экран - 300 fps. Однако насколько я понимаю эта программа предназначена прежде всего для тестирования openGL в 3D, а речь как раз таки ведется о 2D графической подсистеме linux.
У меня дома устаревший msi m510a (1.7 pentim-m, 2 ГГц озу, ati radion 9700 64 Мб - дрова ati не встали). Однако большую часть времени с программой я провел на рабочем месте на более мощных машинах (2х, 4х ядерных с видеокартами 256 Мб, 521 Мб например nvidia geforce 7600 на которых к тому же ставил проприетарные дрова) - результат практически не менялся.
Об этом как раз и говорится в материале по ссылке указанной мною ранее. Там сказано что все-равно какое железо и какие настройки linux. Результат одинаков - производительность 2d графической подсистемы linux в несколько раз ниже чем в windows.
Поэтому правильнее было бы сравнить производительность 2d граф. подсистем linux'а и windows.
Спасибо сказали:
Warlornhor
Сообщения: 428
ОС: openSUSE 12.3

Re: Проблемы работы программ в среде mono в linux

Сообщение Warlornhor »

Наверное скажу сейчас глупость и не в тему, но меня тоже немного достают тормоза хотя бы при перемещении окон по столу, но если включить Compiz, то вроде как все тормоза пропадают, т.к. начинает прорисовывать все это видео карта, может и в данном случае поможет?.
Спасибо сказали:
kamre
Сообщения: 243
ОС: Win7/Ubuntu 11.10

Re: Проблемы работы программ в среде mono в linux

Сообщение kamre »

Warlornhor писал(а):
14.04.2009 11:16
Наверное скажу сейчас глупость и не в тему, но меня тоже немного достают тормоза хотя бы при перемещении окон по столу, но если включить Compiz, то вроде как все тормоза пропадают, т.к. начинает прорисовывать все это видео карта, может и в данном случае поможет?.


Ага, окна передвигаются нормально, а вот ресайз и скорость отрисовки внутри окон сразу начинают томозить еще больше. Вы хотя бы в браузере прокрутку страницы попоробуйте с компиз и без него.

glxgears вообще не в тему при разговоре о 2D. Можно использовать gtkperf, только вот есть ли он собранный под винду, чтобы замерять в разных ос на одном компе?
Спасибо сказали:
v567
Сообщения: 92

Re: Проблемы работы программ в среде mono в linux

Сообщение v567 »

compiz 0.7.8 предустановлен в suse 11.1. Только насколько я понял композиты работают через проприетарные драйвера. Этому счастью в linux могут радоваться обладатели карточек nvidia. Для ati нужно сделать 33 танца с бубном чтоб радоваться композитам.
Как бы там ни было включил композит на нвидии. Теперь окна анимированные, но появилось другое горе. Уже отлаженная под моно программа стала работать как попало - окошки некоторых диалоговых форм не вылезают. Поэтому беру тайм-аут дабы понять что к чему и подстроить программу под работу в композитах.
Результат напишу позже.
Спасибо сказали:
Warlornhor
Сообщения: 428
ОС: openSUSE 12.3

Re: Проблемы работы программ в среде mono в linux

Сообщение Warlornhor »

Возможно она и не заработает, потому что, например, некоторые Java(GUI AWT) приложения не работают по нормальному, т.е. постоянно есть какие либо глюки с интерфейсом.
Спасибо сказали:
v567
Сообщения: 92

Re: Проблемы работы программ в среде mono в linux

Сообщение v567 »

Программу поправил, чтоб с compiz'ом в nVidia заработала (битва с драйверами для домашней ATI продолжается). Только бестолку - быстродействие программы под mono 2.4 после включения компиза не улучшилось. Конечно окошки в гноме перемещаются быстрее. Программка с надписью на форме (о которой сказано ранее) при перемещении процессор на 100% уже не грузит, как это имело место ранее. В целом работа с окошками больше радует глаз, чем без компиза. Однако прорисовка внутри окон по-прежнему замедлена.
Программа раскрывается на всё окно без заголовка (MDI-контейнер), поэтому ее по экрану не потаскаешь. Дочерние MDI-окна (карты местности, графики в 2-х проекциях, расчетные формы и т.д.) можно из баловства таскать по основной форме однако скорость отрисовки их содержимого медленная.

kamre писал(а):
14.04.2009 11:33
glxgears вообще не в тему при разговоре о 2D. Можно использовать gtkperf, только вот есть ли он собранный под винду, чтобы замерять в разных ос на одном компе?


gtkperf -a -c 500 дает время выполнения около 76 сек. Его собирать надо, так что под Win'XP его точно нет. Пока я не встречал кроссплатформенного теста 2-х мерной графики для Linux и Win'XP.
Спасибо сказали:
v567
Сообщения: 92

Re: Проблемы работы программ в среде mono в linux

Сообщение v567 »

Установил драйвера 9.3 на домашнюю ATI, включил компиз. Результат не изменился. Скорости работы программы под mono 2.4 в opensuse 11.1 и xp составляют 214 сек и 34 сек соответственно, т.е. скорость работы программы в xp prof в 6 раз выше, чем opensuse 11.1 В связи с этим вопросы не изменились: 1). Почему так происходит? 2). Что нужно сделать, чтоб с программой можно было работать в любом линуксе (неважно каком лишь бы работал mono не ниже 2 версии)? 3). Есть ли какой-нибудь кроссплатформенный тест для тестирования и сравнения 2D графических подсистем linux и windows?
Спасибо сказали:
Аватара пользователя
Kido
Сообщения: 949
Статус: Космический Засланец
ОС: ArchLinux x86_64 Current

Re: Проблемы работы программ в среде mono в linux

Сообщение Kido »

v567 писал(а):
16.04.2009 17:14
Установил драйвера 9.3 на домашнюю ATI, включил компиз. Результат не изменился. Скорости работы программы под mono 2.4 в opensuse 11.1 и xp составляют 214 сек и 34 сек соответственно, т.е. скорость работы программы в xp prof в 6 раз выше, чем opensuse 11.1 В связи с этим вопросы не изменились: 1). Почему так происходит? 2). Что нужно сделать, чтоб с программой можно было работать в любом линуксе (неважно каком лишь бы работал mono не ниже 2 версии)? 3). Есть ли какой-нибудь кроссплатформенный тест для тестирования и сравнения 2D графических подсистем linux и windows?

Тут несколькими постави выше уже сказали, что проблема не в графике, а в самом моно, который несколько тормознутый. И предложили решение, хоть и довольно кардинальное - переписать программу под нормальную кросплатформенную библиотеку. К примеру - тот же Qt.
Спасибо сказали:
v567
Сообщения: 92

Re: Проблемы работы программ в среде mono в linux

Сообщение v567 »

Kido писал(а):
16.04.2009 18:58
Тут несколькими постави выше уже сказали, что проблема не в графике, а в самом моно, который несколько тормознутый. И предложили решение, хоть и довольно кардинальное - переписать программу под нормальную кросплатформенную библиотеку. К примеру - тот же Qt.


Почитайте материал по ссылке, которую указана мною ранее:
http://www.linux.org.ru/view-message.jsp?msgid=1844062

Там говорится следующее:
Производительность 2D граф. системы в Linux и Windows
Добрый день! Столкнулся с проблемой - Qt приложения в Linux работают в 3-4 раза медленнее чем в Windows. Причем не важно какая видеокарта. какой проц... пробовал на встроенных intel'овских видеокартах и на GeForce FX5700, FX7600GT. Результат примерно одинаков.
Как пример: в поставке Qt идет программа qtdemo, там в ней есть подразлел Demonstration->Affine Transformations - там пингвин крутиться и картинка с морем - в винде тормозов вообще нет, а в Linux (Ubuntu 6.06/6.10, Kubuntu 6.10, Slackware 11, Zenwalk 4.2.1) кадров 5 в секунду :( Вообщем кадр за кадром...
Впрочем смотреть можно на любой пример связанный с 2D графикой... Результат везде одинков. Хотя 3D работает наверное побыстрее чем в винде (сужу сугубо по Quake и Unreal :)
Вот как съедается проц когда запущена демка с крутящейся фотографией океана (qtdemo->demonstration->Affine Transformations)

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4657 puh 16 0 32228 19m 8404 R 55.4 1.9 2:17.50 affine
3949 root 25 0 39100 26m 8296 R 39.6 2.6 2:25.70 Xorg

Подскажите, может есть какие "секретные" настройки позволяющие вывести производительность 2D в Linux на уровень Windows?


Поэтому очевидно дело не в тормознутости проекта mono. Команда там собралась неплохая. Проблема в тормознутости самого linuxa, как не прискорбно это констатировать. Если быть точнее, его графической подсистемы, отвечающей за отображение 2-х мерной графики.
Спасибо сказали:
Olegator
Сообщения: 2493
ОС: SuseLinux 11.2 KDE 4.3

Re: Проблемы работы программ в среде mono в linux

Сообщение Olegator »

v567 писал(а):
16.04.2009 21:54
Почитайте материал по ссылке, которую указана мною ранее:
http://www.linux.org.ru/view-message.jsp?msgid=1844062

зачем такие старые ссылки, действуете по методу "кто ищет тот всегда найдёт", думаете за 2 года никаких оптимизаций не проводилось. В qt 4.5 была нехило переработана графическая подсистемма, что повысило производительность в несколько раз.

Performance Improvements

The introduction of the QtBenchLib performance benchmarking library enables performance benchmarking and regression testing. Core parts of Qt itself have undergone focused re-engineering for improved graphics performance, including paint engine and text rendering improvements, Graphics View and style sheet performance improvements.

The X11 paint engine now uses XSHM (the X shared memory extension), resulting in reduced overhead for painting operations.

A new OpenGL ES 2.0-based paint engine complements the existing OpenGL paint engine, but with a focus on embedded devices.

Qt now features a pluggable graphics system, making it possible for users and developers to select raster, OpenGL or native graphics systems to take into account the specific needs of their applications and get the best performance out of them.

Да проблема с 2d есть, но она не столь страшная как Вы описываете. Беру значит я окно от qt приложения(kopete) и таскаю с максимально возможной скоростью по экрану процессор загружается не более чем на 30%. Да вообще у Вас есть конкретная программа, у которой надо проверить производительность, а Вы окошки таскаете. И учтите что у дров nvidia была как-то нехилая проблема с 2d, возможно она до сих пор осталась
Спасибо сказали:
Аватара пользователя
TuxWare
Сообщения: 637
ОС: Windows 7

Re: Проблемы работы программ в среде mono в linux

Сообщение TuxWare »

v567 писал(а):
16.04.2009 21:54
Поэтому очевидно дело не в тормознутости проекта mono. Команда там собралась неплохая. Проблема в тормознутости самого linuxa, как не прискорбно это констатировать. Если быть точнее, его графической подсистемы, отвечающей за отображение 2-х мерной графики.


Не ребята тут тормоза в другом месте. Вы задействуйте видеокарту сначала, а потом меряйте чего то. Вы запускаете приложение оно вообще использует opengl или рисует через X-ы. И позвольте поинтерисоваться, что Вам сообщила такая интересная вещь как NVIDIA PerfKit. Вы даже сказать не можете, не задействуете ли Вы случайно софтварную эммуляцию вместо аппаратной обработки.
Спасибо сказали:
v567
Сообщения: 92

Re: Проблемы работы программ в среде mono в linux

Сообщение v567 »

Olegator писал(а):
16.04.2009 23:46
зачем такие старые ссылки, действуете по методу "кто ищет тот всегда найдёт", думаете за 2 года никаких оптимизаций не проводилось. В qt 4.5 была нехило переработана графическая подсистемма, что повысило производительность в несколько раз.


Действую по принципу не наступать на чужие грабли. :rolleyes:

Olegator писал(а):
16.04.2009 23:46
Да проблема с 2d есть, но она не столь страшная как Вы описываете. Беру значит я окно от qt приложения(kopete) и таскаю с максимально возможной скоростью по экрану процессор загружается не более чем на 30%. Да вообще у Вас есть конкретная программа, у которой надо проверить производительность, а Вы окошки таскаете. И учтите что у дров nvidia была как-то нехилая проблема с 2d, возможно она до сих пор осталась


Программа разработана в VS 2008 на C#. Содержит около 40 тыс строк. Переводилась с Delphi 6.0
около года. Каким же образом Вы предлагаете её переписать, чтоб использовалась Qt?
Qt - кроссплатформенная библиотека C++ классов для создания QUI. Есть конечно "привязки" и для других языков. Mono - платформа .NET в linux. В настоящее время проект Mono использует набор
элементов интерфейса Gtk+ для X Window System, но мог бы использовать и Qt. Выбор на Gtk+ пал
поскольку Мигель (идеолог проекта mono) по совместительству участник проекта gnome. Поскольку KDE использует Qt, а Gnome использует Gtk+ (то бишь GTK + GDK). Отвечает за вывод на экран GDK, которая начиная с версии 2.8 почти полностью заменена на систему отрисовки векторной графики Cairo. Cairo же является библиотекой, предназначенной для рендеринга векторной графики с API, который не зависит от оборудования.
К чему это все? А к тому, что мы с Вами, Olegator, таскаем окошки как бы в совершенно разных средах рабочего окружения, которые в свою очередь используют совершенно разные библиотеки оконных элементов системы X Window. Но даже достигнутый Вами результат "не более 30%" при таскании окна (примитивной по своей сути графической операции) говорит о печальном положении дел в 2D у linux. Вдохновленный Вашими успехами попробовал вчера поработать с основной программой в KDE. Так как программа используют GTK+ результат разумеется не изменился. Никакой разницы с Gnome.
Судить о Qt не могу, поскольку напрямую не использовал данную библиотеку (впрочем как не использовал напрямую и библиотеку Gtk+). Однако сам факт того, что исходный код необходимо компилить под каждую ось отдельно заставляет думать о слегка натянутом определении кроссплатформенности. Кроссплатформенность на уровне выполнения и кроссплатформенность на уровне компиляции как бы не однои тоже. Вот когда Qt Software со своим продуктом Qt позволит делать то, что делает .Net или Java, тогда и можно будет всерьез говорить об её супер-пупер кроссплатформенности.
Насчет nVidia и Ati у меня отличное от Вас мнение. Почему то драйвера на нвидиу у меня вставали с первого раза, а вот на ати смог поставить драйвера только версии 9.3 (предыдущие версии не вставали).
Вся эта вышеуказанная лирика честно говоря меня мало тревожит. Мне бы хотелось решить основную задачу, чтоб уже готовая и отлаженная программа заработала в linux на том же уровне, то и в XP Какая версия linux и какое окружением рабочего стола при этом используется мне без разницы. Для этого как раз и хотелось бы получить ответы на свои вопросы. :rolleyes:

TuxWare писал(а):
17.04.2009 16:30
Не ребята тут тормоза в другом месте. Вы задействуйте видеокарту сначала, а потом меряйте чего то. Вы запускаете приложение оно вообще использует opengl или рисует через X-ы. И позвольте поинтерисоваться, что Вам сообщила такая интересная вещь как NVIDIA PerfKit. Вы даже сказать не можете, не задействуете ли Вы случайно софтварную эммуляцию вместо аппаратной обработки.


Сейчас сижу на домашней ATI. Того что ниже достаточно? :rolleyes:

Код: Выделить всё

glxinfo
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: ATI
server glx version string: 1.2
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
client glx vendor string: ATI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_get_proc_address, GLX_ARB_multisample,
    GLX_EXT_import_context, GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_MESA_allocate_memory, GLX_MESA_swap_control,
    GLX_MESA_swap_frame_usage, GLX_NV_swap_group, GLX_OML_swap_method,
    GLX_OML_sync_control, GLX_SGI_make_current_read, GLX_SGI_swap_control,
    GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
    GLX_SGIX_pbuffer, GLX_SGIX_swap_barrier, GLX_SGIX_swap_group,
    GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
GLX extensions:
    GLX_ARB_create_context, GLX_ARB_get_proc_address, GLX_ARB_multisample,
    GLX_EXT_import_context, GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_MESA_swap_control, GLX_NV_swap_group, GLX_OML_swap_method,
    GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
    GLX_SGIX_swap_barrier, GLX_SGIX_swap_group, GLX_SGIX_visual_select_group
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: ATI MOBILITY RADEON 9600/9700 Series
OpenGL version string: 2.1.8543 Release
OpenGL extensions:
    GL_AMD_performance_monitor, GL_ARB_depth_texture, GL_ARB_draw_buffers,
    GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,
    GL_ARB_fragment_shader, GL_ARB_framebuffer_object,
    GL_ARB_half_float_pixel, GL_ARB_half_float_vertex,
    GL_ARB_map_buffer_range, GL_ARB_multisample, GL_ARB_multitexture,
    GL_ARB_occlusion_query, GL_ARB_pixel_buffer_object,
    GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shader_objects,
    GL_ARB_shading_language_100, GL_ARB_shadow, GL_ARB_shadow_ambient,
    GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
    GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
    GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar,
    GL_ARB_texture_env_dot3, GL_ARB_texture_float,
    GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two,
    GL_ARB_texture_rectangle, GL_ARB_transpose_matrix,
    GL_ARB_vertex_array_object, GL_ARB_vertex_buffer_object,
    GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ARB_window_pos,
    GL_ATI_draw_buffers, GL_ATI_envmap_bumpmap, GL_ATI_fragment_shader,
    GL_ATI_meminfo, GL_ATI_separate_stencil, GL_ATI_texture_env_combine3,
    GL_ATI_texture_float, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
    GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
    GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array,
    GL_EXT_copy_texture, GL_EXT_draw_range_elements, GL_EXT_fog_coord,
    GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample,
    GL_EXT_framebuffer_object, GL_EXT_gpu_program_parameters,
    GL_EXT_multi_draw_arrays, GL_EXT_packed_depth_stencil,
    GL_EXT_packed_pixels, GL_EXT_point_parameters, GL_EXT_rescale_normal,
    GL_EXT_secondary_color, GL_EXT_separate_specular_color,
    GL_EXT_shadow_funcs, GL_EXT_stencil_wrap, GL_EXT_subtexture,
    GL_EXT_texgen_reflection, GL_EXT_texture3D,
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map,
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias,
    GL_EXT_texture_mirror_clamp, GL_EXT_texture_object,
    GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, GL_EXT_texture_swizzle,
    GL_EXT_vertex_array, GL_KTX_buffer_region, GL_NV_blend_square,
    GL_NV_texgen_reflection, GL_SGIS_generate_mipmap,
    GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_WIN_swap_hint,
    WGL_EXT_swap_control
glu version: 1.3
glu extensions:
    GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess

   visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav
 id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------
0x23 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x24 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x25 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x26 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x27 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x28 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x29 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x2a 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x2b 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x2c 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x2d 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x2e 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x2f 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  2 1 None
0x30 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  2 1 None
0x31 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  2 1 None
0x32 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  2 1 None
0x33 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x34 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x35 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x36 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x37 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  4 1 None
0x38 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  4 1 None
0x39 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  4 1 None
0x3a 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  4 1 None
0x3b 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x3c 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x3d 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x3e 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x3f 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  6 1 None
0x40 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  6 1 None
0x41 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  6 1 None
0x42 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  6 1 None
0x43 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x44 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x45 24 tc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x46 24 tc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x47 24 tc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x48 24 tc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x49 24 tc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x4a 24 tc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x4b 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x4c 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x4d 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x4e 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x4f 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x50 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  0 0 None
0x51 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x52 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  0 0 None
0x53 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x54 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x55 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x56 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x57 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  2 1 None
0x58 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  2 1 None
0x59 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  2 1 None
0x5a 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  2 1 None
0x5b 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x5c 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x5d 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x5e 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x5f 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  4 1 None
0x60 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  4 1 None
0x61 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  4 1 None
0x62 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  4 1 None
0x63 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x64 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x65 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x66 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x67 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8  0  0  0  0  6 1 None
0x68 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8  0  0  0  0  6 1 None
0x69 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0  0  0  0  0  6 1 None
0x6a 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0  0  0  0  0  6 1 None
0x6b 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x6c 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  8 16 16 16 16  0 0 None
0x6d 24 dc  0 32  0 r  y  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x6e 24 dc  0 32  0 r  .  .  8  8  8  8  0 24  0 16 16 16 16  0 0 None
0x6f 24 dc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x70 24 dc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x71 24 dc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x72 24 dc  1  0  0 c  .  .  0  0  0  0  0  0  0  0  0  0  0  0 0 None
0x86 32 tc  0 32  0 r  .  .  8  8  8  8  0  0  0  0  0  0  0  4 1 Ncon


Код: Выделить всё

листинг xorg.conf
# /.../
# SaX generated X11 config file
# Created on: 2009-04-25T16:22:07+0400.
#
# Version: 8.1
# Contact: Marcus Schaefer <sax@suse.de>, 2005
# Contact: SaX-User list <https://lists.berlios.de/mailman/listinfo/sax-users>
#
# Automatically generated by [ISaX] (8.1)
# PLEASE DO NOT EDIT THIS FILE!
#

Section "Files"
  FontPath     "/usr/share/fonts/misc:unscaled"
  FontPath     "/usr/share/fonts/local"
  FontPath     "/usr/share/fonts/75dpi:unscaled"
  FontPath     "/usr/share/fonts/100dpi:unscaled"
  FontPath     "/usr/share/fonts/Type1"
  FontPath     "/usr/share/fonts/URW"
  FontPath     "/usr/share/fonts/Speedo"
  FontPath     "/usr/share/fonts/PEX"
  FontPath     "/usr/share/fonts/cyrillic"
  FontPath     "/usr/share/fonts/latin2/misc:unscaled"
  FontPath     "/usr/share/fonts/latin2/75dpi:unscaled"
  FontPath     "/usr/share/fonts/latin2/100dpi:unscaled"
  FontPath     "/usr/share/fonts/latin2/Type1"
  FontPath     "/usr/share/fonts/latin7/75dpi:unscaled"
  FontPath     "/usr/share/fonts/baekmuk:unscaled"
  FontPath     "/usr/share/fonts/japanese:unscaled"
  FontPath     "/usr/share/fonts/kwintv"
  FontPath     "/usr/share/fonts/truetype"
  FontPath     "/usr/share/fonts/uni:unscaled"
  FontPath     "/usr/share/fonts/CID"
  FontPath     "/usr/share/fonts/ucs/misc:unscaled"
  FontPath     "/usr/share/fonts/ucs/75dpi:unscaled"
  FontPath     "/usr/share/fonts/ucs/100dpi:unscaled"
  FontPath     "/usr/share/fonts/hellas/misc:unscaled"
  FontPath     "/usr/share/fonts/hellas/75dpi:unscaled"
  FontPath     "/usr/share/fonts/hellas/100dpi:unscaled"
  FontPath     "/usr/share/fonts/hellas/Type1"
  FontPath     "/usr/share/fonts/misc/sgi:unscaled"
  FontPath     "/usr/share/fonts/xtest"
  FontPath     "/opt/kde3/share/fonts"
  InputDevices "/dev/gpmdata"
  InputDevices "/dev/input/mice"
EndSection

Section "ServerFlags"
  Option       "AIGLX" "on"
  Option       "AllowMouseOpenFail" "on"
  Option       "IgnoreABI" "on"
  Option       "ZapWarning" "on"
EndSection

Section "Module"
  Load         "freetype"
  Load         "glx"
  Load         "dbe"
  Load         "extmod"
  Load         "dri"
EndSection

Section "InputDevice"
  Driver       "kbd"
  Identifier   "Keyboard[0]"
  Option       "Protocol" "Standard"
  Option       "XkbLayout" "us,ru"
  Option       "XkbModel" "microsoftpro"
  Option       "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
  Option       "XkbRules" "xfree86"
  Option       "XkbVariant" ",winkeys"
EndSection


Section "InputDevice"
  Driver       "mouse"
  Identifier   "Mouse[1]"
  Option       "Buttons" "7"
  Option       "Device" "/dev/input/mice"
  Option       "Name" "Sunplus USB Wheel Mouse"
  Option       "Protocol" "explorerps/2"
  Option       "Vendor" "Sysp"
  Option       "ZAxisMapping" "4 5"
EndSection


Section "Monitor"
  Option       "CalcAlgorithm" "XServerPool"
  DisplaySize  305 230
  HorizSync    31-60
  Identifier   "Monitor[0]"
  ModelName    "1024X768@60HZ"
  Option       "DPMS"
  Option       "PreferredMode" "1152x864"
  VendorName   "--> LCD"
  VertRefresh  30-60
  UseModes     "Modes[0]"
EndSection


Section "Modes"
  Identifier   "Modes[0]"
EndSection


Section "Screen"
  DefaultDepth 24
  SubSection "Display"
    Depth      15
    Modes      "1152x864" "1024x768" "1024x600" "800x600" "768x576" "640x480"
  EndSubSection
  SubSection "Display"
    Depth      16
    Modes      "1152x864" "1024x768" "1024x600" "800x600" "768x576" "640x480"
  EndSubSection
  SubSection "Display"
    Depth      24
    Modes      "1152x864" "1024x768" "1024x600" "800x600" "768x576" "640x480"
  EndSubSection
  SubSection "Display"
    Depth      8
    Modes      "1152x864" "1024x768" "1024x600" "800x600" "768x576" "640x480"
  EndSubSection
  Device       "Device[0]"
  Identifier   "Screen[0]"
  Monitor      "Monitor[0]"
EndSection


Section "Device"
  BoardName    "RV350 NP"
  Driver       "fglrx"
  Identifier   "Device[0]"
  Option       "XAANoOffscreenPixmaps" "true"
  Option       "Capabilities" "0x00000000"
  Option       "OpenGLOverlay" "off"
  Option       "FSAAScale" "0"
  Option       "FSAAEnable" "off"
  Option       "VideoOverlay" "on"
  Screen       0
  VendorName   "ATI"
EndSection



Section "ServerLayout"
  Identifier   "Layout[all]"
  InputDevice  "Keyboard[0]" "CoreKeyboard"
  InputDevice  "Mouse[1]" "CorePointer"
  Option       "Clone" "off"
  Option       "Xinerama" "off"
  Screen       "Screen[0]"
EndSection


Section "DRI"
    Group      "video"
    Mode       0660
EndSection

Section "Extensions"
  Option "Composite" "on"
EndSection
Спасибо сказали:
Аватара пользователя
TuxWare
Сообщения: 637
ОС: Windows 7

Re: Проблемы работы программ в среде mono в linux

Сообщение TuxWare »

v567 писал(а):
18.04.2009 11:33
Сейчас сижу на домашней ATI. Того что ниже достаточно? :rolleyes:


Нет, это говорит только о том, что Ваша видеокарта поддерживает opengl 2.1 (а моя opengl 3.1 который еще вообще никто не использует). А задействована в программе эта возможность или нет - вот в чем вопрос. Я не в курсе самого mono, но в Qt в компоненте QGraphicsView (2D графика) пока Вы лично не укажите что то типа setViewport(new QGLWidget) вся графика будет обрабатываться через иксы (медленно и криво) и тогда какая у Вас видяха не будет иметь никакого значения и процессор будет грузится на все 525.5%. Я о том, что дефолтная обработка графики в линукс через X.
Спасибо сказали:
v567
Сообщения: 92

Re: Проблемы работы программ в среде mono в linux

Сообщение v567 »

TuxWare писал(а):
18.04.2009 12:12
Нет, это говорит только о том, что Ваша видеокарта поддерживает opengl 2.1 (а моя opengl 3.1 который еще вообще никто не использует). А задействована в программе эта возможность или нет - вот в чем вопрос. Я не в курсе самого mono, но в Qt в компоненте QGraphicsView (2D графика) пока Вы лично не укажите что то типа setViewport(new QGLWidget) вся графика будет обрабатываться через иксы (медленно и криво) и тогда какая у Вас видяха не будет иметь никакого значения и процессор будет грузится на все 525.5%. Я о том, что дефолтная обработка графики в линукс через X.


Если внимательно почитать эту тему, то станет ясно, что программа работает в среде mono, которая в свою очередь использует средства GTK+ и т.д. В программе использован стандартный набор компонентов .net 2.0. Стандартные средства отображения графических компонентов в VS 2008, использующие библиотеку OpenGL, в .net 2.0 отсутствуют. Их можно реализовать нестандартно, но это вызовет проблемы несовместимости со средой mono.
К тому же в XP никаких проблем с производительностью нет.
Поэтому в linux очевидны проблемы графической подсистемы в 2D. Вопрос не в этом. Вопрос в том как решить эти проблемы: может использовать другой дистрибутив или как-то хитро настроить имеющуюся систему. Возможно есть другие разумные решения ускорения работы программы в linux (говорю сразу, что переписать программу другими средствами к ним не относится).
Спасибо сказали:
Аватара пользователя
TuxWare
Сообщения: 637
ОС: Windows 7

Re: Проблемы работы программ в среде mono в linux

Сообщение TuxWare »

v567 писал(а):
18.04.2009 18:32


Вы вообще пошли не в ту степь. Остановитесь и еще раз внимательно прочтите чего я нацарапал. Пример

Код:

~> ldd /usr/bin/klines linux-vdso.so.1 => (0x00007fff2e1fe000) /usr/lib64/libv4l/v4l2convert.so (0x00007fd325cc7000) libkdeui.so.5 => /usr/lib64/libkdeui.so.5 (0x00007fd3256e8000) libkdegames.so.5 => /usr/lib64/libkdegames.so.5 (0x00007fd3253e4000) libQtXml.so.4 => /usr/lib64/libQtXml.so.4 (0x00007fd32519d000) libQtNetwork.so.4 => /usr/lib64/libQtNetwork.so.4 (0x00007fd324e7e000) libkdecore.so.5 => /usr/lib64/libkdecore.so.5 (0x00007fd324a26000) libQtDBus.so.4 => /usr/lib64/libQtDBus.so.4 (0x00007fd3247b6000) libQtCore.so.4 => /usr/lib64/libQtCore.so.4 (0x00007fd324379000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd32415d000) libQtSvg.so.4 => /usr/lib64/libQtSvg.so.4 (0x00007fd323f04000) libQtGui.so.4 => /usr/lib64/libQtGui.so.4 (0x00007fd32332a000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007fd32301b000) libm.so.6 => /lib64/libm.so.6 (0x00007fd322dc5000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fd322bae000) libc.so.6 => /lib64/libc.so.6 (0x00007fd322855000) libv4l2.so.0 => /usr/lib64/libv4l2.so.0 (0x00007fd32264b000) libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007fd322442000) libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007fd322225000) libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007fd321ee8000) libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007fd321cd6000) libXft.so.2 => /usr/lib64/libXft.so.2 (0x00007fd321ac1000) libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007fd3218bd000) libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007fd3216b7000) libXpm.so.4 => /usr/lib64/libXpm.so.4 (0x00007fd3214a5000) libXtst.so.6 => /usr/lib64/libXtst.so.6 (0x00007fd32129e000) libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007fd321093000) libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007fd320e8d000) libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007fd320c83000) libkio.so.5 => /usr/lib64/libkio.so.5 (0x00007fd3207ef000) libkdnssd.so.4 => /usr/lib64/libkdnssd.so.4 (0x00007fd3205c9000) libknewstuff2.so.4 => /usr/lib64/libknewstuff2.so.4 (0x00007fd320366000) libz.so.1 => /lib64/libz.so.1 (0x00007fd320150000) libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007fd31ff4b000) librt.so.1 => /lib64/librt.so.1 (0x00007fd31fd42000) libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007fd31fa7d000) libdl.so.2 => /lib64/libdl.so.2 (0x00007fd31f879000) libbz2.so.1 => /lib64/libbz2.so.1 (0x00007fd31f66a000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fd31f453000) libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007fd31f215000) /lib64/ld-linux-x86-64.so.2 (0x00007fd325eca000) libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x00007fd31efed000) libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007fd31ed66000) libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007fd31eb5e000) libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00007fd31e95b000) libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007fd31e729000) libv4lconvert.so.0 => /usr/lib64/libv4lconvert.so.0 (0x00007fd31e4c5000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007fd31e2c0000) libxcb-xlib.so.0 => /usr/lib64/libxcb-xlib.so.0 (0x00007fd31e0be000) libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007fd31dea2000) libstreamanalyzer.so.0 => /usr/lib64/libstreamanalyzer.so.0 (0x00007fd31dc2d000) libstreams.so.0 => /usr/lib64/libstreams.so.0 (0x00007fd31d9f5000) libsolid.so.4 => /usr/lib64/libsolid.so.4 (0x00007fd31d76d000) libfam.so.0 => /usr/lib64/libfam.so.0 (0x00007fd31d564000) libacl.so.1 => /lib64/libacl.so.1 (0x00007fd31d35c000) libattr.so.1 => /lib64/libattr.so.1 (0x00007fd31d157000) libpcre.so.0 => /usr/lib64/libpcre.so.0 (0x00007fd31cf27000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fd31ccfd000) libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fd31c99f000)

И мы видим, что klines выводит через svg и иксы. OpenGL не используется вообще. То есть о аппаратном ускорении графики в klines не может быть и речи. А теперь посмотрим kwin.

Код:

~> ldd /usr/bin/kwin linux-vdso.so.1 => (0x00007fffa9fff000) /usr/lib64/libv4l/v4l2convert.so (0x00007f49a1b2a000) libkdeinit4_kwin.so => /usr/lib64/libkdeinit4_kwin.so (0x00007f49a1873000) libkdecorations.so.4 => /usr/lib64/libkdecorations.so.4 (0x00007f49a1657000) libkwineffects.so.1 => /usr/lib64/libkwineffects.so.1 (0x00007f49a1431000) libkdeui.so.5 => /usr/lib64/libkdeui.so.5 (0x00007f49a0e52000) libkdecore.so.5 => /usr/lib64/libkdecore.so.5 (0x00007f49a09fa000) libQtSvg.so.4 => /usr/lib64/libQtSvg.so.4 (0x00007f49a07a1000) libkephal.so.4 => /usr/lib64/libkephal.so.4 (0x00007f49a0576000) libQtGui.so.4 => /usr/lib64/libQtGui.so.4 (0x00007f499f99c000) libQtDBus.so.4 => /usr/lib64/libQtDBus.so.4 (0x00007f499f72c000) libQtCore.so.4 => /usr/lib64/libQtCore.so.4 (0x00007f499f2ef000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f499f0d3000) libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007f499eeca000) libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007f499ecad000) libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f499e970000) libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f499e75e000) libXft.so.2 => /usr/lib64/libXft.so.2 (0x00007f499e549000) libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f499e345000) libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f499e13f000) libXpm.so.4 => /usr/lib64/libXpm.so.4 (0x00007f499df2d000) libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007f499dd3b000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f499db37000) libkwinnvidiahack.so.4 => /usr/lib64/libkwinnvidiahack.so.4 (0x00007f499d935000) libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007f499d72d000) libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x00007f499d52a000) libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007f499d327000) libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007f499d11d000) libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007f499cf17000) libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f499cc08000) libm.so.6 => /lib64/libm.so.6 (0x00007f499c9b2000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f499c79b000) libc.so.6 => /lib64/libc.so.6 (0x00007f499c442000) libv4l2.so.0 => /usr/lib64/libv4l2.so.0 (0x00007f499c238000) libQtXml.so.4 => /usr/lib64/libQtXml.so.4 (0x00007f499bff1000) libXtst.so.6 => /usr/lib64/libXtst.so.6 (0x00007f499bdea000) libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007f499bbdf000) libQtNetwork.so.4 => /usr/lib64/libQtNetwork.so.4 (0x00007f499b8c0000) libz.so.1 => /lib64/libz.so.1 (0x00007f499b6aa000) libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f499b49b000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f499b284000) libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x00007f499b05c000) libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f499add5000) libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00007f499abd2000) libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f499a9a0000) libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f499a79b000) librt.so.1 => /lib64/librt.so.1 (0x00007f499a592000) libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f499a2cd000) libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x00007f499a08f000) /lib64/ld-linux-x86-64.so.2 (0x00007f49a1d2d000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f4999e8a000) libxcb-xlib.so.0 => /usr/lib64/libxcb-xlib.so.0 (0x00007f4999c88000) libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f4999a6c000) libGLcore.so.1 => /usr/lib64/libGLcore.so.1 (0x00007f4998782000) libnvidia-tls.so.1 => /usr/lib64/tls/libnvidia-tls.so.1 (0x00007f49a1e0c000) libv4lconvert.so.0 => /usr/lib64/libv4lconvert.so.0 (0x00007f499851e000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f49982f4000) libpcre.so.0 => /usr/lib64/libpcre.so.0 (0x00007f49980c4000)

А здесь мы наблюдаем, что графика задействует libGL.so, libGLcore.so и libnvidia-tls.so. Т.е. мы уже можем константировать, что видеокарта хоть как то будет задействована. Ну далее можно выполнять анализ, а насколько плотно она задействована и т.д.

А теперь о cairo
Теперь расскажем о различных типах поверхностей в cairo. В cairo существует несколько видов поверхностей, привязанных к целевому формату вывода для данного рисунка. Поверхность в cairo — это то, на чем создается рисунок. В частности, имеются поверхности для изображений (в буфере в оперативной памяти), для OpenGL (через поверхность glitz), для PDF и PostScript поверхности — для вывода документов, для платформенно-зависимого рисования — через Win32 и XLib. Каждая из этих поверхностей выводится из основного типа поверхности — cairo_surface_t.

Какую Вы используете поверхность для рисования XLib-ную или OpenGL-ую.
Спасибо сказали:
Аватара пользователя
TuxWare
Сообщения: 637
ОС: Windows 7

Re: Проблемы работы программ в среде mono в linux

Сообщение TuxWare »

И еще одна мысль
eclipse написан на яве, привязан к gtk, gtk осуществляет вывод через cairo. В каталоге eclipse валяется соответствующий файлец привязки
libcairo-swt.so.

Код:

~> ldd /opt/eclipse/libcairo-swt.so linux-vdso.so.1 => (0x00007fff661fe000) /usr/lib64/libv4l/v4l2convert.so (0x00007ff05ddc1000) libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007ff05dbb7000) libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007ff05d9a5000) libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007ff05d668000) libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007ff05d435000) libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007ff05d1ae000) libm.so.6 => /lib64/libm.so.6 (0x00007ff05cf31000) libc.so.6 => /lib64/libc.so.6 (0x00007ff05cbd7000) libv4l2.so.0 => /usr/lib64/libv4l2.so.0 (0x00007ff05c9cd000) libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007ff05c7c9000) libxcb-xlib.so.0 => /usr/lib64/libxcb-xlib.so.0 (0x00007ff05c5c6000) libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007ff05c3aa000) libdl.so.2 => /lib64/libdl.so.2 (0x00007ff05c1a6000) libz.so.1 => /lib64/libz.so.1 (0x00007ff05bf8f000) libexpat.so.1 => /lib64/libexpat.so.1 (0x00007ff05bd65000) /lib64/ld-linux-x86-64.so.2 (0x00007ff05e118000) libv4lconvert.so.0 => /usr/lib64/libv4lconvert.so.0 (0x00007ff05bb01000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff05b8e4000)

Заметили здесь хотя бы намек на GL.
Спасибо сказали:
v567
Сообщения: 92

Re: Проблемы работы программ в среде mono в linux

Сообщение v567 »

Как уже было сказано цепочка программа-> mono -> gtk+ -> gdi+ не используют OpenGL. Для того чтобы это определить достаточно открыть в редакторе файл libgdiplus0-2.4-19.1.i586.rpm, который лежит в репозитарии mono 2.4

В нем пишется:
libgdiplus0 2.4 19.1 Open Source Implementation of the GDI+ API This is part of the Mono project. It is required when using Window.Forms.
.........................
libX11.so.6
libXau.so.6
libXrender.so.6
Спасибо сказали:
v567
Сообщения: 92

Re: Проблемы работы программ в среде mono в linux

Сообщение v567 »

Кстати совсем забыл спросить каким же образом Вы предлагаете "задействовать видеокарту"? Переписать mono, gtk или X-Window? :rolleyes:
Спасибо сказали:
Аватара пользователя
TuxWare
Сообщения: 637
ОС: Windows 7

Re: Проблемы работы программ в среде mono в linux

Сообщение TuxWare »

v567 писал(а):
19.04.2009 00:03
Кстати совсем забыл спросить каким же образом Вы предлагаете "задействовать видеокарту"? Переписать mono, gtk или X-Window? :rolleyes:


Libgdiplus is the Mono library that provide a GDI+ comptible API on non-Windows operating systems. Our implementation uses Cairo to do most of the heavy lifting.

Как уже было сказано цепочка "программа-> mono -> gtk+ -> gdi+ -> Cairo" может рисовать на OpenGL поверхности без проблем. А из-за того, что кто то эту цепочку "программа-> mono -> gtk+ -> gdi+ -> Cairo -> OpenGL" превратил в цепочку "программа-> mono -> gtk+ -> gdi+ -> Cairo -> (Xlib + процессор)" Вы делаете вывод, что 2D графика в Linux очень медленная. А GDI в виндовсе через DirectX жарит (c полной поддержкой видеокарты) или как?
Спасибо сказали: