Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Ср дек 13, 2017 4:35 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 58 сообщений ]  На страницу Пред. 1 2 3 4 След.
Автор Сообщение
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Ср июл 15, 2009 7:05 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт мар 01, 2007 4:16 pm
Сообщения: 426
У Mesa, вроде, "железный" код только для DRI, ты его будешь использовать или возьмешь дрова из другого источника?
Надеюсь RV280 будет поддерживаться, а то я не горю желанием менять железо, в копеечку это влетит.

..bw


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Ср июл 15, 2009 9:10 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Думаю что будет DRI2/Gallium. Но всё это будет очень не скоро. Сначала mesa должна перейти на dri2


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Ср июл 15, 2009 9:21 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пт июн 27, 2008 3:22 pm
Сообщения: 974
Mesa мощная библиотека OpenGL. :)
Здесь: http://koti.mbnet.fi/hinkka/q3a_v101_src.7z (исходники порта Quake 3 Arena для Смартфонов) есть ещё пример реализации библиотеки OpenGL поменьше.


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Ср июл 15, 2009 11:53 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
Serge

Как раз в том и проблема, что ни одна из трёх демок не работает.

_________________
KolibriOS-перспективная ос!
Kolibri is best operation system in the world!


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Чт июл 16, 2009 8:01 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
andrew_programmer

Pixlib работает только в 32-bpp.
Попробуй ядро #1097 и pixlib_02 В папке /rd/1/drivers должен быть ati2d.log.

Демки должны работать и без 2D акселерации ( т.е. без драйвера ati2d.drv)


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Чт июл 16, 2009 10:44 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
Теперь работает. Дело было в 32-х битности. Я всегда пользуюсь 24-х битным режимом из-за этого демки не работали.

_________________
KolibriOS-перспективная ос!

Kolibri is best operation system in the world!


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Вт окт 13, 2009 9:28 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
Библиотека pixlib реентерабельна (см. мой вопрос тут)?

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Вт окт 13, 2009 11:39 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Нет. Функции вида CreateXXX и DestroyXXX не реентрантны. Я делаю новую версию pixlib, так что старую уже лучше не использовать.


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Вт окт 13, 2009 4:01 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
А новая версия будет реентерабельной?

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Вт окт 13, 2009 10:33 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Да.


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Вт окт 13, 2009 11:32 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
спасибо)

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Ср фев 17, 2010 4:05 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
Запустил командный процессор на всех gpu, так что можно заняться акселерацией.
Вот примерный API для следующей версии pixlib

Все функции возвращают код ошибки как знаковое целое.

typedef struct
{
uint32_t width;
uint32_t height;
uint32_t format;
uint32_t pitch; //ширина строки в байтах
color_t *pixels;
//что-то ещё
...
}; pixmap_t;

pixmap_t ScreenPixmap; Первичная поверхность. Создаётся библиотекой.

int CreatePixmap(pixmap_t *pixmap);
Создаёт текстуру в локальной видеопамяти.
Перед вызовом надо заполнить поля width, height и format структуры.

int ResizePixmap(pixmap_t *pixmap, uint32_t new_width, uint32_t new_height);
Устанавливает новый размер текстуры не меняя формат. Старое содержимое теряется.

int BindPixmap(pixmap_t *pixmap, uint32_t flags);
Связывает текстуру с копией в системной памяти.

int UnbindPixmap(pixmap_t *pixmap);
Освобождает системную память.

int UpdatePixmap(pixmap_t *pixmap, uint32_t xorg, uint32_t yorg,
uint32_t width, uint32_t height, uint32_t location);
Обновляет текстуру. location определяет положение - в системной или видеопамяти. Координаты задают обновляемую область.

Функции блиттера
int Blit(pixmap_t *dst, pixmap_t *src, int xdst, int ydst, int xsrc, int ysrc, uin32_t width, uint32_t height);
int BlitTransparent(pixmap_t *dst, pixmap_t *src, int xdst, int ydst, int xsrc, int ysrc, uin32_t width, uint32_t height, color_t key);
int Blend(pixmap_t *dst, pixmap_t *src, int xdst, int ydst, int xsrc, int ysrc, uin32_t width, uint32_t height);
BlitTransparent использует key как прозрачный цвет источника.

Прмер использования.

Код:
pixmap_t  win_pixmap;
//Пиксмап для отрисовки всего окна

On_Create:
int error;
//Получили размер окна

win_pixmap.width = window_width;
win_pixmap.height = window_height;
win_pixmap.format = ARGB32;

error = CreatePixmap(&pixmap);
if( error )
{
     epic_fail();
};

error = BindPixmap(&pixmap);
if( error )
{
     epic_fail();
};

/****************/

On_Paint()

//рисуем в текстуру успользуя win_pixmap.pixels и не забывая про win_pixmap.pitch

error = UpdatePixmap(&win_pixmap, координаты перерисованной области, PX_MEM_LOCAL);
if( error )
{
     epic_fail();
};

error = Blit(&ScreenPixmap, &win_pixmap, window_x, window_y, координаты перерисованной области);
if( error )
{
     epic_fail();
};

/****************/
On_Size:

//Получили размер окна

error = ResizePixmap(&win_pixmap, window_width, window_height);
if( error )
{
     epic_fail();
};
Код:
//Просто текстура в видеопамяти

pixmap_t my_pixmap;
//Задаём размер текстуры;
...
//Создаём текстуру
error = CreatePixmap(&my_pixmap);

//Загружаем текстуру в видеопамять
error = BindPixmap(&my_pixmap);
load_bitmap(my_pixmap.pixels, my_pixmap.pitch, источник, что-то ещё);
error = UpdatePixmap(&my_pixmap,  0, 0, my_pixmap.width, my_pixmap.height, PX_MEM_LOCAL);
error = UnbindPixmap(&my_pixmap);

/*******************/

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


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Ср фев 17, 2010 9:40 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
Цитата:
В дополнение к этим функциям будет возможность запускать на исполнение командные пакеты. Так что владеющие Тайным Знанием любопытные Буратины смогут программировать чип напрямую (со всеми вытекающими), в том числе вести модные расчёты на GPU.

Pixels Shaders - это круто. asm x86 + asm GPU - это мощь!

_________________
KolibriOS-перспективная ос!

Kolibri is best operation system in the world!


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Ср фев 17, 2010 9:46 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3929
В принципе уже можно и Mesa портировать. Организовать вычисления на гпу даже проще. Главная сложность - совершенно марсианский ассемблер и отсутствие трансляторов в бинарный код. Надо всё писать в машинном коде. Когда ОpenCL появится неизвестно.


Вернуться к началу
 Заголовок сообщения: Re: 2D с аппаратной акселерацией
СообщениеДобавлено: Ср фев 17, 2010 10:08 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
Насколько я понял у них уже сейчас OpenCL есть, только для single-precision floating point. Но разработчики написали на форуме,что где-то в первой половине этого года они реализуют double-precision(для меня это важно), потому что для них это важно. AMD хочет конкурировать с NVIDIA в области научных вычислений на GPU, а там double-precision нужно. Раз от Brook+ отказались, значит будут оттачивать OpenCL.
А ассемблер действительно марсианский. :) Я так и не нашёл там операции деления. Видимо она эмулируется через другие команды.

_________________
KolibriOS-перспективная ос!

Kolibri is best operation system in the world!


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 58 сообщений ]  На страницу Пред. 1 2 3 4 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB