Название: От чего зависит производительность qml Отправлено: joker от Май 04, 2013, 18:42 Нужно было нарисовать приложеньку для POS. Решил сделать на QML. И, когда сделал часть на своем ноутбуке, начал тестировать.
При этом оказалось что все QML-ное тормозит просто жутко. (Для пробы собрал пример interaction то же ощутимо лагает.) Теперь немного технической информации: Он (POS) собран на Intel Atom 525 (2 ядра, 1,8Ghz на ядро) Как операционку поставил calculate linux (kde 4, x86_64). Работает вполне себе комфортно. Поставил Qt5.0.2 x86_64 заранее собранный. Сам QtCreator тоже работает нормально Вобщем есть ли идеи - то ли проблемы с тем, что 2 версии Qt (kde таки его пользует), то ли что нибудь с x86_64... То ли действительно никаких вариантов и надо переписывать на чем нибудь другом? то ли еще есть какие проблемы. Название: Re: От чего зависит производительность qml Отправлено: alex312 от Май 04, 2013, 20:35 производительность QML зависит от производительности OpenGL.
Название: Re: От чего зависит производительность qml Отправлено: joker от Май 04, 2013, 21:51 в glxgears пишет:
Код: direct rendering: Yes Конечно работает то на набортном видео (Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller), но KDE4 же крутится нормально. Уже попробовал на чистой системе (тот же calculate но без DE) - результат тот же А вот при запуске qml-ного приложения тормозит... и загрузка камня под 80% улетает (процентов под 40 на ядро) - то есть какой то софтварный рендер, что ли. Сейчас попробую поставить винду или другую никсу - посмотрим - не тянет ли конфигурация или беда с конкретным дистрибутивом Название: Re: От чего зависит производительность qml Отправлено: alex312 от Май 04, 2013, 22:30 У меня Uuntu 13.04, старенький ноут с целероном( M540) и встроенной графикой. QML-ные примеры не тормозят (максимум 15% проца)
В приложении мой вывод glxinfo . Название: Re: От чего зависит производительность qml Отправлено: joker от Май 05, 2013, 20:39 Ерунда какая то.
Поставил 7ку... нормально работает. Поставил Ubuntu - опять загрузка 80% Получается что то не то с видеодрайвером? Точнее с его поддержкой opengl? Но судя по glxinfo и glxgears всё вполне себе в порядке. Вобщем буду искать вроде пара идеек нарылась - что нибудь наклюнется - отпишусь Название: Re: От чего зависит производительность qml Отправлено: BuRn от Май 05, 2013, 20:43 Ерунда какая то. проблема определенно в драйвере, а не пробовал поэкспериментировать с Xorg и собственно самими драйверами ? Поставил 7ку... нормально работает. Поставил Ubuntu - опять загрузка 80% Получается что то не то с видеодрайвером? Точнее с его поддержкой opengl? Но судя по glxinfo и glxgears всё вполне себе в порядке. Вобщем буду искать вроде пара идеек нарылась - что нибудь наклюнется - отпишусь Название: Re: От чего зависит производительность qml Отправлено: joker от Май 09, 2013, 18:47 Попробовал на чистой gentoo, оттюненой по максимуму (gentoo мне ближе) - производительность анимации сравнялась с windows 7 (точнее визуально более гладко, однако при проигрывании анимации - загрузка по каждому процессору растет до 20-30%, а как она растет при windows я не помню :( но явно двигается менее гладко)
Если я правильно понимаю - таки частично рендерится через cpu, просто при тюнинге отрабатывает меньше всякой промежуточной ерунды. Соответственно вопрос - а можно как то собрать qt с более ранней (простой) версией opengl (где то видел что в qt5 используется opengl2, может имеет смысл собрать все с opengl1)? И где можно посмотреть какую нибудь информацию по opengl и всяким связкам - пока натыкаюсь только на разрозненные кусочки Название: Re: От чего зависит производительность qml Отправлено: Отражение луны от Май 17, 2013, 10:49 У меня абсолютно та же проблема с производительностью на том же pos терминале с тем же убогим железом (на другом pos терминалы не делают), только в качестве оболочки gnome-shell, что по сути не имеет значения.
Насколько я понимаю, qt5 работает только с opengl 2.0, и не ниже. Официально intel gma 3150 поддерживает opengl 2.0 на линуксах. Но на ubuntu почему-то мне его так завести не удалось. glxinfo | grep OpenGL пишет весию 1.4 не смотря на все манипуляции с driconf. Автор, будьте добры, отпишитесь, на генте и убунте у вас какие версии opengl заработали? Существуют официальные баг репорты на тему: https://bugs.launchpad.net/ubuntu/+source/mesa/+bug/937734 https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/880034 Название: Re: От чего зависит производительность qml Отправлено: Отражение луны от Май 17, 2013, 11:17 upd: все же удалось запустить opengl 2.0 через driconf, до этого не получалось из-за ошибки прав доступа.
Стало чуть-чуть быстрее, но не намного. Подозрительно, что обычный gridview так сильно тормозит, даже на таком слабом железе. По всей видимости, действительно, дело в драйвере. Хотя справедливости ради стоит отметить, что gnome shell на нем работает вполне сносно. Мб кто подскажет варианты решения? Не хотелось бы, конечно, использовать венду. Название: Re: От чего зависит производительность qml Отправлено: alex312 от Май 17, 2013, 12:03 это конечно "пальцем в небо" но попробуйте - https://01.org/linuxgraphics/downloads , если у вас Убунта 12,04 или 12,10.
как вариант обновится до 13.04 - там все самое свежее. Название: Re: От чего зависит производительность qml Отправлено: Отражение луны от Май 17, 2013, 12:06 Ubuntu 13.04, взята из тех соображений, что либы qt5 уже есть в стандартных репозиториях. Да и она вполне стабильна.
Полагаю, судя по вашему glxinfo qtquick 2 все же требует opengl 2.1 Ну а вообще было бы здорово почитать "системные требования" qtquick 2.0, но я их, увы, не нашел. Название: Re: От чего зависит производительность qml Отправлено: alex312 от Май 17, 2013, 12:21 Полагаю, судя по вашему glxinfo qtquick 2 все же требует opengl 2.1 Насколько я понял то qtquick 2 ориентирован на OpenGL ES 2.0.И как я писал выше, у меня сейчас убунта 13.04, все компоненты стандартные. ЗЫ Можете выложить скрин окна "про систему" ? Название: Re: От чего зависит производительность qml Отправлено: Отражение луны от Май 17, 2013, 12:48 К слову, на моём нетбуке с radeon 4225 на свободных драйверах все работает крайне шустро, ubuntu 13.04, Opengl 3.0.
Название: Re: От чего зависит производительность qml Отправлено: alex312 от Май 17, 2013, 13:18 А нельзя воткнуть в терминал самую простую и дешевую внешнюю видяху?
Название: Re: От чего зависит производительность qml Отправлено: Отражение луны от Май 17, 2013, 15:18 Увы, нет. Это по сути сенсорный моноблок. Да и лишнее это, проще пользовать тогда 1.1 и дай бог через год-два перейдем на arm или же ситуация с драйверами улучшится
Название: Re: От чего зависит производительность qml Отправлено: alex312 от Май 17, 2013, 15:50 Увы, нет. Это по сути сенсорный моноблок. Да и лишнее это, проще пользовать тогда 1.1 и дай бог через год-два перейдем на arm или же ситуация с драйверами улучшится У меня на машине qml 2.0 намного шустрее бегает. А по поводу армов - это тоже не подарок. Если это не мегапопулярная плата (типа Rpi) то тоже куча нюансов, особенно с opengl .Название: Re: От чего зависит производительность qml Отправлено: Отражение луны от Май 17, 2013, 16:45 Еще какая-то проблема с qtquick 1.1. Поскольку скорее всего она ерундовая, отдельную тему создавать не хочется. Что-то у меня под windows helloworld работает, а под ubuntu выдает
:-1: error: Unknown module(s) in QT: script Либы все установлены. У меня на буке 2.0 почти не грузит проц, но деваться некуда, кривые драйвера все портят. Можно, разве что, попробовать вовсе ускорение отключить, или же запустить через Llvmpipe, а то есть предположение, что именно кривой драйвер перегружает проц. Название: Re: От чего зависит производительность qml Отправлено: joker от Май 22, 2013, 12:03 Извиняюсь... уходил с головой во внедрение - сюда не возвращался... так что ответить не мог.
Насчет script - может возьмешь сборку самой digia с их сайта (ставится в /opt) - там точно фулл комплект. Ибо как собраны либы в бубунте - знают только в каноникале :) Кстати, замечал у себя - если на компе есть собственные либы qt и отдельно установленные, то для сборки из командной строки надо делать что то вроде Цитировать export PATH=/opt/Qt5.1.0/5.1.0-beta1/gcc/bin/:$PATH Т.к. иначе make пытается подхватить изначальные либы, которые не той версии (и, соотвественно, с дургими плагинами)Насчет конфига - еще раз повторюсь - на бубунте ничего нормально так и не завелось. На gentoo вроде glxinfo показывал то же самое... но сейчас проверить не могу - доступа к девайсу пока нет, через недельку (а может и позже) - пишите что нужно - выложу. Но явно могу сказать. 1. Интеловские GMA явно для OpenGL 2.0 используют камень (это логично) и особо производительностью не блещут. 2. Кстати, в обычных никсах используется OpenGL, а OpenGL ES - это для встраиваемых систем (типа смартфонов и тп. ES = Embedded system) Ну и в 5.1.0 что то исправлялось с openGL, вот только железки пока нет чтобы проверить - будет что интересное - отпишусь Название: Re: От чего зависит производительность qml Отправлено: ctin от Август 25, 2013, 12:16 В ряде статей есть рекомендация использовать WA_OpaquePaintEvent для QDeclarativeView (пруф http://qt-project.org/doc/qt-4.8/qdeclarativeperformance.html (http://qt-project.org/doc/qt-4.8/qdeclarativeperformance.html))
Я провел простой эксперимент: одно и то же приложение с прогрессбаром размером 800х600 занимает 60% процессора с этим флагом (WA_OpaquePaintEvent), и 0% без него. Название: Re: От чего зависит производительность qml Отправлено: Отражение луны от Декабрь 12, 2013, 16:33 Апну темку, т.к. проблема по-прежнему актуальна и решить штатынми средствами не удалось.
nomodeset дал небольшой прирост производительности, но скорость рендеринга все равно убогая. Название: Re: От чего зависит производительность qml Отправлено: navrocky от Январь 11, 2014, 19:35 Отключи композитинг, попробуй запустить на голом X-сервере без ДЕ. Обычно слабые видяхи плохо тянут opengl приложения при включенном композитинге. Для терминала лучше вообще все ДЕ поотключать.
Наша компания тоже терминал делает, мы себе сделали usb live-дистрибутив с необходимым минимальным набором софта, в котором стартуют голые иксы и полноэкранное приложение на QML. Название: Re: От чего зависит производительность qml Отправлено: Отражение луны от Февраль 25, 2014, 12:32 Пробовал на windows, драйвера gma не поддерживают opengl 2.0, следовательно ни один из примеров даже и не запустить вовсе.
На линуксе на голых иксах получилось добиться небольшого прироста производительности, но не уверен, что этого достаточно. Вообщем, пора начать выкидывать мусор на основе intel gma, и покупать что-то с более-менее нормальным железом. Название: Re: От чего зависит производительность qml Отправлено: navrocky от Март 22, 2014, 16:19 Qt4 QtQuick1 использует софтварную отрисовку, вообще не тормозит. Попробуй на нем.
Название: Re: От чего зависит производительность qml Отправлено: Отражение луны от Март 23, 2014, 17:38 Qt4 QtQuick1 использует софтварную отрисовку, вообще не тормозит. Попробуй на нем. Сейчас на нем и работаем, вот только там нет массы полезных фич. Название: Re: От чего зависит производительность qml Отправлено: OKTA от Март 23, 2014, 21:34 Например?
Название: Re: От чего зависит производительность qml Отправлено: Отражение луны от Март 24, 2014, 23:56 Например? Например адекватная реализация drag and drop и хоткеи при помощи Action. qtquick 1 больше не развивается, все новые плюшки появляются только для второго. Поэтому в любом случае придется переходить. Название: Re: От чего зависит производительность qml Отправлено: OKTA от Март 25, 2014, 00:11 И первое и второе у меня работает в qtquick 1 замечательно :P Если надо помочь - помогу! 8)
У qtquick 2 тоже своих косяков хватает порядочно и лично для меня например эти косяки рещающие и не дают так просто перейти)) Название: Re: От чего зависит производительность qml Отправлено: Отражение луны от Март 26, 2014, 01:56 И первое и второе у меня работает в qtquick 1 замечательно Заставить работать можно, но не без огромных костылей и велосипедов. Название: Re: От чего зависит производительность qml Отправлено: OKTA от Март 26, 2014, 07:18 Да ничего там такого нет ???
Название: Re: От чего зависит производительность qml Отправлено: navrocky от Март 31, 2014, 19:08 Кстати а mesa в режиме программной эмуляции не пробовали? там есть пара софтварных рендеров, к примеру, http://www.mesa3d.org/llvmpipe.html
Цитировать Shaders, point/line/triangle rasterization and vertex processing are implemented with LLVM IR which is translated to x86 or x86-64 machine code. Also, the driver is multithreaded to take advantage of multiple CPU cores (up to 8 at this time). It's the fastest software rasterizer for Mesa. Я сам не пробовал, но возможно тоже придется потыкать, т.к. надо чтобы аппликуха запускалась везде, в том числе и на старых машинках с виндой xp и, возможно, дохлыми драйверами. Название: Re: От чего зависит производительность qml Отправлено: Отражение луны от Апрель 01, 2014, 11:18 llvmpipe пробовал, большого прироста не получилось, хоть он и был. Возможно, я не включил чего-то нужного.
Этому вопросу надо уделить кучу времени, но пока что такой возможности нет. Если вдруг добьюсь какого-либо результата - сообщу. Хотя интел гма все равно надо выкидывать. На венде запускать со старыми видюхами поможет angle. Название: Re: От чего зависит производительность qml Отправлено: navrocky от Апрель 09, 2014, 19:30 Я попробовал llvmpipe, работает очень хорошо, конечно до скорости аппаратного ускорения ему далековато, но для моего приложения его хватает. Надо, правда, его на атоме погонять, пока тестил на core i5 :).
Квака 3 в разрешении 800х600 выдает вполне играбельный fps >50. |