2017-01-26 15 views
0

Мы используем систему TI Sitara AM33 на микросхеме с тактовой частотой 600 МГц и 256 МБ оперативной памяти. OS - OE Yocto v2.1 Krogoth, ядро ​​4.4.19. Видеодрайвер - DRM/KSMУказатель мыши отстает в приложении QT5 на TI Sitara

У нас возникли проблемы с производительностью мышки.

Я сделал немного Vedio, чтобы продемонстрировать эффект: https://www.youtube.com/watch?v=5dRDGzhcnn0

Обратите внимание, как указатель мыши движется плавно на пустой области окна и запаздывает более в контроле. Как будто это проходит через желе. Если у вас больше элементов управления в окне, мышь становится настолько лагированной, что она непригодна для использования. Загрузка процессора минимальна.

В примере приложения в vedio не может быть ошибки - мы создали пустой проект QT Widget, поместили элементы управления в форму и все, ничего не делали.

Кто-нибудь видел такие проблемы с мышью?

+0

Qt5, я надеюсь, означает задействованный GPU, поэтому загрузка процессора не имеет большого значения. BTW с элементами управления требуется много работы, чтобы перекрасить области в пересчет объектов по сравнению с пустой областью. Так может быть вычислительным вопросом на стороне GPU. Кроме того, также может быть проблема с ОЗУ, зарезервированным для графики: подкачки структур увеличивают задержки. – LPs

+0

Да, это QT5. Я не знаю, как профилировать GPU на встроенной системе, но если я запустил «top», он скажет, что загрузка процессора составляет 40% и 0 Мбайт подкачки. – Yuriy

ответ

1

Если вы не используете X-сервер, вам необходимо проверить, какой плагин платформы Qt используется на вашей платформе. Возможно, этот плагин сломан или не лучший выбор в вашей ситуации.

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

Кажется, что система отправки событий на вашей платформе была очень медленной, чем больше виджетов. Это вряд ли будет иметь отношение к графической стороне вещей. В процессе устранения, возможно, вы могли бы сначала оценить производительность примитивов синхронизации (QBasicMutex и QMutex) и атомных целых чисел и указателей, чтобы обеспечить их правильную настройку для вашей платформы.

+0

Я привязал отключить все элементы управления, то есть кнопки будут неактивными и, следовательно, неприступными. Это значительно улучшает ситуацию. Я бы обвинил графику в медленной окраске кнопки наведите курсор на анимацию, но кузнец медленный, даже если он был навешен над переключателями и флажками. Возможно, тогда вы правы, и система как-то очень медленно реагирует на событие зависания, даже если его нет? – Yuriy

+0

Прежде всего, подготовьте сборку Qt отладки * и *, как с отладочной информацией. Затем запустите сборку * release * и проверьте ее производительность. Только если он работает плохо, запустите его под профилировщиком и посмотрите, где он проводит свое время. –