Page 1 of 4

2D с аппаратной акселерацией

Posted: Sat Oct 18, 2008 12:15 pm
by Serge
Pixlib

Установка:
Скопируйте ati2d.drv в папку /rd/1/drivers, pixlib.obj в папку /rd/1/lib

Возможности библиотеки:

Создание битмапов в системной или локальной памяти, рисование линий, сплошных и текстурированных прямоугольников с окантовкой, копирование битмапов (Blit), копирование с использованием цветового ключа (BlitTransparent). Подробное описание функций в файле readme.txt.

Для работы библиотеки необходим режим с 32-х битной глубиной цвета и процессор с ММХ. Аппаратная акселерация доступна на видеокартах ATI Radeon семейств R100 - R500. На других видеокартах все операции выполняются программно.

Re: 2D с аппаратной акселерацией

Posted: Sat Oct 18, 2008 5:07 pm
by Ghost
А хде сорцы?

Re: 2D с аппаратной акселерацией

Posted: Sat Oct 18, 2008 6:19 pm
by Serge
Всё на svn. programs/system/drivers/ati2d programs/develop/pixlib programs/develop/sdk/trunk/pixlib

Re: 2D с аппаратной акселерацией

Posted: Sat Oct 18, 2008 11:56 pm
by Heavyiron
а ati2d.obj можно сносить?

Re: 2D с аппаратной акселерацией

Posted: Sun Oct 19, 2008 2:28 am
by Serge
Нет. Там курсор.

P.S.

По недоброй традиции в драйвере ati2d.drv неправильная таблица PCI_ID. Там нет чипов до R300 которые должны работать и есть чипы R600 которые работать не должны. Поэтому если видеокарта Radeon HD 2000+ драйвер ati2d.drv надо удалить.

Re: 2D с аппаратной акселерацией

Posted: Sun Oct 19, 2008 5:03 am
by Heavyiron
В общем, нифига не понял и ушел спать )))

Re: 2D с аппаратной акселерацией

Posted: Sun Oct 19, 2008 8:32 am
by bw
> Там нет чипов до R300
Опять меня обижают.

..bw

Re: 2D с аппаратной акселерацией

Posted: Sun Oct 19, 2008 6:54 pm
by Serge
Работа над ошибками + новая демка.

Теперь акселерация работает на всех Радеонах кроме HD.

Скопируйте ati2d.drv в папку /rd/1/drivers, pixlib.obj в папку /rd/1/lib
demo3 и donut.dds должны находится в одной папке
драйвер ati2d.obj удалять не надо.

Re: 2D с аппаратной акселерацией

Posted: Sun Oct 19, 2008 7:40 pm
by bw
Все примеры работают - Radeon 9250 (RV280).
Одна из приятнейших новостей за последнее время. Возможно ли теперь что-то сделать с вертикальной частотой развертки? На ЭЛТ мониторе работать с 60 Hz невозможно. Или этот вопрос не касается той области с который ты сейчас работаешь?
И еще, на будущее. Вероятно предпологается использовать унифицированный интерфейс (pixlib), так что бы и при появлении дров для nVidia, перенос софта оказался безболезненным?

..bw

Re: 2D с аппаратной акселерацией

Posted: Sun Oct 19, 2008 9:43 pm
by Serge
1)Вероятно я займусь этим.
Ситуация с открытыми дровами для Linux довольно абсурдна. Есть группа разработчиков из Red Hat которая очень давно ведёт драйвер xf86-video-ati и совместная группа Novell-AMD примерно год делает xf86-video-radeonhd. Группы довольно сильно сказано потому что в сумме там 5-6 человек. Оба драйвера функционально одинаковы за исключением того что новый драйвер работает только на чипах R500+. Было обещание что оба драйвера сведут в один (новый), поэтому я выбрал его за основу. Но в итоге всё застопорилось из-за нехватки разработчиков и большого объёма работы над 2D/3D в R600-R700. Они ещё и CrossFire обещали. Видимо будет лет через ...дцать.

2) Да. Все функции рисования по сути кальки с GDI, а акселерация GDI есть у всех видеокарт.
Библиотека достаточно быстра и без акселерации, даже в эмуляторах (кроме Qemu - там 24-х битный цвет). Хотя сейчас она больше подходит для полноэкранных демок и "плоских" (скроллерных) игр. Кстати акселерация работает только на битмапах в видеопамяти.

Проверить работу акселератора очень просто. Надо загрузит систему. Удалить ati2d.drv из папки drivers и запустить demo1. Потом вернуть драйвер и снова запустить demo1. Скорость отрисовки должна быть в разы выше. Дополнительную информацию драйвер выводит на доску отладки и в файл /drivers/ati2d.log

Re: 2D с аппаратной акселерацией

Posted: Sun Oct 19, 2008 10:26 pm
by bw
Я думаю, что сейчас не стоит сильно заморачиваться 3D, так как не очень понятно как эту особенность в KOS можно эффективно использовать (не до полноценных 3D-аппаратно-ускоренных игр), хотя, это всё на суд разработчика. А лучше подтянуть nVidia, если есть возможность. (Эх, занялся блин, раздачей советов :-).
На QEmu с ati2d.drv демки не пошли, так и должно быть? Если ты говоришь что pixlib и без аппаратной поддержки может выполнять указанные функции, то не было бы логичней если библиотека работала и при наличии драйвера в системе?

..bw

Re: 2D с аппаратной акселерацией

Posted: Sun Oct 19, 2008 11:20 pm
by Pavia
А что там с NVidia?

Re: 2D с аппаратной акселерацией

Posted: Sun Oct 19, 2008 11:38 pm
by shurf
Pavia wrote:А что там с NVidia?
Если драйвер этот еще никто не пишет, могу я взяться.

Re: 2D с аппаратной акселерацией

Posted: Mon Oct 20, 2008 12:22 am
by Serge
pixlib не работает в Qemu потому что там нет 32-х битного цвета, а это пока обязательное условие. Второе условие процессор с ММХ.

shurf

Никто не пишет. Если возьмешся будет здорово.
Linux исходники здесь git://anongit.freedesktop.org/git/xorg/driver/xf86-video-nv
git://anongit.freedesktop.org/git/nouveau/xf86-video-nouveau
git://anongit.freedesktop.org/git/nouveau/xf86-video-ati
git://anongit.freedesktop.org/git/nouveau/xf86-video-radeonhd

Я брал за основу последний драйвер. 2D акселерация в файлах *xaa и *exa.
Код работы с битмапами из ati2d/pixmap.inc должен подойти практически без изменений.

Re: 2D с аппаратной акселерацией

Posted: Mon Oct 20, 2008 4:59 pm
by bw
Посмотрел код ядра и не понял, как же выполняется загрузка драйвера ati2d.drv. Serge, можешь провести небольшой ликбез? Нашел только строку "/rd/1/drivers/ati2d.drv", но на неё никто не ссылается. Меня это заинтересова потому, что я заметил, драйвер выполнен как DLL, а такой формат мне нравится и подходит больше чем COFF (ведь изначально предполагалось писать дрова только в нем?), может присоеденюсь и то же, что-нибудь эдакое накалякаю.
И еще я не нашел исходники библиотеки pixlib.obj, не подскажешь где они спрятались?

p.s. "programs/develop/pixlib" отсутствует.

..bw