Jump to content

    

STM32MP1 - bare metal

40 минут назад, sasamy сказал:

странно, на imx233 он был :)

Ничего странного, в тех камнях не было всяких недокументированных гпу 2 и 3Д, поэтому блиттер был отдельным модулем, как это есть в ренесасах и нувотонах, как в проц впиндюривают все эти закрытые корки, так и блиттер убирают:cray2:

Share this post


Link to post
Share on other sites
17 minutes ago, mantech said:

в тех камнях не было всяких недокументированных гпу 2 и 3Д, поэтому блиттер был отдельным модулем

 

Нет, его (Data Co-Processor (DCP)) я не использовал. Вы просто не поняли как работает блит в PXP. На картинке выше два наложенных слоя: первый RGB  буфер экрана Linux (framebuffer),  второй YUV кадр видеопроигрываетеля, они накладываются и получается финальный выходной RGB буфер который отправляется в контроллер LCD, хотя это не обязательно - его можно подать на вход чтобы снова наложить еще что-то. Единственно что я снаскоку увидел - в imx233 можно было до 8 слоёв накладывать, в imx6 вижу только 2.

Quote

The Scaling engine fetches a single
processed surface, or PS, which can be blended with the AS surface. Although the PXP
processes NxN pixel macro blocks, each of the AS or PS surfaces can have any pixel
alignment within the output buffer. There are no restrictions and any pixel coordinates
within the output buffer are valid. The upper left origin of the output buffer is defined as
pixel 0,0. The upper left and lower right coordinates for each of the AS and PS surfaces
are inclusive within the output buffer.

 

Share this post


Link to post
Share on other sites
16 минут назад, sasamy сказал:

Вы просто не поняли как работает блит в PXP. На картинке выше два наложенных слоя: первый RGB  буфер экрана Linux (framebuffer),  второй YUV кадр видеопроигрываетеля, они накладываются и получается финальный выходной RGB буфер

Конкретно это мне не нужно. Если только таким образом копировать экранные области, например, есть слой BG и его нужно скопировать в некий буфер, чтоб потом восстановить при надобности. Сейчас копирование выполняет SDMA в режиме Scatter\gather, если только этот pxp так умеет...  Рисовать заполненные квадраты для форм гуя он точно не поможет...

ЗЫ. Да и то, это может прокатить, только если копировать экран целиком, т.к. если брать только фрагмент, то о и скопироует во фрагмент буфера, а не в непрерывную последовательность, по-простому, экран 1024х600, нужно скопировать рагмент в центре, размером 200х200 пикс.  СДМА настраиваю так, оффсет на первую точку фрагмента, затем вычисляю смещение и инкремент на смещение, это в источнике, получатель - линейная область, размером 200х200х4 байт, с инкрементом 1. Восстановление - наоборот... 

Edited by mantech

Share this post


Link to post
Share on other sites
56 minutes ago, mantech said:

Да и то, это может прокатить, только если копировать экран целиком, т.к. если брать только фрагмент, то о и скопироует во фрагмент буфера, а не в непрерывную последовательность, по-простому, экран 1024х600, нужно скопировать рагмент в центре, размером 200х200 пикс. 

 

ну вы мануал на  PXP почитайте внимательно, см 53.3.37 Clipping source images

размеры выходного буфера при этом делаете равным обрезанному входному - вот вам и непрерывная область в которую скопируется нужный кусок  экрана

Screenshot-from-2019-08-12-20-37-53.png

Share this post


Link to post
Share on other sites
42 минуты назад, sasamy сказал:

размеры выходного буфера при этом делаете равным обрезанному входному - вот вам и непрерывная область в которую скопируется нужный кусок  экрана

Можно попробовать на досуге...  А на сколько он быстрее ДМА работает, не проверяли?

Share this post


Link to post
Share on other sites
1 hour ago, mantech said:

А на сколько он быстрее ДМА работает, не проверяли?

 

Нет, но  думаю sdma совсем не для графики задуман. Хотя и PXP если использовать для перекидывания данных - не особо ускоритель а вот бработку типа CSC и scaling при выводе видео на arm9 он ускорял значительно .

Share this post


Link to post
Share on other sites
30 минут назад, sasamy сказал:

Хотя и PXP если использовать для перекидывания данных - не особо ускоритель а вот бработку типа CSC и scaling при выводе видео на arm9 он ускорял значительно .

Вот я и думаю, что если у него приоритет доступа к памяти такой же, как у ДМА, то и скорость будет не выше, а CSC и scaling я не использую..

32 минуты назад, sasamy сказал:

но  думаю sdma совсем не для графики задуман

Да я тоже согласен, но вот с закрытостью доков для ускорителей - категорически нет.

Share this post


Link to post
Share on other sites
1 hour ago, mantech said:

если у него приоритет доступа к памяти такой же, как у ДМА, то и скорость будет не выше

 

Это всё же сильно разные устройства - sdma это  16 битное микроконтроллерное ядро с rtos - оно для низкоскоростной периферии которой много и надо параллельно её обслуживать, PXP  - хз что там внутри, но оптимизирован для обработки графики и данные он буферизует при копировании намного лучше, у того же SPI FIFO всего 64 слова кажется, у PXP блок 16х16 слов можно установить.

 

PS насчет sdma я перепутал  - там не rtos а Scheduler на блок-схеме :)

 

Edited by sasamy

Share this post


Link to post
Share on other sites
10 часов назад, sasamy сказал:

Это всё же сильно разные устройства - sdma это  16 битное микроконтроллерное ядро с rtos - оно для низкоскоростной периферии которой много и надо параллельно её обслуживать,

Да мне кажется, что тут не 16и битном дело, а в приоритетах доступа к контроллеру памяти, у ДМА он низкий, а у проца более высокий, у граф. ускорителя вообще свой прямой доступ с 64 или 128 битной шиной, поэтому там все гораздо быстрее... На счет PXP, в доке все как-то мутно про него, чувствуется, "засекречиватели" доков и тут своими рученками поковырялись...

ЗЫ. "мысли вслух" - вот есть какие-то любители открытых процессорных архитектур, типа риск5 и типа того, так вот сделали б какой-нить камень, с полностью открытым дизайном и проца и видео и всего остального - было б дело!

Share this post


Link to post
Share on other sites
1 hour ago, mantech said:

мне кажется, что тут не 16и битном дело, а в приоритетах доступа к контроллеру памяти

 

тут есть тесты sdma, результаты как-то не впечатляют, даже теоретический максимум

1 hour ago, mantech said:

 

http://billauer.co.il/blog/2017/08/nxp-freescale-sdma-memory-map-throughput/

 

для сравнения CPU и IPU

https://community.nxp.com/docs/DOC-95014

 

1 hour ago, mantech said:

На счет PXP, в доке все как-то мутно про него, чувствуется, "засекречиватели" доков и тут своими рученками поковырялись

 

никакой засекреченности я там не заметил как и в описании IPU тоже. PXP намного проще IPU поэтому и предложил его.

Edited by sasamy

Share this post


Link to post
Share on other sites
On 8/13/2019 at 11:39 AM, sasamy said:

никакой засекреченности я там не заметил как и в описании IPU тоже. PXP намного проще IPU поэтому и предложил его.

Вспомнил один проект

https://ru.wikipedia.org/wiki/Embox

https://github.com/embox/embox

там есть даже портированные драйверы из Linux i.mx6 и для 3D GPU, может пригодится. Лицензия BSD так что теоретически исходники открывать не нужно (правда я не не уверен в случае использования Qt со статической линковкой в один образ без коммерческой лицензии)

Share this post


Link to post
Share on other sites
8 часов назад, sasamy сказал:

там есть даже портированные драйверы из Linux i.mx6 и для 3D GPU, может пригодится.

Это etnaviv что-ли?  Видел уже их, но что-то не запустилось у меня... Может плохо пробовал :cray:

8 часов назад, sasamy сказал:

в случае использования Qt 

А оно тут при чем???

Share this post


Link to post
Share on other sites
19 minutes ago, mantech said:

Это etnaviv что-ли?  Видел уже их, но что-то не запустилось у меня... Может плохо пробовал :cray:

я пробовал с майнстримным ядром Linux и Mesa, собирал в buildroot - работает, где-то читал что разработчики embox запускали Quake3D для демонстрации работоспособности

27 minutes ago, mantech said:

А оно тут при чем??? 

популярный готовый графический тулкит, для рендеринга может использовать 3D GPU, Просто я видел где-то пример того что вы делали - подобное на QML толковый дизайнер за пол-часа сделает лучше.

Share this post


Link to post
Share on other sites
14 часов назад, sasamy сказал:

где-то читал что разработчики embox запускали Quake3D для демонстрации работоспособности

Я не говорю, что вообще не работает, просто у меня не получилось, может плохо пробовал, а может просто большой необходимости не было, уже не помню....

14 часов назад, sasamy сказал:

Просто я видел где-то пример того что вы делали - подобное на QML толковый дизайнер за пол-часа сделает лучше.

Пытались, делали, только надежности не хватает, и пользователям при обновлении версии мозг выносило, а так да, я ничего гениального не изобрел, просто сделал легко и надежно...

14 часов назад, sasamy сказал:

толковый дизайнер

А может у нас просто нет толковых, а скорей, как в поговорке "у нас каждый третий доктор, а пятый - телемастер" :biggrin:

Edited by mantech

Share this post


Link to post
Share on other sites

Возможно, кому-то пригодится. Недавно наткнулся на недорогую китайскую макетку с STM32MP157 на борту. Для ЧПУ (CNC) применений и прочих опытов вполне себе подойдёт.

цены:
https://item.taobao.com/item.htm?id=599303130310
https://item.taobao.com/item.htm?id=592121183085

инфа:
http://wiki.i2som.com/pages/viewpage.action?pageId=19922956

 

O1CN01oME9ML1fClJwzim3C_!!2200750903971.png

O1CN01umDnXd1fClK7wK5AZ_!!2200750903971.png

O1CN01TFxmnq1fClK2Ux4Vt_!!2200750903971.png

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now