Board.KolibriOS.org
http://board.kolibrios.org/

2D с аппаратной акселерацией
http://board.kolibrios.org/viewtopic.php?f=24&t=1155
Page 1 of 4

Author:  Serge [ Sat Oct 18, 2008 12:15 pm ]
Post subject:  2D с аппаратной акселерацией

Pixlib

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

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

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

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

Attachments:
pixlib_01.7z [25.51 KiB]
Downloaded 255 times

Author:  Ghost [ Sat Oct 18, 2008 5:07 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

А хде сорцы?

Author:  Serge [ Sat Oct 18, 2008 6:19 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

Всё на svn. programs/system/drivers/ati2d programs/develop/pixlib programs/develop/sdk/trunk/pixlib

Author:  Heavyiron [ Sat Oct 18, 2008 11:56 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

а ati2d.obj можно сносить?

Author:  Serge [ Sun Oct 19, 2008 2:28 am ]
Post subject:  Re: 2D с аппаратной акселерацией

Нет. Там курсор.

P.S.

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

Author:  Heavyiron [ Sun Oct 19, 2008 5:03 am ]
Post subject:  Re: 2D с аппаратной акселерацией

В общем, нифига не понял и ушел спать )))

Author:  bw [ Sun Oct 19, 2008 8:32 am ]
Post subject:  Re: 2D с аппаратной акселерацией

> Там нет чипов до R300
Опять меня обижают.

..bw

Author:  Serge [ Sun Oct 19, 2008 6:54 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

Работа над ошибками + новая демка.

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

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

Attachments:
pixlib_02.7z [68.51 KiB]
Downloaded 286 times

Author:  bw [ Sun Oct 19, 2008 7:40 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

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

..bw

Author:  Serge [ Sun Oct 19, 2008 9:43 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

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

Author:  bw [ Sun Oct 19, 2008 10:26 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

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

..bw

Author:  Pavia [ Sun Oct 19, 2008 11:20 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

А что там с NVidia?

Author:  shurf [ Sun Oct 19, 2008 11:38 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

Pavia wrote:
А что там с NVidia?

Если драйвер этот еще никто не пишет, могу я взяться.

Author:  Serge [ Mon Oct 20, 2008 12:22 am ]
Post subject:  Re: 2D с аппаратной акселерацией

pixlib не работает в Qemu потому что там нет 32-х битного цвета, а это пока обязательное условие. Второе условие процессор с ММХ.

shurf

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

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

Author:  bw [ Mon Oct 20, 2008 4:59 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

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

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

..bw

Page 1 of 4 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/