Официальный форум СВД Встраиваемые Системы
04 Декабря, 2016, 09:03:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
 
 
 Сайт СВД ВС  Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt и haswell. Производительность.  (Прочитано 155 раз)
denver
Пользователь

Сообщений: 16


« : 25 Ноября, 2016, 13:03:45 »

Здравствуйте!!
Возникла проблема, есть вот такой вот аппарат http://www.citilink.ru/catalog/mobile/notebooks/373510/ и QNX 6.5.0 SP1. Прикрутил к нему драйвер haswell (last version).

(щёлкните чтобы показать/скрыть)

(щёлкните чтобы показать/скрыть)

Установил mesa3d (last version), запустил glut-gears на полный экран, выдал 400 фпс и 2000 кадров, на стандартном svga было намного хуже.
       Суть проблемы.       
       Есть приложение, написано на qt4.8.7 (last version). В нем 2 вкладки (QTabWidget), внутри одной из них еще 5 и в этих пяти еще по несколько штук, на них всякие combobox, label, table и tree виджеты. Запускаю приложение под драйвером haswell, при переключениях между вкладками отрисовка новой вкладки происходит пару секунд, с артефактами, мерцанием. Пример на скринах. Есть вкладка, на которой qgraphicsscene, так там секунды 3 зависание. Причем рисует какими-то широкими полосками, в основном нижняя часть экрана нормально, а верхняя через некоторое время. Приложение было запущено в фулскрине, без рамки. Запустил в оконном режиме. Открыл в фотоне несколько окон, попереключался между ними - все нормально. Внутри qt окна все равно плохо все. При работе приложения с обновлением информации 2 раза в секунду (обновляется текст и несколько qicon), приложение мерцает как гирлянда.

(щёлкните чтобы показать/скрыть)

       Еще момент, в самом qt приложении видно мерцание экрана, как будто частота обновления очень маленькая, в оболочке photon нет такого и при использовании svga тоже.
       От разрешения экрана и профиля работы драйвера haswell проблема не зависит.
       Попробовал photongl, но не запустилось. glcube падает, сам куб рисуется, но скролы нет. Стартует только чистый opengl. Можно ли как-то это починить? Если я правильно понимаю, то отрисовка будет через opengl проходить и по идее решит проблему.
(щёлкните чтобы показать/скрыть)
       Запускал приложение orbit, также при прокрутке все мерцает.
(щёлкните чтобы показать/скрыть)
       При запуске с svga таких проблем нет, проц грузит на 15 % при переключениях, при обновлении активном на 40%, но все рисует без проблем. Никаких мерцаний и так далее. Кстати и при использовании haswell проц загружается также сильно, к сожалению.
       Запускал с haswell мозилу, открывал несколько вкладок, скроллил их, все отлично было, работает быстрее, чем на svga и проц не грузится.
       В чем проблема и можно ли как её исправить? Хотелось бы снять с проца лишнюю нагрузку.

       Заранее спасибо))
Записан
Андрей Докучаев
Сотрудник СВД ВС
Ветеран

Сообщений: 651



WWW
« Ответ #1 : 25 Ноября, 2016, 14:47:06 »

Добрый день!

Я бы не смешивал две проблемы воедино. Если я правильно понял, то нужно выделить проблему с потреблением CPU (проявляется, например, на orbit) и проблему с артефактами (проявляется на Вашем ПО).

У нас как раз приобретен этот ноутбук для внутренних нужд организации. На будущей неделе готов посмотреть детально на Вашу проблему. Мне потребуется как минимум следующее:
1. письмо на почту с указанием контактов для взаимодействия;
2. точное название архива с драйвером, который используется на ноутбуке;
3. вывод sloginfo для драйвера haswell при проявлении проблем с Вашим ПО;
4. собственно выжимка из Вашего ПО, на которой заметны артефакты.
« Последнее редактирование: 25 Ноября, 2016, 15:18:16 от Андрей Докучаев » Записан

denver
Пользователь

Сообщений: 16


« Ответ #2 : 28 Ноября, 2016, 15:00:48 »

Сбросил на почту ПО и контакты.
Версия драйвера haswell: http://www.kpda.ru/download=devg-haswell-qnx650-20161007-882.tar.gz
Версия Qt: qt487-20160608.

Вывод sloginfo:
(щёлкните чтобы показать/скрыть)
Во время работы ПО никаких сообщений не выдается. При смене разрешения выдает вот это:

Код:
Nov 29 04:37:44    5     5     0 RegionClose(): rid=5 not found
Nov 29 04:37:46    6     8     0 [intelgpu: rings] Fatal: timed out trying to stop ring [RCS]
Nov 29 04:37:48    6     8     0 [intelgpu: rings] Fatal: timed out trying to stop ring [BCS]
Nov 29 04:37:48    6     8     0 [intelgpu: DP] Warning: wait eDP panel status timeout (mask b800000f value 00000000)
Nov 29 04:37:53    6     8     0 Primary active: 0 10 7
Еще [intelgpu: interrupt] пару раз Fatal выдавал, но, к сожалению, не зафиксировал сообщение.

Удалось добиться срабатывания и на svga, происходит тогда, когда основному потоку приложения присваиваешь высокий приориет, на 21 уже проявляются артефакты. Скорее всего дело не в Вашем драйвере, просто с ним чаще проявляется. На других машинах такого нет, есть несколько древних ноутов, которым уже лет 7, на них все работает на svga. Специально искал ноут со встроенной графикой, чтоб уйти от отрисовки процом, а он оказывается и на svga не очень-то работает.
Записан
Андрей Докучаев
Сотрудник СВД ВС
Ветеран

Сообщений: 651



WWW
« Ответ #3 : 28 Ноября, 2016, 16:38:49 »

Материалы получил, буду смотреть.

Цитировать
[intelgpu: rings] Fatal: timed out trying to stop ring [RCS]
[intelgpu: rings] Fatal: timed out trying to stop ring [BCS]
[intelgpu: DP] Warning: wait eDP panel status timeout (mask b800000f value 00000000)

Эти сообщения не должны играть роли в описанных сценариях. А вот проблема с прерываниями наоборот, имеется ли взаимосвязь задержек/артефактов с наличием подобных сообщений в логе?
Записан

denver
Пользователь

Сообщений: 16


« Ответ #4 : 28 Ноября, 2016, 17:08:43 »

А вот проблема с прерываниями наоборот, имеется ли взаимосвязь задержек/артефактов с наличием подобных сообщений в логе?

Нет. Я нашел причину этих сообщений и само сообщение. Выдается при запуске программы с -platform photongl. ПО не запускается и в лог вот это сыпется:
Код:
Nov 29 07:50:45    6     8     0 [intelgpu: ISR] Error: gen7 UC IRQ handler: unclaimed register before interrupt
Nov 29 07:50:45    6     8     0 [intelgpu: ISR] Error: gen7 UC IRQ handler: unclaimed register before interrupt
Записан
denver
Пользователь

Сообщений: 16


« Ответ #5 : 29 Ноября, 2016, 10:31:42 »

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

Еще по поводу haswell при перезапуске io-display (настройки haswell сбрасываются при перезагрузке на svga), иногда выдает сообщение send_restart_msg(): function not implemented. После этого только выключать аппратно ноут на кнопку.
Записан
Андрей Докучаев
Сотрудник СВД ВС
Ветеран

Сообщений: 651



WWW
« Ответ #6 : 29 Ноября, 2016, 15:58:47 »

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

Хорошо. В таком случае передам информацию коллегам, занимающимся сборками Qt.

Еще по поводу haswell при перезапуске io-display (настройки haswell сбрасываются при перезагрузке на svga)

Нужно обновить конфигурационные файлы enum-devices.

Еще по поводу haswell при перезапуске io-display (настройки haswell сбрасываются при перезагрузке на svga), иногда выдает сообщение send_restart_msg(): function not implemented. После этого только выключать аппратно ноут на кнопку.

Устройства от Intel не любят когда с ними работают попеременно то через регистры (в нативных драйверах), то через прерывания VESA (драйверы svga/vesabios). Предыдущий пункт должен закрыть и этот вопрос также.
Записан

denver
Пользователь

Сообщений: 16


« Ответ #7 : 30 Ноября, 2016, 10:41:21 »

Хорошо. В таком случае передам информацию коллегам, занимающимся сборками Qt.
Спасибо))


Я делал так, но изменений не было, в итоге оставил эту затею. Сегодня порылся в файле, который по ссылке лежит, в нем заменил did 0х0A06 на 0х0a06 - все заработало)
Записан
Андрей Докучаев
Сотрудник СВД ВС
Ветеран

Сообщений: 651



WWW
« Ответ #8 : 30 Ноября, 2016, 11:09:58 »

Сегодня порылся в файле, который по ссылке лежит, в нем заменил did 0х0A06 на 0х0a06 - все заработало)

Собственно, это как раз одна из проблем, которую закрыли в обновленных конфигурационных файлах.
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP © 2002-2016 СВД Встраиваемые Системы.
При использовании материалов сайта ссылка на forum.kpda.ru обязательна.

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines | © Aiwan. Kolobok smiles | Sitemap
Valid XHTML 1.0! Valid CSS!
Сайт СВД ВС

В последний раз google посещал эту страницу 04 Декабря, 2016, 04:39:43