LINUX.ORG.RU

Отладка графики на Arm/Mali

 , , , ,


4

3

на скриншоте (сделан на основной системе):

  • Mali Graphics Debugger (на основе Eclipse)- захват GLES2 draws и фрейма тестового приложения openglunderqml из Qt 5.2. соединяется по TCP/IP с пытаемой системой (linux/arm(тут) или android/arm);
  • в правой части проброшенный по VNC десктоп arm/mali системы (cubiboard2/cubian):
    • само приложение opengleunderqml на Qt 5.2/GLES2 (отсутвует текст в QML компоненте);
    • в нижнем терминале - информация о EGL/GLES2 драйвере чипа Male 400 MP (в составе Allwinner A20/Cubieboard2);
    • также запущен демон для дебаггера и подменяемые EGL/GLES1/GLES2 библиотеки, из которых он и получает графические данные и переселает основному приложению;

по Mali Graphics Debugger - обычный дебаггер;) много закидывает в /tmp (несколько гигабайт за пару десятков минут). кроме того, идущие с ним либы для перехвата EGL/GLES вызовов есть только для fbdev (а драйвера у меня стоят для x11 - физически это разные библиотеки) - впрочем, они работают. когда будет время для дальнейших экспериментов - попробую собрать qt только под fbdev(без Х11) - думаю, такая система в качестве только отладочной будет вполне работоспособна.

и да - это определённое завершения моих экспериментов над cubiboard2, начатое тут - изменения следующие: дистрибутив сменен с федоры 19 на cubian (на базе debian wheezy) - он сразу идёт со всеми проприетарными драйврами и не имеет проблем с определением мониторов, подключенных по hdmi>dvi (также обновляется и для 1й cubieboard). VLC осилил фльмы в уже нормальном качестве: 1248x528 в H264 - MPEG-4 AVC (part 10) (avc1) - что уже намного лучше полного отсутсвия изображения ранее.

>>> Просмотр (3000x1080, 829 Kb)

★★★★

Проверено: JB ()

Можешь что-то для отладки OpenGL 4.3 на AMD Radeon посоветовать? Есть ли что-то похожее на это? gDEBbuger меня не сильно радует.

frozenix ★★★
()
Ответ на: комментарий от frozenix

Можешь что-то для отладки OpenGL 4.3 на AMD Radeon посоветовать? Есть ли что-то похожее на это? gDEBbuger меня не сильно радует.

http://apitrace.github.io/ пробовали? (не совсем понятно, когда будет Valve's VOGL OpenGL Debugger http://richg42.blogspot.de/2014/01/vogl-opengl-tracerdebugger-bonus-content.html - но, похоже, будет интересен)

azazello ★★★★
() автор топика
Последнее исправление: azazello (всего исправлений: 1)
Ответ на: комментарий от azazello

Apitrace пробовал, но не знал, что к нему есть GUI. Спасибо, то что надо.

frozenix ★★★
()

А какое в cubian ядро? Для arm это немаловажный фактор, так как там прогресс в допиливании ядер под ARM очень хорошо заметен.

zloy_starper ★★★
()

Использую gDEBugger, доволен.

andreyu ★★★★★
()
Ответ на: комментарий от andreyu

Пару раз валился на пустом месте и тянул за собой драйвера и иксы, без перезагрузки не исправить. Какая-то фигня с интерфейсом была, выглядит не нативно, хотя диалоговые окна отображаются в нативном стиле. В целом понравился, но хотелось бы более хорошей интеграции с IDE и самой системы.

frozenix ★★★
()
Ответ на: комментарий от andreyu

gdebugger 6.2.438-4 08-Feb-2013

Похоже, что его давно не обновляли, на сайте AMD вообще скрыли. Советуют CodeXL.

UPD. Поставил, выглядит как и gdebugger, походу сменили имя.

frozenix ★★★
()
Последнее исправление: frozenix (всего исправлений: 1)
Ответ на: комментарий от andreyu

Тема у меня стоит стандартная от lubuntu, это отладчик её не подхватывает. Походу он не берет тему lxde. Кстати забей на codexl говорят не все фичи туда перенесли.

frozenix ★★★
()
Ответ на: комментарий от frozenix

Тема у меня стоит стандартная от lubuntu, это отладчик её не подхватывает. Походу он не берет тему lxde.

Хм, у меня подхватывает ту же тему, что и остальные гтк+ приложения.

Кстати забей на codexl говорят не все фичи туда перенесли.

Понял, спасибо.

andreyu ★★★★★
()
Ответ на: комментарий от zloy_starper

А какое в cubian ядро? Для arm это немаловажный фактор, так как там прогресс в допиливании ядер под ARM очень хорошо заметен.

3.4.65 sunxi (собственно, допиленное для allwinner)

azazello ★★★★
() автор топика
Ответ на: комментарий от x4DA

ах вот оно что ;) под винду, как и под консоли есть много разных тулзовин - но для отладки GLES кода на данном железе они безполезны ;)

azazello ★★★★
() автор топика
Последнее исправление: azazello (всего исправлений: 1)
Ответ на: комментарий от azazello

Да нет, сам пишу на Qt, темы точно стоят. Уже пробовал запускать с -style gtk, никак не реагирует. Если вы запускали его и он нормально выглядел, то под каким DE и ОС это было?

Опа, запустил с -style motif и оно сменило вид... Видать где-то gtk тему не подхватывает. Кажись придумал решение, спасибо.

frozenix ★★★
()
Ответ на: комментарий от MiniRoboDancer

По дефолту там крыса с крестиком.

сорри, протупил - на хосте - OpenSuse 13.1+Mate 1.6(левая часть скрина), а XFCE4 4.8 на таргете (правая). иконки не менял - т.е. это дефолтные ;)

azazello ★★★★
() автор топика
Ответ на: комментарий от frozenix

Опа, запустил с -style motif и оно сменило вид... Видать где-то gtk тему не подхватывает. Кажись придумал решение, спасибо.

я давно его запускал, и лишь пару раз под линуксом :( но если я правильно помню, он идёт со своей Qt - и не факт, что тема gtk там просто собрана.

azazello ★★★★
() автор топика
Ответ на: комментарий от azazello

БИНГО дзинь-дзинь ты выиграл джекпот.

ГТК тему он жует, но только лишь частично. Меняет кое-где цвет фона в зависимости от темы. Решение простое - удаляем все qt либы, которые идут с ним, и делаем симлинки на либы, которые стоят в системе.

В общем я разобрался и заставил его выглядеть нативно, большое спасибо :)

frozenix ★★★
()
Ответ на: комментарий от MiniRoboDancer

В MATE треугольник с кольцами. Конкретно в OpenSuse может быть ящерица. Но не лапы какие-то.

я уже не в том возрасте (или не того пола), чтобы лезть куда-то и менять зачем-то какую-то иконку :) даже больше - пока вы не обратили на неё внимания - она вообще не была мне интересна:)

azazello ★★★★
() автор топика
Последнее исправление: azazello (всего исправлений: 1)
Ответ на: комментарий от frozenix

В общем я разобрался и заставил его выглядеть нативно, большое спасибо :)

ура! всегда пожалуйста!

azazello ★★★★
() автор топика
Ответ на: комментарий от MiniRoboDancer

Ну а откуда ж они там взялись?

думаю, где-то так оно там появилось:

идёт мужик, встречает маленькую девочку:
- девочка, а что ты жуёшь?
- да х*й его знает - само в рот прыгнуло.

azazello ★★★★
() автор топика

Интересно.
У меня правда так и не получилось заставить gles нарисовать хоть что-то. Хотя zquake рисуется.

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

У меня правда так и не получилось заставить gles нарисовать хоть что-то. Хотя zquake рисуется.

в типичной инсталяции получается 2 GL: OpenGL/GLX(через Mesa в софте) и GLES/EGL на железе. у вас quake мог работать через месу. если нужен GLES(и 2D ускорение) из коробки - попробуйте http://cubian.org/ - он тут как раз и присутвует - идёт в без Х, но всё ставится в пару команд по руководству отсюда http://cubian.org/2013/09/29/install-lxde-with-opengles-accelerated-on-cubian/

azazello ★★★★
() автор топика
Ответ на: комментарий от azazello

Портированый zquake работал через GLES, пришлось драйвер вывода на gles/x11 переписывать.
mesa тоже рабочая, но на sun4i в ней нет смысла т.к даже квака тормозит безбожно.
Однако все попытки нарисовать цветной квадрат в окне были тщетными, возможно я что-то не правильно делал.

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

Однако все попытки нарисовать цветной квадрат в окне были тщетными, возможно я что-то не правильно делал.

если в вашем дистрибутиве не было драйвров сразу (например, fedora 18/19 или opensuse под cubie1/2) - то может поможет данное руководство http://archlinuxarm.org/forum/viewtopic.php?f=33&t=5979 (там же есть и пример отрисовки треугольника на чистом gles2 (sunxi_disp_test - на скрине выше его вывод виден справа внизу в терминале), впрочем, как и в mesa-demos). у меня, правда, не заработало - полагаю, потому, что не изменил настройки env.txt (там вся память выделялась CPU, и не было для GPU)

azazello ★★★★
() автор топика
Ответ на: комментарий от azazello

Проблема была в моём коде, остальное (даже Wolfram Mathematica через glshim) работает. Пример с треугольником я разумеется сразу запустил. Драйвера тогда сам компилировал и бинарники ставил тоже отдельно. Дистрибутив gentoo, на тот момёнт не было оверлея с драйверами (уже сделали)

mittorn ★★★★★
()
Ответ на: комментарий от MiniRoboDancer

Ну а откуда ж они там взялись?

в общем - в opensuse 13.1/mate 1.6.2 эти лапки ставятся вместе с иконками из темы Syncronicity, которую я, очевидно, использовал как базовую (т.е. поменял затем gtk2 тему на thince).

azazello ★★★★
() автор топика
Последнее исправление: azazello (всего исправлений: 1)
Ответ на: комментарий от mittorn

понял;)

даже Wolfram Mathematica через glshim

а вот об этом можно поподробнее? (если это та, что от Raspberry Pi - то должна же быть в armv6k и тащить свои зависимости?)

azazello ★★★★
() автор топика
Ответ на: комментарий от azazello

От RPi, никаких зависимостей не потребовалось, он armhf, только с уменьшенным набором инструкций. И, похоже, только иксы требует, тулчейн свой, а все библиотеки в его виртуальной машине. Правда, с регистрацией не прокатило, похоже там RPiшный debian нужен, говорили, что с qemu работает.
glshim - транслятор из opengl в gles. Очень примитивный, почти ничего через него не работает. Zquake (вариант сборки под opengl) работает, но всё кроме неба мигает. GLXGears крутится (видимо, для них писали). glut вообще не работает из-за каких-то конфликтов, но вроде бы можно исправить. Для нормальной работы Mathematica пришлось добавить в него поддержку нескольких GLXContext'ов одновременно (небольшая костыльная доработка кода).
Ещё есть glesport - бородатый форк 7 месы, делающий примерно то же самое. Работает отвратительно, однако с glut нет проблем.
gears крутит, но серого цвета и сломанные зубцы. Работает половина тестов из этой же месы, но так же криво.
Шейдеры оба варианта не поддерживают, в glshim есть заготовки для реализации gles2, но толком ничего даже не начато. Хотел взяться за дописывание недостающих функций, но понял, что даже квадрат нарисовать не могу, так и бросил это дело.

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

спасибо огромное! были как раз планы поковыряться с ней - ради свободной лицензии - а то совесть мучает - но раз она не подхватывается - то и не стоит;)

azazello ★★★★
() автор топика
Ответ на: комментарий от mittorn

Для нормальной работы Mathematica пришлось добавить в него поддержку нескольких GLXContext'ов одновременно (небольшая костыльная доработка кода)

Можно ли будет увидеть ваш патч в трекере https://github.com/lunixbochs/glshim/issues?state=open ? Спасибо за интерес к данному проекту. Думаю, что его автору как раз очень не хватает активных пользователей/контрибуторов для того, чтобы не терять мотивацию.

ssvb
()
Ответ на: комментарий от ssvb

У меня на гитхабе с авторизацией проблемы, да и код в непригодном качестве (непонятные имена переменных, сбитая табуляция). Код подправлю и попробую залить в виде патча. Просто боюсь, как бы этот патч других багов не вызвал, например, в Wolfram создаётся 2 контекста: один рисуется в отдельном окне при вращении, второй - рисуется в отдельное изображение и результат сохраняется. Вот как раз второй отображается неправильно. Возможно даже правильнее будет создать проблему, касающюяся этого случаяя.
Потом, я собирал и изменял форк ssvb.

mittorn ★★★★★
()
Ответ на: комментарий от mittorn

У меня на гитхабе с авторизацией проблемы

Хмм, что именно мешает? Происки NSA, китайский файерволл или что-либо иное?

И не важно в каком виде код. Патчи всё равно никто не будет прикладывать не глядя. Но зарепортить проблему (указав, какая именно софтина поломана на практике) и предложить даже не совсем корректное решение уже будет большой помощью.

ssvb
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.