реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Основы PowerVr SGX 530, Hello world! для сопроцессора
LWW
сообщение Jan 16 2012, 21:10
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 24-03-07
Пользователь №: 26 471



Возьмём за основу AM3358. Пишу на ассемблере. С кортексом всё ясно, натравил его на ассемблерный код, он и работает. Точно так же два параллельных ядра PRU. Тривиально.

Но с графическим ускорителем столкнулся впервые. Ни ассемблера, ни описания команд..

Думал может под NDA? Что в переводе на русский язык означает - Nикому не DAвать. Тогда я прямо и без запинки совести написал в imgtec с просьбой выдать мне пакет документов: PowerVR SGX Series5 Instruction Set и Technical Reference Manual. И что вы думаете? Они, видимо посчитав меня придурком, и решив что я издеваюсь, не ответили! smile3046.gif

И тогда я понял, что всё гораздо проще. Нет там никакого ассемблера и референсного мануала. А есть интерфейс, который принимает стандартные машинные коды ОpenGL. Быстренько обрабатывает их и выкидывает в буфер. И всё. Что делать дальше, пока не знаю laughing.gif

Подскажите, как нарисовать на экране свой первый треугольник? Что является Hello world! для графического сопроцессора. Скачал POWERVR SDK, там есть демки, содержат кучу файлов. Сишные коды, картинки.. Назначения не понял..

Графический ускоритель держу в руках впервые! Сильно не ругайте.
Go to the top of the page
 
+Quote Post
simne
сообщение May 16 2012, 01:18
Сообщение #2





Группа: Новичок
Сообщений: 2
Регистрация: 16-05-12
Пользователь №: 71 858



Цитата(LWW @ Jan 16 2012, 23:10) *
И тогда я понял, что всё гораздо проще. Нет там никакого ассемблера и референсного мануала. А есть интерфейс, который принимает стандартные машинные коды ОpenGL. Быстренько обрабатывает их и выкидывает в буфер. И всё.

Ну вобщем вы описали похоже на правду, только там не коды OpenGL, а специальный процессор, который как процессор примитивизированный - у него нет многих команд типичных для CPU, а вместо этого у него свои команды, по сути таки ассемблерные но специализированные - типа скопировать из памяти строку на видеовыход (по сути там у процессора акселератора встроенный DMA и часть команд как раз этим DMA управляет); плюс в акселераторе часто есть регистры откуда начинается видеопамять, то есть если вам нужно скроллить экран, то не копируется информация а просто меняется адрес и акселератор показывает картинку с другого места.
Называется набор команд графакселератора обычно displaylist или как-то похоже.
Если вы ассемблерщик, то лучше всего почитайте про работу графического акселератора древних atary вроде 65XE, а поэкспериментировать можно на эмуляторах.
http://en.wikipedia.org/wiki/ANTIC

В современных 3D акселераторах добавились новые модули и новые ступени обработки, но идеологически современные акселераторы являются развитием тех самых atary и именно управление акселератором из ассемблера работает практически также - пишется displaylist в определенную область памяти и дальше происходит магия.
SDK нужен потому что displaylist работает с специальными форматами картинок и прочих данных, и нужно их вначале в этот формат преобразовать а потом уже копировать в память акселератора. А если работа идет под какой-то ОС, то соответственно приложение должно эти все копирования делать не просто так а взаимодействуя с ОС.
Go to the top of the page
 
+Quote Post
LWW
сообщение Aug 28 2012, 20:36
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 24-03-07
Пользователь №: 26 471



Читаю доки по OpenGL. Но меня терзает главный вопрос - где в нашем камне регистры и та самая заветная дырочка, в которую суются исполняемые коды? Или может указатель на начало кодов OpenGL в памяти и некий заветный флаг, запускающий исполнение этих кодов..

А то, есть акселератор и есть. Ну а где он? Всё равно что SPI на борт поставить и засекретить регистры..


Нашёл такое сообщение
http://www.opennet.ru/opennews/art.shtml?num=34149

Значит ли это, что на аппаратном уровне сопроцессор закрыт от посторонних? Ни регистров, ни флагов.. wacko.gif

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

Осталось только понять, как с ним работать из ассемблера.
Go to the top of the page
 
+Quote Post
LWW
сообщение Aug 29 2012, 14:51
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 24-03-07
Пользователь №: 26 471



Если OpenGL независим от языка, значит он и независим от ассемблера? cool.gif
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Aug 29 2012, 16:34
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(LWW @ Jan 17 2012, 00:10) *
Возьмём за основу AM3358...
...Но с графическим ускорителем столкнулся впервые. Ни ассемблера, ни описания команд...

А не пробовали на сайте TI в строке поиска набрать "PowerVR SGX"?
AM35x-OMAP35x Graphics SDK Getting Started Guide - это не то, что Вы ищете?
Go to the top of the page
 
+Quote Post
LWW
сообщение Aug 29 2012, 16:51
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 24-03-07
Пользователь №: 26 471



Там ни слова о железе. Только это страшное слово SDK!
Go to the top of the page
 
+Quote Post
SII
сообщение Aug 29 2012, 18:08
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



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

Единственный путь разобраться с регистрами и системой команд графпроцессора -- тщательно разобраться с этой библиотекой, дизассемблировать её и восстановить логику работы. Причём, замечу, с выходом следующего графпроцессора всё может кардинальным образом поменяться, т.е. никакой совместимости "снизу вверх" там может и не быть.
Go to the top of the page
 
+Quote Post
LWW
сообщение Feb 22 2013, 21:58
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 24-03-07
Пользователь №: 26 471



В новом SAMA5D34 полностью документированный хороший контроллер жки. Производительность на уровне Pentium-4M. На мой взгляд, очень такой народный камушек, без дурацких перенаворотов. (хочется нечто большее, чем примитивные контроллеры ЖК в относительно медленных кортексах М3-М4).

И ещё, как мне показалось, в iMX536 то же открытый акселератор?? Но там такой огромный медиа-сопроцессор, напичкано до тошнотиков. А описание регистров я не нашёл, может они вынесены в другой документ.... Но это так, это ненародный камушек совсем....

Так что SGX снимается с повестки дня smile3009.gif
Go to the top of the page
 
+Quote Post
sasamy
сообщение Feb 23 2013, 09:15
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(LWW @ Feb 23 2013, 01:58) *
В новом SAMA5D34 полностью документированный хороший контроллер жки.


У атмела уже давно были сопроцессоры для обработки изображений, например в at91sam9m10 и все регистры их описаны в даташите (VDEC -> Postprocessing Features). Аналогичные ф-ции выполняют PxP(imx23/28)/ePxP(imx50,imx6lite) в упрощенных процессорах Freescale, в более мощных - IPU, у TI это помоему VPSS и все это имеет слабое отношение к графичеким процессорам 2D/3D с которых вы начали тему. Они тоже могут выполнять аналогичные ф-ции, но суть их - рендеринг а не преобразование растровых изображений.

Цитата
Производительность на уровне Pentium-4M


ну разве что когда они оба выключены sm.gif

Сообщение отредактировал sasamy - Feb 23 2013, 09:43
Go to the top of the page
 
+Quote Post
LWW
сообщение Feb 23 2013, 10:17
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 24-03-07
Пользователь №: 26 471



Я просто и не знал, что бывают графические сопроцессоры. Получается как, из всяких тинок и мег я дорос до кортексов со встроенным ЖКИ. Оказалось, что он чуть живой и пригоден только чтоб проверить этот ЖКИ на работоспособность. А значит выше - только А8 с их дурацким sgx. Но тут оказалось что нет! Мне понравился свежий анонс у атмела. И пишу я только на ассемблере.

ну разве что когда они оба выключены

Почему, и во включенном состоянии они на равных. Оба дают порядка 800 MIPS. Ведь речь идёт о мобильной версии пентюха. А что, пень имеет оперативку с пропускной способностью 1.5 гигабайта в сек? Одноцикловое ядро? Интегрированный в кристалл гигабиный интернет? И прочие вкусняшки? Да, пень справляется с этими задачами при помощи обвеса, но на частоте 2 гигагерца. Вот и вся разница. Ну и жерёт примерно в 100-150 раз больше cool.gif

Ну и Cortex-М4F спокойно делает Pentium III-M. Просто народ ещё по инерции не в силах этого осознать. Делают моргалки на сверх-процессорах..

Только не говорите, что в пнях есть нечто такое, что не объясняется простыми словами. А так же мощная математика - по большому счёту, она не шибко нужна. Достаточно той, что есть в кортексах. Всё равно, А5 уделывает мобильную P4.

Сообщение отредактировал LWW - Feb 23 2013, 10:17
Go to the top of the page
 
+Quote Post
sasamy
сообщение Feb 23 2013, 10:28
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(LWW @ Feb 23 2013, 14:17) *
Мне понравился свежий анонс у атмела. И пишу я только на ассемблере.


Это многое объясняет в ваших заблуждениях sm.gif

Цитата
Оба дают порядка 800 MIPS.


В реальной жизни сферические мипсы мало кого инересуют, даже синтетические тесты полной картины не дают.
Go to the top of the page
 
+Quote Post
LWW
сообщение Feb 23 2013, 10:34
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 24-03-07
Пользователь №: 26 471



Ну понятно, чё. Ассемблер. Многие сразу падают со стула sm.gif
Go to the top of the page
 
+Quote Post
SII
сообщение Feb 23 2013, 14:37
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



Я весь "низкоуровневый" код тоже на ассемблере пишу, "высокоуровневый" -- на Аде (для АРМов) или на Паскале (Дельфях) либо опять-таки Аде (на ПК).

Если интересует, как работают графические процессоры (а не простые контроллеры, обеспечивающие вывод растровых изображений, т.е. уже заполненного видеобуфера, на экран, подключенный по тому или иному стандартному интерфейсу), почитайте описания принципов работы видюх для ПК -- например, на iXBT. Что же касается технической документации, то, насколько мне известно, её выкладывает только Интел на свою встроенную графику; выложила также АМД на первые графические процессоры, поддерживающие ДиректХ 10 (те, что разработала ещё АТИ перед тем, как АМД её купила). Там есть в том числе и описание ассемблера тех процессоров.

Но насчёт производительности Вы заблуждаетесь. Самые мощные Кортехы-М по ней примерно соответствуют ранним Пентиумам, но не более. Самые мощные Кортехы-А уже могут тягаться с самыми слабыми современными процессорами Интел и АМД. Но в тех случаях, когда нужна в первую очередь высокая производительность, ИА-32 пока что сильно обгоняет АРМ.

Сообщение отредактировал SII - Feb 23 2013, 14:40
Go to the top of the page
 
+Quote Post
silentjet
сообщение Feb 26 2013, 08:03
Сообщение #14





Группа: Участник
Сообщений: 6
Регистрация: 25-02-13
Пользователь №: 75 775



> Если интересует, как работают графические процессоры, почитайте описания принципов работы видюх для ПК

Это ничем не поможет. Несмотря на то что схемотехнически узлы схожи, их логика работы другая. Как минимум стоит вспомнить про отсутствие PC-style BIOS у любой борды с кортексом.

Касательно работы SGXа: надо четко понимать разницу между "видеокартой" и "графическим ускорителем". Так вот SGX это второе. Он может очень быстро превратить кучу OpenGL примитивов в конечную сцену (битмапу фактически). А уже эту битмапу можно выводить(например положить в линуксячий фреймбуфер или сохранить в растровый файл). Я вам не скажу за чистое MCU програмирование, но в линуксе дело обстоит примерно следующим образом: разработчики борды получают под НДА некий частично прекомпилированный СДК(а иногда и полностью прекомпилированный) и затем собирают и линкуют с нужным ядром получая модули для этого ядра.
Go to the top of the page
 
+Quote Post
LWW
сообщение Feb 26 2013, 08:12
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 177
Регистрация: 24-03-07
Пользователь №: 26 471



Но вот именно рендеринг и не нужен. Зачем он вообще? Для ерунды всякой..
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 20:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01474 секунд с 7
ELECTRONIX ©2004-2016